База данных MySQL
Я новичок в PHP и базах данных, я получил этот код от моего друга, и я действительно не знаю, что я делаю, поэтому, пожалуйста, будьте осторожны со мной!
Я пытался найти решение моей проблемы в Google, но ни один из результатов не подошел к моему коду, поэтому я предполагаю, что код, который я использую, не самый распространенный?
Я хотел бы иметь возможность искать более одного варианта из моей базы данных. У меня есть база данных о здоровье собак, и сейчас я могу искать собаку по имени или собаку по родословной. Я хотел бы сделать поиск, где я могу найти собак из определенной страны, определенного пола и определенного пораженного сустава. Бывшие мужчины из Финляндии с пораженным плечом. Или определенный отец Боб из всех мужчин только из Финляндии.
Также я был бы очень признателен, если бы кто-то мог показать мне какой-либо веб-сайт, на котором я смогу узнать больше о подобных вещах.
<?php
$con=mysql_connect ("localhost", "dn_name", "db_password") or die ('I cannot connect to the database because: ' . mysql_error()); mysql_select_db ("db_name");
?>
<?php include_once("alku.php"); ?>
<?
Print "<form action=\"search.php\" method=\"GET\" style=\"font-family:monospace; font-size:12px; line-height:35px;\">
<input type=\"text\" name=\"query\" placeholder='ex Doggy Don or Don (ISDS123456)' style=\"font-family:monospace; width:250px; font-size:12px;\"/>
<input type=\"radio\" name=\"haku\" value=\"koira\" checked>dog's name
<input type=\"radio\" name=\"haku\" value=\"sukulainen\">from pedigree<br />
<input type=\"submit\" value=\"Search\" style=\"border-radius:5px;\" />
</form></p><br>";
echo "<h1>Results</h1>\n\n";
echo "<p><a href=\"lista.php\">Back to Search</a></p>\n\n";
$query = $_GET['query'];
$haku = $_GET['haku'];
$min_length = 4;
$query = strip_tags($query);
$query = mysql_real_escape_string($query);
$mQuery1 = korjaus1($query);
$mQuery2 = korjaus2($query);
if(strlen($query) >= $min_length && $haku == koira)
{$raw_results = mysql_query("
SELECT * FROM `dogs`
WHERE `nimi`
LIKE '%".$query."%' OR `nimi`
LIKE '%".$mQuery1."%' OR `nimi`
LIKE '%".$mQuery2."%' AND `aktiivinen` = '1'
ORDER BY nimi ASC") or die(mysql_error());
tulokset($raw_results);}
else if(strlen($query) >= $min_length && $haku == sukulainen)
{$raw_results = mysql_query("
SELECT * FROM `dogs`
WHERE `isa`
LIKE '%".$query."%' OR `isanisa`
LIKE '%".$query."%' OR `isanemo`
LIKE '%".$query."%' OR `emo`
LIKE '%".$query."%' OR `emonisa`
LIKE '%".$query."%' OR `emonemo`
LIKE '%".$query."%' AND `aktiivinen` = '1'
ORDER BY nimi ASC") or die(mysql_error());
tulokset($raw_results);}
else { echo "You need to type at least ".$min_length." characters. Please make sure you typed the name/reg number right";}
function tulokset($raw_results)
{if(mysql_num_rows($raw_results) > 0)
{$lkm = 0;
echo "<center><table width=\"100%\" class=\"tiedot\"cellspacing=\"3\" cellpadding=\"0\"><tr>
<td class=\"tie\" width=\"15%\"><b>Country</b></td>
<td class=\"tie\" width=\"45%\"><b>Dog's name</b></td>
<td class=\"tie\" width=\"10%\"><b>Gender</b></td>
<td class=\"tie\" width=\"30%\"><b>Affected joint</b></td></tr>\n";
while($results = mysql_fetch_array($raw_results))
{$lkm++;
echo "<tr>
<td class=\"to\">".$results['maa']."</td>
<td class=\"to\"><a href=\"koira.php?id=".$results['ID']."\">".$results['nimi']."</a></td>
<td class=\"to\">".$results['skp']."</td>
<td class=\"to\">".$results['nivel1']."</td>
</tr>\n";}
echo "<tr><td class=\"tie\" colspan=\"2\">Search results: ".$lkm."</td></tr>";
echo "</table></center>\n\n";}
else {
echo "No results";}
return 0;}
function korjaus1 ($query) {
$query=str_replace("'", "'", $query);
return $query;}
function korjaus2 ($query) {
$query=str_replace("'", "'", $query);
$query=str_replace("´", "'", $query);
$query=str_replace("`", "'", $query);
$query=str_replace("ä", "ä", $query);
$query=str_replace("ö", "ö", $query);
$syote=str_replace("å", "å", $syote);
$syote=str_replace("Ä", "Ä", $syote);
$syote=str_replace("Ö", "Ö", $syote);
$syote=str_replace("Å", "Å", $syote);
$query=str_replace("<", "", $query);
$query=str_replace(">", "", $query);
$query=str_replace("_", "_", $query);
$query=str_replace("$", "S", $query);
return $query;}
?>
<br><br>
<?php include_once("loppu.php"); ?>
0 ответов
Да, я знаю, что этот код устарел, поскольку есть этот
Устаревшее: mysql_connect(): расширение mysql устарело и будет удалено в будущем: вместо этого используйте mysqli или PDO в адресе здесь, в строке 5
Но если я переключаю его на MySQL, я получаю это
Предупреждение: mysqli_real_escape_string() ожидает ровно 2 параметра, 1 указан в адресе здесь, в строке 28
Именно этот в оригинальном коде
$query = mysql_real_escape_string($query);
И новый это
$query = mysqli_real_escape_string ($query);
И если я попробую это
$query = mysqli::real_escape_string ($query);
Я получаю это:
Неустранимая ошибка: нестатический метод mysqli::real_escape_string() не может быть вызван статически в адресе здесь в строке 28
По некоторым причинам я не могу заставить это работать.
Таким образом, мой вопрос был, как я делаю опцию мульти-поиска? Вывод и ввод работает нормально, за исключением предупреждения об устаревании. Вероятно, лучше переключиться на mysqli, но пока у mysql есть единственное, что работает, я не вижу смысла делать это.