2013-09-09 4 views
-1

Я пытаюсь написать поисковую систему с помощью pdo/php, но я начинаю программировать, и мне нужна помощь!Создание поисковой системы с использованием PDO/PHP

Результаты поиска должны отображаться на той же странице, что и на двигателе. (желательно в таблице) Я пытался играть с различными сценариями MySql, которые я получил из учебников и w3schools.com, но я не могу понять это:

Как написать фрагмент кода, который делает мой поиск .php выберите из моего DB_table то, что искали в поисковой системе?

пытался в последний раз с помощью MySQL:

<form action='./search.php' method='get'> 
      <input type='text' name='k' size='50' value='<?php echo $_GET['k']; ?>' /> 
      <input type='submit' value='Search' /> 
     </form> 
     <hr /> 
     <?php 
      $k = $_GET['k']; 

      $terms = explode(" ", $k); 
      $query = "SELECT * FROM Callflow WHERE "; 
      foreach ($terms as $each){ 
       $i++; 
       if ($i == 1) 
        $query .= "keywords LIKE '%$each%' "; 
       else 
        $query .= "OR keywords LIKE '%$each%' "; 
      } 

      <?php 
    $db = new PDO('mysql:host=localhost;dbname=voizxl_wachtrij;charset=utf8', 'root', ''); 
?> 
    $query = mysql_query($query); 
     $numrows = mysql_num_rows($query); 
     if ($numrows > 0) { 

      while ($row = mysql_fetch_assoc($query)){ 
       $id = $row['calliipid']; 
       $title = $row['calleridname']; 
       $keywords = $row['calleridnum']; 

       echo "<h2><a href='$title'</a></h2> 
       $keywords<br /><br />"; 
     } 

     } 
     else 
      echo "No results found for \<b>$k</b>\""; 
     mysql_close(); 

     ?> 

Только когда я попробовал этот код, который я получил ошибки, но я его так и можно увидеть, что я пытаюсь добиться.

Сейчас в PDO я не могу понять, как написать это .. Я экспериментировал с кодами, как:

<?php 
    $db = new PDO('mysql:host=localhost;dbname=voizxl_wachtrij;charset=utf8', 'root', ''); 
?> 



<?php 
    foreach($db->query('SELECT * FROM Callflow') as $row) { 
     echo $row['calleridname']; 
    } 
?> 
<?php 
    $stmt = $db->prepare("SELECT * FROM Callflow WHERE id=:id AND name=:name"); 
    $stmt->execute(array(':name' => $name, ':id' => $id)); 
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); 
?> 


<?php 
    $stmt = $db->query('SELECT * FROM table'); 
    $row_count = $stmt->rowCount(); 
    echo $row_count.' rows selected'; 
?> 

Может кто-то пожалуйста, помогите, объясняя логику в написании кода или путем предоставления пример того, как добиться того, чего я хочу? Был бы очень признателен! TY в продвинутом!

+0

Вы попробовали какие-либо из предложенных или связанных вопросов, которые предлагает этот сайт? –

+0

Этот код уязвим для атак XSS: http: //en.wikipedia.org/wiki/Cross-site_scripting – PeeHaa

+0

Вот что: Я программирую около 2 месяцев (я все еще новичок), и все, что я знаю, это поиск связанных вопросов о stackoverflow, чтобы попытаться связать эти коды и найти ответьте на мой вопрос, и таким образом узнайте, что я знаю, по следам и ошибкам. Я недавно столкнулся с этим: http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php Это полезное учебное пособие для меня, чтобы узнать, какие коды использовать для достижения определенных действий, но как для того, чтобы писать, я НЕ ИДЕЯ. Где я могу это узнать? Любые хорошие ссылки? – Kentje

ответ

1

Хорошо, что вы благодарны за вашу честность, но что вы ожидаете от того, кто является новичком?

Есть одна вещь. Существенный.
Речь идет о программировании.

Большинство людей воспринимают это как своего рода хобби, легкую вещь. Но никогда, как профессия, требующая многолетнего образования и опыта.
Большинство людей никогда серьезно не занимаются программированием, как хирургия или ядерная физика. Таким образом, все их идеи образования - это попросить кого-то вести.

Однако, правда:

ДА. Иногда вы просто не можете решить какую-либо конкретную задачу из-за отсутствия образования или опыта. Невозможно построить небоскреб, задавая вопросы на форуме.

Если вы новичок - тогда вам нужно узнать. Изучите основные элементы. Научитесь создавать более простые приложения. Проведите время. И затем в конечном итоге сможет выполнять более сложные задачи, не прося людей писать весь код для вас.

Если вы не можете получить какую-либо помощь из десятков подобных вопросов, вам необходимо сначала научиться понимать код из ответов.

Но снова - нет ничего плохого, если вы не можете выполнить свой поиск сразу. Мы все должны были учиться. Мы все были неспособны сделать это однажды, и все мы должны были расти в первую очередь.