Avatar billede zac Nybegynder
02. januar 2003 - 12:55 Der er 3 kommentarer og
1 løsning

Data fra andre tabeller vha. af variabler fra db

Vi henter en masse tilmeldinger fra tabellen "tilmeldinger". Den indeholder et person_id og hold_id, som skal bruges til at hente personens navn og holdets navn hver sin tabel.

Det eneste der kommer er rækkerne med $tilmeldings_tidspunkt, som også bliver hentet fra tabellen tilmeldinger.

mysql_connect($mysql_server_navn,$mysql_server_bruger,$mysql_server_kode) or die("Kan ikke få forbindelse til database serveren!");
mysql_select_db($mysql_database_navn) or die("Kan ikke finde databasen!");

$result = mysql_query( "SELECT * FROM tilmeldinger");

while ($row = mysql_fetch_array($result)) {

                $id_elever                = $row["id_elever"];
                $id_hold                  = $row["id_hold"];
                $tilmeldings_tidspunkt        = $row["tilmeldings_tidspunkt"];

    $color  = $q++ % 2 ? '#666666' : '#FF6666';

echo "<tr bgcolor='$color' valign='top'>\n";

$result2 = mysql_query( "SELECT * FROM elever WHERE id_elever = '$id_elever'");

#while ($row2 = mysql_fetch_array($result2)) {
$row2 = mysql_fetch_array($result2);

                $elev_fornavn                = $row["elev_fornavn"];
                $elev_efternavn                = $row["elev_efternavn"];

echo "<td>$elev_fornavn</td>";
echo "<td>$elev_efternavn</td>";


$result3 = mysql_query( "SELECT * FROM hold WHERE id_hold = '$id_hold'");

#while ($row = mysql_fetch_array($result)) {
$row3 = mysql_fetch_array($result3);

                $hold_navn                = $row["hold_navn"];
                $id_hold                  = $row["id_hold"];

echo "<td>$hold_navn</td>";

echo "<td>$tilmeldings_tidspunkt</td>\n";

echo "</tr>\n";

}
Avatar billede Slettet bruger
02. januar 2003 - 13:04 #1
Du kan lave det hele i én forspørgsel som:

$result = mysql_query("SELECT * FROM tilmeldinger AS t, elever AS e, hold AS h WHERE e.id_elever = t.id_elever AND h.id_hold = t.id_hold") or die(mysql_error());

$q = 0;
while ($array = mysql_fetch_array($result)) {
    $color = $q++ % 2 ? '#666666' : '#FF6666';
    echo "<tr bgcolor='".$color."' valign='top'>\n";
    extract($array, EXTR_OVERWRITE);
    echo "<td>".$elev_fornavn."</td>\n";
    echo "<td>".$elev_efternavn."</td>\n";
    echo "<td>".$hold_navn."</td>\n";
    echo "<td>".$tilmeldings_tidspunkt."</td>\n";
}


Mht. til hvorfor du kun får indhold i tilmedings_tidspunkt, så check venligt dine tabeller og se, hvorvidt
de navne du referer til i din forspørgsel (eg. id_elever osv.) rent faktisk passer med dine kolonner.
Avatar billede Slettet bruger
02. januar 2003 - 13:04 #2
(Mangler lige en echo "</tr>\n"; i ovenstående løkke)
Avatar billede Slettet bruger
02. januar 2003 - 13:06 #3
Du har iøvrigt mange fejl i din egen kode, det er nok derfor, du ikke får alle dine variable hentet frem.
Avatar billede zac Nybegynder
02. januar 2003 - 16:00 #4
Mange tak - det virker! En elegant løsning - jeg har meget at lære endnu.
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