Как сделать функцию поиска? (Заменить что-то на то, что ищут люди) - PullRequest
0 голосов
/ 03 июня 2011

Это мой текущий код:

$result = mysql_query("SELECT * FROM characters WHERE namn = 'Jargon'"); 

while($row = mysql_fetch_array($result)) 
  { 
  echo "<div class='content_left'>"; 
  echo "<div class='blue_text_header'>Information</div>"; 
  echo "<h1>"; 
  echo $row['Namn']; 
  echo "</h1>"; 

  echo "<br /><br /><br /><br /><br /><br /><br />"; 
  echo "<div class='red_text_header'>Obekräftade fall</div>"; 
  echo str_replace(',','<br />', $row['unconfirmed']); 

  echo "</div>"; 
  echo "<div class='content_right'>"; 

  echo "<div class='orange_text_header'>Andra namn</div>"; 
  echo str_replace(',','<br />', $row['Alias']); 

  echo "<br />"; 
  echo "<br /><br /><br /><br />"; 

  echo "<div class='green_text_header'>Bekräftade fall</div>"; 
  echo str_replace(',','<br />', $row['confirmed']); 
  } 

mysql_close($con);

и, как вы видите, именно "SELECT * FROM characters WHERE namn = 'Jargon'" выбирает, какую информацию выводить, и я хочу, чтобы пользователи сами решали, что выводить, поэтому мне нужна простая форма поиска, и если люди пишут как "привет «Я хочу, чтобы« Жаргон »переключился на« привет », если ты понял?

А если сможете, можете ли вы сделать мне форму поиска и файл post.php?

Ответы [ 3 ]

1 голос
/ 03 июня 2011
$input_clean = mysql_real_escape_string($input);
$result = mysql_query("SELECT * FROM characters WHERE namn LIKE '%$input_clean%'"); 

Если $ input = "hello", вы получите результаты типа "hello", "hello world", "я сказал hello" и т. Д., Но вы не получите что-то вроде "hi bob".Добавьте к этому ответ brettz9 о форме HTML, и вы получите поисковую программу.

0 голосов
/ 03 июня 2011

Измените свою первую строку на эти:

if (!isset($_GET['name']) { // Handle a missing name variable in some way 
    // (if you like you can even include the form on this page itself, allowing 
    //  the page to submit data back to itself, with this isset() check
    //  determining whether to show the form or process the form)
    print "You must enter a name";
    exit;
}
$result = mysql_query("SELECT * FROM characters WHERE namn = '".mysql_real_escape_string($name)."'");

... и добавьте такую ​​форму:

<form action="post.php" method="get">
<label for="name">Name</label><input name="name" id="name"/>
<input type="submit"/>
</form>
0 голосов
/ 03 июня 2011

Вы хотели бы построить строку запроса динамически, например, используя mysql_query(sprintf("SELECT * FROM characters WHERE namn = '%s'",mysql_real_escape_string($myInputVar))); для построения вашего запроса. Просто убедитесь, что вы правильно экранировали ввод, введенный пользователем с помощью mysql_escape_string, чтобы не открывать себя для атак с использованием SQL-инъекций!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...