php zoek formulier

Status
Niet open voor verdere reacties.

willem008

Gebruiker
Lid geworden
28 sep 2007
Berichten
792
Goede dag

Ik heb op een site van mijn een zoek functie, deze heeft altijd goed gedraait tot dat de php werdt geupdate.
Mijn vraag hoe kan ik deze scipt weer aan de gang krijgen.

Ik heb nu heb volgende maar wat ik ook invul hij toont de hele tabel.

het zoekformulier

PHP:
<?
    echo "\n
        
   
    
    
    <FORM METHOD=\"POST\" ACTION=\"zoek.php\">
    <br>Zoek op term of op art_no
    <input type=\"text\" name=\"zoekterm\" size=\"20\"><br>
    <input type=\"submit\" name=\"submit\" value=\"Zoeken!\">

    </form>
     ";

    
    ?>


de verwerkpagina zoek.php


PHP:
<?


   


    //-- natuurlijk moet er eerst een connectie met de database worden gemaakt:
    if (!@mysql_select_db("xxxxxxx", @mysql_connect("xxxxxx.nl.mysql", "database_naam", "wachtwoord")))
    {
        echo "Er kan geen database connectie gemaakt worden.";
        exit();
    }

    //-- $HTTP_POST_VARS[zoekterm] is de naam van het zoekveld in het formulier wat we 
    //-- hebben gemaakt in het vorige 'hoofdstuk'. Dit is dus de SQL code:
    $sql = "SELECT * from artikel WHERE omschrijving LIKE '%$HTTP_POST_VARS[zoekterm]%'";
    
    //-- voer de SQL code uit en zet dit in een variabele zodat we zometeen kunnen 
    //-- kijken of er een resultaat is
    $res = mysql_query($sql);
    
    //-- bekijk nu of er een resultaat is, of het zoekwoord dus gevonden is of niet
    if (mysql_num_rows($res) >= 1)
    {
        //-- er is een resultaat gevonden, toon de resultaten via een while () loop
        while ($row = mysql_fetch_array($res))
        {
            echo "<table border=1><tr><td width=120 height=90>" . $row["naam"] . "</td><td width=190 height=90>" . $row["omschrijving"] . "</td><td width=120 height=90>" . $row[prijs] . "</td><td><img src= " . $row["foto"] . " width=110 height=90 /></td><td width=150 height=90>" . $row["zoekwoorden"] . "</td></tr></table>\n";
           

        }
        
            }
    //-- als er geen resultaat is gevonden, dus als het zoekwoord niet gevonden is:
    else
    {
        echo "<p>Er is niets gevonden op u zoekterm:<b> $HTTP_POST_VARS[zoekterm]</b></p>";

        
        
    }
?>
 
Dit script zou eigenlijk een plek mogen krijgen in het PHP-museum en is tevens ook zeer inefficient gebouwd.
- Je gebruikt <? i.p.v. <?php
- Waarom je formulier elke " in je HTML escapen met een \, je kan prima een single-quote gebruiken als echo.
- mysql_* -functies zijn uit de tijd, gebruik liever mysqli_*()
- $HTTP_POST_VARS variabelen zou je al tien jaar niet meer mogen gebruiken! Gebruik dus $_POST, vergeet ze niet te escpaen met mysqli_real_escape_string() om SQL-injection tegen te gaan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan