webForumDet fria alternativet

visar inte ifrån databasen

PHPur PHP

9 svar · 578 visningar · startad av mr.mainline

Medlem sedan feb. 2003777 inlägg
Frågan#1

Jag håller på att leka med en webbshop men varför visas inte innehållet ifrån databasen?, inga felmeddelande.

När jag tar bort WHERE prodID=$kat"; i sql strängen så visas innehållet i databasen men då inte i de olika kategorier som det ska.

och $kat innehåller ett värde.

function VisaProdukter() { 
    global $dbh; 
    // Visar alla produkter i en viss kategori 
    //Fel, tror $kat var är tom 
    $kat = $_GET['kat']; 
    if (!empty($kat)) { 
        echo "<table border=\"1\">\n"; 
        echo "<tr>\n"; 
        echo "<td width=\"150\">&nbsp;</td>\n"; 
        echo "<td width=\"200\">Produktbeskrivning</td>\n"; 
        echo "<td>Pris SEK</td>\n"; 
        echo "<td>&nbsp;</td>\n"; 
        echo "</tr>\n"; 
        $query = "SELECT * FROM produkter WHERE prodID=$kat"; 
                //or die("Kunde inte lista produkter:<br />" . mysql_error());  
        $result = mysql_query($query, $dbh); 
                 
        while($rad=mysql_fetch_array($result)) { 
            echo "<form method=\"get\" action=\"index.php\">\n"; 
            echo "<tr>\n"; 
            echo "<td><img src=\"prod_bild.php?prodID=".$rad['prodID']."\"></td>\n"; 
            echo "<td align=\"left\" valign=\"bottom\">".$rad['beskrivning']."</td>\n"; 
            echo "<td align=\"left\" valign=\"bottom\">".$rad['pris']."</td>\n"; 
            echo "<td align=\"left\" valign=\"bottom\"><input type=\"text\" size=\"5\" name=\"antal\" value=\"1\"><input type=\"submit\" value=\"Beställ\"></td>\n"; 
            echo "<tr>\n"; 
            echo "<input type=\"hidden\" name=\"prodID\" value=\"".$rad['prodID']."\">\n"; 
            echo "<input type=\"hidden\" name=\"op\" value=\"lagg_till\">\n"; 
            echo "<input type=\"hidden\" name=\"kat\" value=\"$kat\">\n"; 
            echo "</form>\n"; 
        } 
        echo "</table>\n"; 
    } else { 
     
        // Ingen kategori vald så visa huduvsidans innehåll 
        echo "Huvudsidans innehåll"; 
    } 
}
Medlem sedan juli 20023 617 inlägg
#2

Prova

$query = "SELECT * FROM produkter WHERE prodID='$kat'";
Medlem sedan feb. 2003777 inlägg
#3

Nej tyvärr, ingen skillnad:-(

Medlem sedan juli 20023 617 inlägg
#4

Får $kat rätt värde? Inga andra tecken som ligger med och spökar? Du kanske måste köra trim() på $kat.

Medlem sedan feb. 2003777 inlägg
#5

Jag $kat har rätt värde, jag bifogar hela sidan.

Medlem sedan juli 20023 617 inlägg
#6

Jag kan inte se något fel, men känslan kvarstår ju att det är någon missmatch mellan prodID och $kat. Speciellt som det fungerade utan "WHERE prodID=$kat" (även om det inte fungerade som tänkt.)

Medlem sedan okt. 20001 285 inlägg
#7

så om du kör

function VisaProdukter() {
echo $_GET['kat'];
exit;
// etc...
}

skrivs nåt ut ?

Medlem sedan feb. 2003777 inlägg
#8

Ja jag får ut värdet 7 som är kategori 7.

Medlem sedan juni 20014 421 inlägg
#9

det är bättre att köra var_dump() på den så får du typen också. Vad jag tror är att fältet i databasen är en int, men get-variabeln är en sträng.

Medlem sedan nov. 20079 inlägg
#10

..

132 ms totalt · 3 externa anrop · v20260731065814-full.232057fb
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)