2010-01-18 6 views
2

Это последнее, что я собираюсь сделать, после того как я смогу выполнить эту работу, я могу создать для проектирования, что может быть намного проще. Спасибо за вашу помощь. Я хочу перечислить запись из mysql, используя php, набрав запрос в текстовом поле. Затем программа перечислит все записи, содержащие этот элемент, например адрес. Вот мой код:Список записей в mysql с использованием php

 <?php 
     $con = mysql_connect("localhost","root",""); 
     if (!$con) 
     { 
      die('Could not connect: ' . mysql_error()); 
     } 

     mysql_select_db("koro", $con); 

     \\what will I put in the WHERE ADDRESS="? 
     $result = mysql_query("SELECT * FROM students WHERE ADDRESS="); 

     echo "<table border='1'> 
       <tr><th>Firstname</th> 
       <th>Lastname</th></tr>"; 

     while($row = mysql_fetch_array($result)) 
     { 
      echo "<tr>"; 
      echo "<td>" . $row['IDNUMBER'] . "</td>"; 
      echo "<td>" . $row['LNAME'] . "</td>"; 
      echo "<td>" . $row['FNAME'] . "</td>"; 
      echo "<td>" . $row['MNAME'] . "</td>"; 
      echo "<td>" . $row['GRADEYR'] . "</td>"; 
      echo "<td>" . $row['ADDRESS'] . "</td>"; 
      echo "</tr>"; 
     } 
     echo "</table>"; 

     mysql_close($con); 
     ?> 

listform.html:

  <html> 
     <head> 
     <form action="list.php" method="post"> 
     address:<input type="text" name="grup" value="" /><br/> 
     <input type="submit" name="List" value="" /><br/> 
     </form> 
     </head> 
     </html> 

\ что я буду ставить в WHERE ADDRESS = "спасибо

ответ

3

Вы найдете значение в $_POST[] массив

$result = mysql_query("SELECT * FROM students WHERE ADDRESS = '{$_POST["grup"]}'"); 

Этот подход может быть опасным, хотя - вы также захотите anitize ваши $ _POST [] данные против SQL injection attacks - из которых есть много доступных учебных пособий.

+0

благодарит! супер спасибо, – user225269

+0

Пример AlexV защищает от SQL-инъекции, о которой я упоминал, - я бы использовал его подход :) – Ryall

+0

Nat, смешно, как 2 человека могут публиковать почти одинаковый ответ одновременно с теми же ссылками refs! :) – AlexV

1

$ _POST ['grup'] будет содержать значение в поле при публикации.

Затем сделать что-то вроде:

$result = mysql_query(sprintf("SELECT * FROM students WHERE ADDRESS='%s'", mysql_real_escape_string($_POST['grup'], $con))); 

Если вы не избежать значение POST с Sprintf и mysql_real_escape_string вы можете стать объектом атак путем внедрения SQL.

http://en.wikipedia.org/wiki/SQL_injection

+1

Вы можете также использовать WHERE ADDRESS LIKE '%%% s %%' для поиска подстроки (значение POST) в любом месте строки (поле ADDRESS) – AlexV