21. marts 2004 - 21:02Der er
13 kommentarer og 2 løsninger
Find fejlen ( i mysql_fetch_row )
Jeg har lavet et simpelt login script, hvor man bare skal taste en kode for at komme ind, men det virker ikke efter hensigten. Hvis man taster rigtigt virker det, men hvis koden ikke findes, skriver den:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/web/gb1404/tilfreds/index.php on line 10
Scriptet ser således ud:
$kode_tjek = mysql_query("SELECT kode FROM tilfreds_".$navnekode."_kode WHERE kode='$kode'"); if($r = mysql_fetch_row($kode_tjek)){
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
den klager jo over at $kode_tjek ikke kan puttes ind i mysql_fetch_row(). Prøv lige at spytte din query ud, så du er sikker på den virkelig indeholder, det den burde indeholde :)
altså: $query = "SELECT kode FROM tilfreds_".$navnekode."_kode WHERE kode='$kode'"; echo $query; $kode_tjek = mysql_query($query); if($r = mysql_fetch_row($kode_tjek)){
dea_pg så fortæller den mig jo bare at $kode ikke findes. Og det er jo også rigtig nok.. Men så ville jeg bare gerne have den til at skrive en fejlmeddelse!
melange: Mener du således? Der er ingen forskel, den skrive stadig samme fejl..
$kode_tjek = mysql_query("SELECT kode FROM tilfreds_".$navnekode."_kode WHERE kode='$kode'"); echo $query; $kode_tjek = mysql_query($query); if($r = mysql_fetch_row($kode_tjek)){
peter -> øhhhh, laver den en "Notice: undefined variable", eller hvad? - for forskellen på mit og dit er bare at min udskriver MySQL fejl hvis dit SQL-query ikke er et "lovligt" SQL-kald...
--- if(isset($kode)){ $query = "SELECT kode FROM tilfreds_".$navnekode."_kode WHERE kode='$kode'"; $kode_tjek = mysql_query($query)or die("MySQL brokkede sig over linien:<br>" . $query . "<br>MySQL sagde:<br>" . myqsl_error()); if(mysql_num_rows($kode_tjek) > 0){
$raekke = mysql_fetch_row($kode_tjek); $_SESSION['kode'] = $raekke[0]; header("Location: index1.php"); } else{ $fejl = "Du har indtastet en forkert kode"; } } else{ echo "Din ged, du har ikke sat \$kode til noget..."; } ---
og hvad betydder det... "tabellen 'tilfreds_hng_kode' i databasen 'gb1404' findes ikke"... så der har du din fejl... tabellen findes ikke, og du kan derfor ikke hente nogle rækker...
$query = "SELECT kode FROM tilfreds_".$navnekode."_kode WHERE kode='$kode'"; $kode_tjek = mysql_query($query)or die("MySQL brokkede sig over linien:<br>" . $query . "<br>MySQL sagde:<br>" . myqsl_error()); if(mysql_num_rows($kode_tjek) > 0){
$raekke = mysql_fetch_row($kode_tjek); $_SESSION['kode'] = $raekke[0]; header("Location: index1.php"); } else{ $fejl = "Du har indtastet en forkert kode"; } } else{ echo "Din ged, du har ikke sat \$kode til noget..."; }
det er væsenligt sværre at tjekke om tabeller findes - så din opbygning er helt forkert - tabelnavne bør aldrig være dynamisk... man bør have en fåtal af tabeller og så lidt flere felter i disse...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.