Avatar billede mostcrazy Nybegynder
13. oktober 2004 - 11:01 Der er 8 kommentarer og
1 løsning

problem med mysql_fetch_array

Hejsa

Jeg har et problem med udtrækningen af data fra min db. Jeg får følgende fejl

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/html/vhosts/marj/op/SearchResult.php on line 42

Min kode for udtrækket ser således ud

<?
    $resultat = mysql_query("select * from outdoor_articles WHERE articleMaker=$maker");

// Kør så igennem for hver række
while ($raekke = mysql_fetch_array($resultat)) {
  extract($raekke);
  echo "<tr><td>$articleMaker</td><td>$articleName</td><td>$articleMat1</td><td>$articleWeight</td><td>$articleColor</td><td>$articleSizeMin - $articleSizeMax</td><td><a href='ShowDetails.php?ID=$articleID'>Vis</a></td></tr>";
}
?>

hvor linie 42 er

while ($raekke = mysql_fetch_array($resultat)) {

Er der nogen, som har en ide om hvad det kan skyldes? Jeg har en eller anden ide om at, det er en minimal fejl jeg bare har overset, så jeg håber en af jer kan opklare det.

På forhånd tak :o)
Avatar billede chries Nybegynder
13. oktober 2004 - 11:06 #1
$resultat = mysql_query("select * from outdoor_articles WHERE articleMaker=$maker") or die(mysql_error());
Avatar billede bojo Nybegynder
13. oktober 2004 - 11:09 #2
er der resultater, prøv evt.

enten

if( mysql_num_rows($result) ) { // tjek om der er svar
  // Kør så igennem for hver række
  while ($raekke = mysql_fetch_array($resultat)) {
    extract($raekke);
    echo


eller

var_dump($resultat); // dump resultat for at se
// Kør så igennem for hver række
while ($raekke = mysql_fetch_array($resultat)) {
  extract($raekke);
  echo
Avatar billede mostcrazy Nybegynder
13. oktober 2004 - 11:13 #3
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'North Face' at line 1

Det skal tilføjes at $maker kommer fra en anden side via POST og har i det her tilfælde værdien "The North Face"
Avatar billede hmortensen Nybegynder
13. oktober 2004 - 11:17 #4
$resultat = mysql_query("SELECT * FROM outdoor_articles WHERE articleMaker = '".$_POST['maker']."'") or die(mysql_error());
Avatar billede milo Nybegynder
13. oktober 2004 - 11:25 #5
Smid altid en mysql_error() på så du får en bedre fejlmeddelse.

Fejlen ligger givetvis i, at der ikke bliver retuneret nogle resultater i din query, eller at $maker er tom.
Avatar billede mostcrazy Nybegynder
13. oktober 2004 - 11:26 #6
yes, nu virker det - så er mit store spørgsmål om det ikke kan være lige meget om man sætter en variabel ind eller sætter $_POST direkte ind som hindu_skp gjorde?
Avatar billede hmortensen Nybegynder
13. oktober 2004 - 11:32 #7
Kommer an på om register_globals er on eller off i php.ini.
Avatar billede hmortensen Nybegynder
13. oktober 2004 - 11:33 #8
En anden fejl du også havde:
Der var ikke '' om variablen, så mysql har ikke taget det som en hel streng
Avatar billede mostcrazy Nybegynder
13. oktober 2004 - 12:11 #9
hurtig afregning hindu_skp løste det
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester