login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Zoekscript werkt nog niet (Opgelost)

Offline krahk - 28/10/2008 19:07
Avatar van krahkNieuw lid Ik heb een script voor het zoeken in mijn tabel Recepten en een formulier waar een trefwoord ingevuld kan worden, maar hij zegt dat mn query leeg is de hele tijd.

code(ik heb ff wachtwoord enzo verwijderd maar dat werkt iig wel):

  1. <form name="Zoekrecepten" method="post" action="Zoeken.php">
  2. Trefwoord<br />
  3. <input name="trefwoord" type="text" maxlength="50" style="width:97%;" />
  4. <input type="image" src="images/zoeknormal.jpg" style="margin-top:5px;float:right;" alt="Zoeken" width="80px" height="19px" />
  5. </form>


  1. <?php
  2. // Address error handing.
  3. ini_set ('display_errors', 1);
  4. error_reporting (E_ALL & ~E_NOTICE);
  5.  
  6. // Connect and select.
  7. if ($dbc = @mysql_connect ('server', 'user', 'wachtwoord)) {
  8.  
  9. if (!@mysql_select_db ('database')) {
  10. die ('<p>Could not select the database because: <b>' . mysql_error() . '</b></p>');
  11. }
  12.  
  13. } else {
  14. die ('<p>Could not connect to MySQL because: <b>' . mysql_error() . '</b></p>');
  15. }
  16.  
  17. $query = 'SELECT * from Recepten WHERE trefwoord LIKE '%$trefwoord%' order by date_entered DESC';
  18.  
  19. if ($r = mysql_query ($query)) { // Run the query.
  20.  
  21. while ($row = mysql_fetch_array ($r)) {
  22. print "<p><h3>{$row['naam']}</h3><br />
  23. {$row['afbeelding']}<br />
  24. <b>Ingrediënten:</b><br />{$row['ingredienten']}<br />
  25. <b>Bereidingswijze:</b><br />{$row['bereidingswijze']}<br />
  26. </p><hr /> \n";
  27. }
  28.  
  29. } else {
  30. die ('<p>Could not retrieve entries because: <b>' . mysql_error() . "</b>. The query was $query.</p>");
  31. }
  32.  
  33. mysql_close();
  34.  
  35. ?>


ziet iemand de fout in mijn script?

5 antwoorden

Gesponsorde links
Offline Rik - 28/10/2008 19:25
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Je mist sowieso een ' achter wachtwoord op regel 7, maar dat is vast niet de fout die je bedoelt.
Op regel 7 moet je van '%$trefwoord%' maken: \'%$trefwoord%\'.
Ook zou ik een check in bouwen met PHP.net: mysql_num_rows om te kijken of er überhaupt wel resultaten zijn.
Offline krahk - 28/10/2008 20:07
Avatar van krahk Nieuw lid bedankt voor je reactie, die ' was een typfoutje toen ik het wchtwoord weghaalde  

heb er nu \'%$trefwoord%\' van gemaakt en hij zegt niet meer dat er een lege query is, maar hij zegt nu ook helemaal niks meer 

is dat mysql_num_rows nodig om het te laten werken?

alvast bedankt voor je volgende reactie
Offline Rik - 28/10/2008 20:27
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Foutje van mij, ik ben vergeten te zeggen dat je nog wel de waarde van $trefwoord erin moet zetten. 
Je had eerst:
  1. $query = 'SELECT * from Recepten WHERE trefwoord LIKE '%$trefwoord%' order by date_entered DESC';

Dit is geen geldige omdat je single quotes binnen elkaar hebt staan.

Zo zou het wel moeten werken:
  1. $query = 'SELECT * from Recepten WHERE trefwoord LIKE \'%' .$trefwoord . '%\' order by date_entered DESC';


mysql_num_rows() is niet speciaal nodig, maar wel handig om een melding te geven als er niets is gevonden.
Offline Joost - 28/10/2008 20:29
Avatar van Joost PHP expert Je definieert ook nergens $trefwoord, of heb je dat even weggelaten in dit script? 
Offline krahk - 28/10/2008 20:30 (laatste wijziging 28/10/2008 20:31)
Avatar van krahk Nieuw lid kijk als noobie was ik daar dus nooit opgekomen, thanks hij werkt  

edit:
Medieval: Hij geeft daarvan een voorbeeld in zn laatste post toch?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.212s