База данных 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;\"/>&nbsp;&nbsp;
    <input type=\"radio\" name=\"haku\" value=\"koira\" checked>dog's name&nbsp;&nbsp;
    <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("'", "&apos;", $query);
    return $query;}

function korjaus2 ($query) {
    $query=str_replace("'", "&apos;", $query);
    $query=str_replace("´", "&apos;", $query);
    $query=str_replace("`", "&apos;", $query);
    $query=str_replace("ä", "&auml;", $query);
    $query=str_replace("ö", "&ouml;", $query);
    $syote=str_replace("å", "&aring;", $syote);
    $syote=str_replace("Ä", "&Auml;", $syote);
    $syote=str_replace("Ö", "&Ouml;", $syote);
    $syote=str_replace("Å", "&Aring;", $syote);
    $query=str_replace("<", "", $query);
    $query=str_replace(">", "", $query);
    $query=str_replace("_", "&#95;", $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 есть единственное, что работает, я не вижу смысла делать это.

Другие вопросы по тегам