Avatar billede Swatski Nybegynder
16. juni 2011 - 10:35 Der er 6 kommentarer og
1 løsning

Mysqli "mini shop"

Hej Eksperten.

jeg har brug for lidt inputs  til en mini shop.

Sagen er den at jeg skal have lavet en shop med forskellige kategorier til et projekt

jeg har så oprettet en mysql shop tabel med følgende felter

id, kategori, navn, beskrivelse,pris og img (for billede)

jeg kan sagtens få listet ALLE mine produkter, MEN

det skal være sådan så når man klikker på et kategori link i venstre side af min side at man får listet produkter inden for den kategori, så som "sko" "tasker" eller som jeg selv har indskrevet i db......
jeg giver gerne 60 points for en Mysqli kode der virker til formålet,jeg giver gerne 100 points da det haster.
16. juni 2011 - 11:04 #1
Hvor kalder du din mysql database fra?  Jeg skal her antage, at du bruger en php kode.  Jeg går videre ud fra, at når du har du med dit kategori link kalder en ny php side, hvor du så i en variabel indfanger den valgte kategori, for eksempel således:

<?php
$kategori = $_REQUEST['kategori'];
?>

Hvis alt det passer, så er det bare at lave en mysql forespørgsel med brug af $kategori, for eksempel således:

<?php
$kategori = $_REQUEST['kategori'];

$result = mysql_query("SELECT * FROM shoptabel WHERE katerori = '$kategori'");
while($row = mysql_fetch_array($result))
{
  echo "$row['id']" . " - " . "$row['kategori']" . " - " og så videre;
}
?>
Avatar billede Swatski Nybegynder
16. juni 2011 - 11:21 #2
ja det er php.

pt ser min kode sådan her ud:

$query =mysqli_query ($db, "select * from proshop where kategori = Tasker") or die (mysqli_error($db));

$result=mysqli_query($query, $db);
while ($row = mysqli_fetch_array($result)){

echo  $row['kategori'];

}

mysqli_close($db);

får denne besked:
Unknown column 'Tasker' in 'where clause'
Avatar billede Swatski Nybegynder
16. juni 2011 - 11:51 #3
ok nu har jeg fået den til at vise:

Kategori:


Navn :


Beskrivelse:


Pris:


Billede

dog siger den fejl :Notice: Undefined index: Tasker in .... og så siger den

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in
16. juni 2011 - 12:15 #4
Svar til #2:  Tasker er en tekststreng.  Derfor skal den vises i udråbstegn, altså $query =mysqli_query ($db, "select * from proshop where kategori = 'Tasker'") .  Hvis du ikke putter 'Tasker' i udråbstegn, så antager mysql, at det er et felt i tabellen.

Svar til #3:  mysqli_query() returnerer resultatet af en forespørgsel hvis der er et resultat, ellers returnerer den false.  False er en boolean, så din forespørgsel returnerer ikke noget resultat, sandsynligvis fordi der stadig er problemer met Tasker.

Så altså:  $query =mysqli_query ($db, "select * from proshop where kategori = 'Tasker'") burde virke.
Avatar billede Swatski Nybegynder
16. juni 2011 - 12:37 #5
tjaaa fik den selv så småt til at virke, men vil godt give dig points for dit arbejde og hjælp :)
16. juni 2011 - 12:52 #6
Svar fra mig.
Avatar billede arne_v Ekspert
17. juni 2011 - 00:08 #7
Og naar mysqli begynder at virke lidt velkendt, saa er det er nyt interessant topic: beskyttelse mod SQL injection!
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
Computerworld tilbyder specialiserede kurser i database-management

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