henkenyMedlem sedan maj 200152 inlägg Då var det dags för ett nytt problem :-)
Har en select-lista jag väljer matkategori ur.
---------------main.php----------------
<select name="SnabbvalMat" onChange="document.location='snabbval_mat_res.php?kategori=' + this[this.selectedIndex].value;">
\<option selected\>Snabbval Mat\</option\>
\<option value="Svensk husmanskost"\>Svensk husmanskost\</option\>
\<option value="Kött"\>Kött\</option\>
\<option value="Fisk"\>Fisk\</option\>
\<option value="Italienskt"\>Italienskt\</option\>
\<option value="Kinesiskt"\>Kinesiskt\</option\>
\<option value="Pizza"\>Pizza\</option\>
\<option value="Vegetariskt"\>Vegetariskt\</option\>
</select>
--------------snabbval_mat_res.php-------------
<?
include("dbconn.inc");
$sql = "SELECT * FROM restaurang WHERE kat LIKE '%$kategori%";
$result=mysql_query("$sql");
?>
<table border="0" width="300" align="left">
<tr align="left">
<th>Restaurang</th>
<th><i>Geografisk placering</i></th>
</tr>
<?
while ( $row = mysql_fetch_array($result) )
{
?>
<tr>
<?
$uid = $row['id'];
$restname = $row['restname'];
$omrade = $row['omrade'];
$visaURL = "restur_pres.php?idnr=$uid";
?>
<td><a href="<? print $visaURL ?>"><? print $restname ?></a> </td>
<td><i><? print $omrade ?> </i></td>
</tr>
</font>
<?
}
mysql_close ($conn);
?>
Får felmeddelandet :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/u1143/web/snabbval_mat_res.php on line 42
line 42 är:
while ( $row = mysql_fetch_array($result) )
haft detta felmeddelande innan, men jag kna inte komma på vad det är som strular nu..
tacksam för svar
/Henke
henkenyMedlem sedan maj 200152 inlägg Glöm det.......en jävla fnuttjävel för lite....och så hittar man det precis när man postat inlägg här.
Hej på er!
:birp
/Henke
@ndersMedlem sedan juni 200032 969 inlägg Du har glömt att stänga strängen inuti SQL-frågan.
$sql = "SELECT * FROM restaurang WHERE kat LIKE '%$kategori%'";
Använd gärna [ kod]- eller [ php]-taggar så blir din kod mer lättläst. (Utan inledande mellanslag då).
Mvh,
SPiNMedlem sedan mars 20007 896 inlägg Ändra följande i filen snabbval_mat_res.php, från:
<?
include("dbconn.inc");
$sql = "SELECT * FROM restaurang WHERE kat LIKE '%$kategori%";
$result=mysql_query("$sql");
?>
Till:
<?
include("dbconn.inc");
$sql = "SELECT * FROM restaurang WHERE kat LIKE '%$kategori%'";
$result=mysql_query( $sql )
or die( mysql_error() );
?>
Jag tror att det beror på att du glömt en enkelfnutt i SQL-satsen, som du ser att jag lade till. Jag la också till 'or die'-raden, för att se om SQL-frågan genererar något fel - i så fall dör scriptet med felmeddelandet.
henkenyMedlem sedan maj 200152 inlägg tack för svaren så hemskt mycket!!
kom på att jag tänkt lite fel. det fungerar mycket riktigt nu.
men på första sidan main.php har jag färdiga kategorier som man väljer i drop-listen. Likaså i databasen finns dessa kategorier med så jag ska ju inte ha en SQL sats som denna som tar ungefärligt lika poster.
Min SQL-sats ska ju bara visa de poster i databasen som har EXAKT samma värde. T.ex. väljer jag pizza i select-listen ska den bara visa de poster som har denna katagori.
Hur skriver jag den sql-satsen???
SPiNMedlem sedan mars 20007 896 inlägg Om jag förstått dig rätt; Då byter du ut nyckelordet LIKE mot ett likhetstecken ( = ) och tar bord wildcard-tecknen ( % ).
SELECT blah FROM bluh WHERE blih = '$kategori'
@ndersMedlem sedan juni 200032 969 inlägg Möjligen missförstår jag frågan, men om du istället för operatorn LIKE använder = så får du ju en exakt jämförelse. (Bort med wildcards givetvis då också).
$sql = "SELECT * FROM restaurang WHERE kat = '$kategori'";
Mvh,