03. februar 2009 - 15:08
Der er
7 kommentarer og 1 løsning
Søgning i mysql
Jeg skal søge i 4 tabeller og data kommer da også men følgende fejl kommer også 12 gange. Er der en der kan hjælpe med at se hvad der er galt? Mvh Jan Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\orkiderejserdk\www\soegdb.php on line 334 <? $soegeord=$_POST["soegeord"]; search_db("rundrejser",$soegeord); $soegeord=$_POST["soegeord"]; search_db("kataloger",$soegeord); $soegeord=$_POST["soegeord"]; search_db("gaestebog",$soegeord); $soegeord=$_POST["soegeord"]; search_db("hotel",$soegeord); ?> <? // // søgefunktion // parametre search_db([tabelnavn],[søgetekst]) // function search_db($tabel,$var) { $trimmed = trim($var); if ($trimmed == "") { echo "<p>Udfyld søgefeltet.</p>"; exit; } ?> <?php include('Connections/orkiderejserdb.php'); ?> <?php mysql_select_db($database_orkiderejserdb, $orkiderejserdb) or die("Unable to select database"); $query = "select * from ".$tabel." where verdensdel like \"%$trimmed%\" OR broedtekst LIKE \"%$trimmed%\""; $results=mysql_query($query); $query1 = "select * from ".$tabel." where katalog like \"%$trimmed%\" OR target LIKE \"%$trimmed%\""; $results1=mysql_query($query1); $query2 = "select * from ".$tabel." where besked like \"%$trimmed%\" OR subject LIKE \"%$trimmed%\""; $results2=mysql_query($query2); $query3 = "select * from ".$tabel." where hotelnavn like \"%$trimmed%\" OR beskrivelse LIKE \"%$trimmed%\""; $results3=mysql_query($query3); echo "<p>Du søgte på: " $var "</p>"; echo "<table cellpadding=\"2\" cellspacing=\"0\" border=\"1\">"; while ($row= mysql_fetch_array($results)) { $overskrift = $row['overskrift']; $verdensdel = $row['verdensdel']; $broedtekst = $row['broedtekst']; $billede = $row['billede']; $laes_mere = $row['laes_mere']; $target = $row['target']; $prisindh = $row['prisindh']; $pris = $row['pris']; echo "<tr><td>$verdensdel</td><td>$overskrift</td></tr> <tr><td><img src=$billede /></td><td>$broedtekst<br /><br /><a href= $laes_mere $target> $overskrift $prisindh kr. $pris</a></td></tr>" ; } echo "</table>"; echo "<table cellpadding=\"2\" cellspacing=\"0\" border=\"1\">"; while ($row= mysql_fetch_array($results1)) { $katalog = $row['katalog']; $billede = $row['billede']; $linktil = $row['linktil']; $target = $row['target']; echo "<tr><td>$katalog</td><td> </td></tr> <tr><td><img src=img/$billede /></td><td><br /><br /><a href= $linktil $target> $billede</a></td></tr>" ; } echo "</table>"; echo "<table cellpadding=\"2\" cellspacing=\"0\" border=\"1\">"; while ($row= mysql_fetch_array($results2)) { $subject = $row['subject']; $besked = $row['besked']; $navn = $row['navn']; echo "<tr><td>Gæstebog</td><td>$navn</td></tr> <tr><td>$subject</td><td>$besked</td></tr>" ; } echo "</table>"; echo "<table cellpadding=\"2\" cellspacing=\"0\" border=\"1\">"; while ($row= mysql_fetch_array($results3)) { $land = $row['land']; $stednavn = $row['stednavn']; $hotelnavn = $row['hotelnavn']; $adresse = $row['adresse']; $kategori = $row['kategori']; $kategori2 = $row['kategori2']; $kategori3 = $row['kategori3']; $kategori4 = $row['kategori4']; $kategori5 = $row['kategori5']; $beskrivelse = $row['beskrivelse']; $billede1 = $row['billede1']; $billede2 = $row['billede2']; echo "<tr><td>$stednavn</td><td>$hotelnavn</td></tr> <tr><td>$hotelnavn <br /> $adresse <br /><br /><img src=img/$kategori /> <img src=img/$kategori2 /> <img src=img/$kategori3 /> <img src=img/$kategori4 /> <img src=img/$kategori5 /><br /><br />$beskrivelse</td><td><img src=/img/$billede1 /> <img src=/img/$billede2 /></td></tr>" ; } echo "</table>"; } ?>
Annonceindlæg fra Kingston Technology
05. februar 2009 - 22:19
#1
Umiddelbart ville jeg anbefale dig at skrive din queries således: $query = "select * from ".$tabel." where verdensdel like '%$trimmed%' OR broedtekst LIKE '%$trimmed%'"; Altså med ' i stedet for \" i din string. Desuden bør du køre addslashes($trimmed). Mvh Søren
05. februar 2009 - 22:20
#2
Men ellers ville det da være rart at vide hvilken linie fejlen er i.
09. februar 2009 - 16:54
#3
Så er jeg hjemme igen. Rettelser lavet undtagen addslashes($trimmed) Nu kommer der generel fejl: Parse error: syntax error, unexpected T_LNUMBER, expecting ',' or ';' in D:\home\orkiderejserdk\www\soegdb.php on line 319 Koden er nu: <? $soegeord=$_POST["soegeord"]; search_db("rundrejser",$soegeord); $soegeord=$_POST["soegeord"]; search_db("kataloger",$soegeord); $soegeord=$_POST["soegeord"]; search_db("gaestebog",$soegeord); $soegeord=$_POST["soegeord"]; search_db("hotel",$soegeord); ?> <? // // søgefunktion // parametre search_db([tabelnavn],[søgetekst]) // function search_db($tabel,$var) { $trimmed = trim($var); if ($trimmed == "") { echo "<p>Udfyld søgefeltet.</p>"; exit; } ?> <?php include('Connections/orkiderejserdb.php'); ?> <?php mysql_select_db($database_orkiderejserdb, $orkiderejserdb) or die("Unable to select database"); $queryture = "select * from ".$tabel." where verdensdel like '%$trimmed%' OR broedtekst LIKE '%$trimmed%'"; $results=mysql_query($queryture); $querykatalog = "SELECT * FROM ".$tabel." WHERE katalog LIKE '%$trimmed%'"; $resultsa=mysql_query($querykatalog); $querybog = "SELECT * FROM ".$tabel." WHERE besked LIKE '%$trimmed%' OR subject LIKE '%$trimmed%'"; $resultsb=mysql_query($querybog ); $queryhotel = "SELECT * FROM ".$tabel." WHERE hotelnavn LIKE '%$trimmed%' OR beskrivelse LIKE '%$trimmed%'"; $resultsc=mysql_query($queryhotel); echo "<p>Du søgte på: " $var "</p>"; echo "<table cellpadding="2" cellspacing="0" border="1">"; while ($row= mysql_fetch_array($results)) { $overskrift = $row['overskrift']; $verdensdel = $row['verdensdel']; $broedtekst = $row['broedtekst']; $billede = $row['billede']; $billede1 = $row['billede1']; $laes_mere = $row['laes_mere']; $target = $row['target']; $prisindh = $row['prisindh']; $pris = $row['pris']; echo "<tr><td>$verdensdel</td><td>$overskrift</td></tr> <tr><td><img src=$billede /><img src=$billede1 /></td><td>$broedtekst<br /><br /><a href= $laes_mere $target> $overskrift $prisindh kr. $pris</a></td></tr>" ; } echo "</table>"; echo "<table cellpadding="2" cellspacing="0" border="1">"; while ($row= mysql_fetch_array($resultsa)) { $katalog = $row['katalog']; $billede = $row['billede']; $linktil = $row['linktil']; $target = $row['target']; echo "<tr><td>$katalog</td><td> </td></tr> <tr><td><img src=img/$billede /></td><td><br /><br /><a href= $linktil $target> $billede</a></td></tr>" ; } echo "</table>"; echo "<table cellpadding="2" cellspacing="0" border="1">"; while ($row= mysql_fetch_array($resultsb)) { $subject = $row['subject']; $besked = $row['besked']; $navn = $row['navn']; echo "<tr><td>Gæstebog</td><td>$navn</td></tr> <tr><td>$subject</td><td>$besked</td></tr>" ; } echo "</table>"; echo "<table cellpadding="2" cellspacing="0" border="1">"; while ($row= mysql_fetch_array($resultsc)) { $land = $row['land']; $stednavn = $row['stednavn']; $hotelnavn = $row['hotelnavn']; $adresse = $row['adresse']; $kategori = $row['kategori']; $kategori2 = $row['kategori2']; $kategori3 = $row['kategori3']; $kategori4 = $row['kategori4']; $kategori5 = $row['kategori5']; $beskrivelse = $row['beskrivelse']; $billede1 = $row['billede1']; $billede2 = $row['billede2']; echo "<tr><td>$stednavn</td><td>$hotelnavn</td></tr> <tr><td>$hotelnavn <br /> $adresse <br /><br /><img src=img/$kategori /> <img src=img/$kategori2 /> <img src=img/$kategori3 /> <img src=img/$kategori4 /> <img src=img/$kategori5 /><br /><br />$beskrivelse</td><td><img src=/img/$billede1 /> <img src=/img/$billede2 /></td></tr>" ; } echo "</table>"; } ?>
09. februar 2009 - 17:51
#4
Mit indlæg kl 1654 er nu i orden. Det oprindelige problem er der stadig: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\orkiderejserdk\www\soegdb.php on line 338 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\orkiderejserdk\www\soegdb.php on line 350 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\orkiderejserdk\www\soegdb.php on line 361 Du søgte på: " thai " Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\orkiderejserdk\www\soegdb.php on line 320 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\orkiderejserdk\www\soegdb.php on line 350 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\orkiderejserdk\www\soegdb.php on line 361 Du søgte på: " thai " Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\orkiderejserdk\www\soegdb.php on line 320 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\orkiderejserdk\www\soegdb.php on line 338 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\orkiderejserdk\www\soegdb.php on line 361 Du søgte på: " thai " Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\orkiderejserdk\www\soegdb.php on line 320 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\orkiderejserdk\www\soegdb.php on line 338 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\orkiderejserdk\www\soegdb.php on line 350 Disse warnings kommer men søgningen er komplet. Mvh Jan
11. februar 2009 - 10:24
#5
Jeg har nu "løst" problemet. while($row = @mysql_fetch_array($result)) { ....... men som jeg kan læse vises fejlen ikke da problemet skulle stadig være der?? Er der en rigtig måde det kan laves på? Mvh Jan
11. februar 2009 - 12:04
#6
rettelse ;- men, som jeg finder på nettet vises fejlen bare ikke. Problemet skulle dog stadig være der??
weeelo Lægger du et svar. Så deler vi point. Jan
07. september 2009 - 08:33
#8
Jan
Computerworld tilbyder specialiserede kurser i database-management