Avatar billede clausberg Nybegynder
05. august 2006 - 12:07 Der er 20 kommentarer og
1 løsning

Select from where problem

Jeg har en side hvor folk kan uploade billeder af deres biler med dertilhørende titel, beskrivelse osv. Det bliver gemt i en mysql database.

Når en bruger søger i dabasen får han en række resultater, som fx kunne være:

- Jens - Billede af bil - pris - beskrivelse - se alle biler fra denne kunde
- Søren - billede af bil - pris - beskrivelse - se alle biler fra denne kunde.

OSV:::::

Når man trykker på "Se alle biler fra denne kunde", ud fra Sørens profil, ja, så skal alle Sørens øvrige biler blive vist.

Jeg arbejder med dette script:
showall.php:
<?php
Jeg connecter til databasen;
$result = mysql_query("SELECT * FROM tbl_716418
WHERE kunde=??????????") or die(mysql_error());
echo "<table border='1'>";
echo (udskriver resultaterne i en tabel)
echo osv. osv.
?>

Hvis jeg trykker på "Se alle biler fra denne kunde" ud fra Sørens profil, så skal hans øvrige biler blive vist.
Og hvis jeg trykker på "Se alle biler fra denne kunde" ud fra Jens´s profil, så skal hans øvrige biler blive vist...

og så videre...............
Avatar billede nielle Nybegynder
05. august 2006 - 12:54 #1
Du skal jo nok starte med at sætte kundens id på i linket som gemmer sig under "se alle biler fra denne kunde".

Hvrodan ser din nuværende version ud?
Avatar billede clausberg Nybegynder
05. august 2006 - 13:58 #2
Vil det sige at jeg skal echo id (jeg skal vel skjule det) og så gøre brug af det?
Avatar billede nielle Nybegynder
05. august 2006 - 14:29 #3
Hvordan ser din nuværende kode ud? Den hvor at du udtrækker billederne af bilerne?
Avatar billede clausberg Nybegynder
05. august 2006 - 15:06 #4
Den ser således ud:
<?php
$conn = mysql_connect("XXX", "XXX", "XXX") or die(mysql_error());
mysql_select_db("XXX") or die(mysql_error());

$result = mysql_query("SELECT * FROM tbl_716418
WHERE kategori='Fiat'") or die(mysql_error()); 

echo "<table border='1'>";
echo "<tr><th>navn</th><th>kategori</th><th>header</th><th>billede</th><th>comment</th></tr>";
while($row = mysql_fetch_array( $result )) {
    echo "<tr><td>";
    echo $row['navn'];
    echo "</td><td>";
    echo $row['kategori'];
    echo "</td><td>";
    echo $row['header'];
    echo "</td><td>";
    echo "<img src='".$uploadDir="upload/" .$row['filename']."'>";
    echo "</td><td>";
    echo $row['comment'];
    echo "</td><td>";
    echo "<a href='showall.php'>Alle produkter fra denne kunde</a>";
    echo "</td></tr>";
    echo "<tr><td height='5'></td></tr>";
}
echo "</table>";
?>
Avatar billede nielle Nybegynder
05. august 2006 - 15:18 #5
Ok, så skal denne linje:

echo "<a href='showall.php'>Alle produkter fra denne kunde</a>";

- rettes til et eller andet i stil med dette:

echo "<a href='showall.php?id=$row[id]'>Alle produkter fra denne kunde</a>";

- hvor $row[id] skal passe med det du har kaldt id'et i din tabel.
Avatar billede nielle Nybegynder
05. august 2006 - 15:19 #6
I showall.php - altså der hvor du submitter til - skal din SQL så set sådan her ud:

$result = mysql_query("SELECT * FROM tbl_716418
WHERE kunde=$_GET[id]") or die(mysql_error());
Avatar billede nielle Nybegynder
05. august 2006 - 15:20 #7
Jeg gætter på at dit id-felt hedder "kunde". Er det rigtigt?

Hvis det er så skal koden i 05/08-2006 15:18:46 se sådan her ud:

echo "<a href='showall.php?id=$row[kunde]'>Alle produkter fra denne kunde</a>";
Avatar billede clausberg Nybegynder
05. august 2006 - 16:18 #8
Mit id felt hedder blot id
så showall.php bliver
$result = mysql_query("SELECT * FROM tbl_716418
WHERE id=$_GET[id]") or die(mysql_error());

Når jeg retter alt dette til og trykker på "Alle produkter fra denne kunde"
så får jeg ikke vist alle "Sørens" billeder men blot det billede (incl beskrivelse osv.) som bliver vist umiddelbart i linien før teksten "Alle produkter fra denne kunde".


Måske skulle jeg forklare noget mere:
PÅ forsiden har jeg en række bilmærker listet op:
Fiat
Volve
Toyota
osv.
Når man så klikker på fx Fiat, så gøres der brug af:
showone.php:
<?php
$conn = mysql_connect("XXX", "XXX", "XXX") or die(mysql_error());
mysql_select_db("XXX") or die(mysql_error());

$result = mysql_query("SELECT * FROM tbl_716418
WHERE kategori='Fiat'") or die(mysql_error()); 

echo "<table border='1'>";
echo "<tr><th>Kunde</th><th>kategori</th><th>header</th><th>billede</th><th>comment</th></tr>";
while($row = mysql_fetch_array( $result )) {
    echo "<tr><td>";
    echo $row['kunde'];
    echo "</td><td>";
    echo $row['kategori'];
    echo "</td><td>";
    echo $row['header'];
    echo "</td><td>";
    echo "<img src='".$uploadDir="upload/" .$row['filename']."'>";
    echo "</td><td>";
    echo $row['comment'];
    echo "</td><td>";
    echo "<a href='showall.php?id=$row[id]'>Alle produkter fra denne kunde</a>";
    echo "</td></tr>";
    echo "<tr><td height='5'></td></tr>";
}
echo "</table>";
?>

Giver det mening?
Avatar billede nielle Nybegynder
05. august 2006 - 16:25 #9
Denne her linje:

echo "<a href='showall.php?id=$row[id]'>Alle produkter fra denne kunde</a>";

- skal rettes sådan at det er kundens id, og ikke billedets id, som bliver hæftet på som id
Avatar billede clausberg Nybegynder
05. august 2006 - 16:32 #10
Har kunden et id???

Min database er:
id - int
filename - text
Kunde - varchar
kategori - varchar
header - varchar
comment - varchar
added - datetime
Avatar billede nielle Nybegynder
05. august 2006 - 16:35 #11
Har du kun een tabel i din database?
Avatar billede clausberg Nybegynder
05. august 2006 - 16:48 #12
Jeg har flere tabeller i min database...
En af dem indeholder oplysninger om selve kunde... altså dennes email adresse, by, beskrivelse osv.

men tl_716418 ser altså således ud:
id - int
filename - text
Kunde - varchar
kategori - varchar
header - varchar
comment - varchar
added - datetime
Avatar billede nielle Nybegynder
05. august 2006 - 16:50 #13
Ok. :^)

Vil det så sige at feltet "kunde" i tabellen tl_716418 er en reference til kundesn id i den tabel som indeholder kunde-oplysningerne?
Avatar billede clausberg Nybegynder
05. august 2006 - 17:14 #14
Feltet "kunde" indeholder blot kundens navn

Tabellen tlb_716418 spiller ikke sammen med andre tabeller. Den tabel der indeholder oplysninger om kunderne hedder "users" og indeholder bl.a feltet id som blot er et unikt id og feltet "kunde" som blot er navnet på kunden.
Avatar billede nielle Nybegynder
05. august 2006 - 17:22 #15
Det er nu ikke en speciel optimal måde at gøre det på. F.eks. kan du så ikke have forskellige kunder som hedder det samme.

Nå, men denne linje:

echo "<a href='showall.php?id=$row[id]'>Alle produkter fra denne kunde</a>"

- skal se sådan her ud:

echo "<a href='showall.php?kunde=$row[kunde]'>Alle produkter fra denne kunde</a>"

- og den SQL du spurgte efter skal så set sådan her ud:

result = mysql_query("SELECT * FROM tbl_716418
WHERE kunde=$_GET[kunde]") or die(mysql_error());
Avatar billede clausberg Nybegynder
05. august 2006 - 22:14 #16
Så får jeg fejlen:
Unknown column 'Søren' in 'where clause'
Avatar billede nielle Nybegynder
05. august 2006 - 22:34 #17
Prøv lige at udskrive din SQL før at du prøver at køre den:

$sql = "SELECT * FROM tbl_716418 WHERE kunde='$_GET[kunde]'";
echo "DEBIG: $sql<br>";
$result = mysql_query($sql) or die(mysql_error());



Men jeg tror nu bare at fejlen er at der ikke er '-tegn med i SQL'en. Altså fra:

$sql = "SELECT * FROM tbl_716418 WHERE kunde=$_GET[kunde]";

- til:

$sql = "SELECT * FROM tbl_716418 WHERE kunde='$_GET[kunde]'";
Avatar billede clausberg Nybegynder
05. august 2006 - 23:32 #18
Ja det var ' der manglede. Nu virker det fint.
Hvad gør DEBIG ?
Avatar billede clausberg Nybegynder
05. august 2006 - 23:33 #19
Og selvfølgelig smid et svar :-)
Avatar billede nielle Nybegynder
06. august 2006 - 07:41 #20
"DEBIG" - var bere en tastefejl. Det skulle have været "DEBUG".

Det er en linje som jeg bruger når jeg ønsker at udskrive mine programmers interne data som en del af en debugnings-session.

... og et svar :^)
Avatar billede clausberg Nybegynder
06. august 2006 - 10:24 #21
Tak for hjælpen :-)
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