Hallo,
Ik ben een tutorial aan het volgen waar een functie word uitgelegd hoe je moet zoeken door een MySQL Database.
Nu heb ik echter 2 fouten die ik niet weet hoe ik ze moet verhelpen om dat ik.. Best slecht in PHP ben en met MySQL al helemaal geen ervaring heb.. ( Het was dus ook de bedoeling om er wat mee te leren )
CODE: http://www.dumpcode.nl/view.php?ID=34
Fouten:

Fout 1 - Ik krijg 1 warning

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in pad/search.php on line 44

Dat begrijp ik dus al niet..

Fout 2 - Hij vind niet wat ik zoek terwijl het wel in de database staat..
Iemand een idee ?

Alvast bedankt !
- Yorick Toma

// Build SQL Query  
$query = "select * from table where 1st_field like "%$trimmed%"  
  order by 1st_field"; // EDIT HERE and specify your table and field names for the SQL query

 $numresults=mysql_query($query); 


Die query doet het niet, dus bouw foutafhandeling in en bekijk de fout :)
Maar..
Waarom werkt de query niet ?!
Ik heb de database en fields wel in m'n eigen script goed staan..
Alvast bedankt,
- Yorick Toma
Als je geen foutafhandeling hebt en dus geen foutmelding krijgt, is het zoeken naar een grassprietje in een berg naalden...

EDIT
Probeer dit eens:

$query = 'select * from table where 1st_field like %'.$trimmed.'%  order by 1st_field';
Maar..
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in pad/search.php on line 44

is de foutmelding, als ik

ini_set('display_errors', 'On');
error_reporting(E_ALL);

erbij zet is er geen verschil.. krijg geen error.
Bedankt,
- Yorick Toma
Zit er ook dit bij

mysql_query($query) or die(mysql_error());
steen schreef op 03.09.2009 17:57
Zit er ook dit bij

mysql_query($query) or die(mysql_error());
0

Dit moet je dus vooral niet doen ;-). Je script moet niet stoppen na de eerste de beste fout. controleren kan beter zo;

<?php

if ( !$exec = mysql_query () )
{
echo mysql_error () ;
}
else
{
mysql_fetch_row ( $exec ) ;
}

?>
In een testomgeving maakt dat totaal niet uit, als het over een online script gaat heb je wel gelijk.
Bedankt !
Het werkt ^^
- Yorick Toma
@Steen: Beter het goede meteen aanleren dan het slechte afleren.
Je moet altijd zorgen dat je website er netjes bij ligt: óók als er errors opspelen.
total agree @ Jezpur,

gebruik op z'n minst een structuur als dit:

<?php

$sql = "SELECT veld FROM table WHERE iets = 'iets'";
if(!$result = mysql_query($sql)){
// Je wilt gebruikers eigenlijk geen info geven
// over database. Gebruik hier dan dus eigenlijk
// swiftmailer om te mailen naar admin
trigger_error(mysql_error());
}
else{
//query geslaagd
//gegevens ophalen
foreach($result as $key => $value){
echo $value;
}
}
echo "Hier je footer of andere opmaak code";
?>

Reageren