Avatar billede PeaceDealer Nybegynder
31. juli 2011 - 22:14 Der er 1 kommentar og
1 løsning

[MYSQL] Tager kun id 2 (dobble while loop)

Hej

Jeg er ved at lave et PHP baseret changelog system

Har 2 tabeller, en med "Version"'erne og en med "log"'sne

Detter er scriptet jeg har kunne komme frem til

$select1 = mysql_query("SELECT * FROM `version` ORDER BY `id` ASC");
while($select = mysql_fetch_array($select1)) {

$select21 = mysql_query("SELECT * FROM `log` WHERE `ver_id` = '" . $select['version'] . "' ORDER BY `id` ASC");
while($select2 = mysql_fetch_array($select21)) {                   
printf("- %s<br/>",
$select2['text']);
}
}

Men af en eller anden grund, tager den kun de logs der ligger i ID 2 på "version" tabellen

Her er en SQL dumb
http://filer.jlaursen.dk/changelog-sql.txt
01. august 2011 - 07:52 #1
Du spørger efter de rækker i log tabellen der har en ver_id lig med en version i version tabellen.  Hvad jeg vil gætte på du vil have er ver_id lig med id i version tabellen.  Så i stedet for:

...$select21 = mysql_query("SELECT * FROM `log` WHERE `ver_id` = '" . $select['version']...

så prøv

...$select21 = mysql_query("SELECT * FROM `log` WHERE `ver_id` = '" . $select['id']...

Men du gør det meget besværlige for dig selv med de to forskellige mysql forespørgsler, hvor du i stedet kunne have brugt en enkelt join query, for eksempel således:

$select1 = mysql_query("SELECT * FROM version JOIN log ON version.id = log.ver_id");
while($select = mysql_fetch_array($select1))
printf("- %s<br/>", $select['text']);
Avatar billede PeaceDealer Nybegynder
02. august 2011 - 17:50 #2
Tak, kendte ikke til denne join funktion.
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