25. oktober 2005 - 21:41Der er
16 kommentarer og 1 løsning
Sammenhæng mellem to tabeller, query inden i hinanden
Vil gerne have to tabeller, kapitler og artikler, til at hænge sammen i visning af titler. KapitelId felt i begge, fremmednøgle i artikler. Vil have Kap 1 - Art 11 Art 12 Art 13 Kap 2 - Art 21 Art 22 Kap 3 - Art 31
// ydre query, skal fange kapitel titler $result1 = mysql_query( "SELECT k.kapitelId, k.kapTitel FROM kapitler AS k" ); while ($row = mysql_fetch_array($result1)) { $kapitelId = $row["kapitelId"]; $kapTitel = $row["kapTitel"]; echo $kapTitel . "<br>"; //så langt så godt, lister kapitel titler
$array = array($kapitelId); foreach ($array as $value) //vil have kapitel id til valg af artikler – og når indholdet i {} nedenfor slås fra og erstattes med echo $value vises dette id faktisk, men som det kommer nu vises intet: { // indre query, skal fange de enkelte kapitlers artikler $result2 = mysql_query( "SELECT a.artikelId, a.artTitel FROM artikler AS a WHERE a.artikelId = $value" );
Almen bemærkning: Jeg har ikke kunnet finde ud af at skrive spm. med indrykninger, tab forsvinder, når man kopierer teksten ind, er der noget at gøre ved det?
Den strategi, to x while, har jeg også prøvet, men den går ned.
Når man slår $result2 fra, dvs. denne her indskudt $result2/while:
$result2 = mysql_query( "SELECT a.artikelId, a.artTitel FROM artikler AS a WHERE a.kapitelId = \"$kapitelId\"" ); while($row2 = mysql_fetch_array($result2) { $artTitel = $row2["artTitel"]; echo $artTitel . "<br>"; } - så den her er alene: $result1 = mysql_query( "SELECT k.kapitelId, k.kapTitel FROM kapitler AS k" ); while ($row = mysql_fetch_array($result1)) { $kapitelId = $row["kapitelId"]; $kapTitel = $row["kapTitel"]; echo $kapTitel . "<br>"; //så langt så godt, lister kapitel titler //$result2 taget ud... } - så kommer kapitel titlerne fint igennem.
Hm, kan ikke se, det skulle gøre nogen forskel - det gør i hvert fald ingen forskel, statig død side.
En anden strategi kunne måske være subquery i en from clause (jf. http://dev.mysql.com/doc/refman/5.0/en/unnamed-views.html) - men jeg kan ikke gennemskue det. Så skulle der vælges fra både kapitler og artikler fra begyndelsen...
tak mahler, det var måske alligevel det med at skelne mellem result1 og 2 og row1 og 2, som gav gennembruddet
Synes godt om
Ny brugerNybegynder
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.