Avatar billede dingkee Nybegynder
21. maj 2004 - 16:56 Der er 9 kommentarer og
1 løsning

Hente fra 2 forskellige tabeller

Jeg skal hente nogle ting fra 2 forskellige tabeller i en database.

At hente fra den første tabel er ikke noget problem, men når jeg prøver på den anden giver den en fejl...

Min kode ser sådan ud:
$query = mysql_query("SELECT * FROM person WHERE titel = '$navn' ORDER BY titel");
$i = 0;
while($r = mysql_fetch_array($query)) {
$titel = $r["titel"];
$id = $r["id"];
$count++;

echo"

$navn henter den fra den anden tabel...

Nogen der kan se hvad der er galt??
Avatar billede s_friis Nybegynder
21. maj 2004 - 17:44 #1
hvorfor ikke lave join:

$query = mysql_query("SELECT p.titel, p.id FROM person p, andentabel a WHERE p.titel = a.titel AND a.titel = '$titel'");

eller noget i den stil?

hilsen sf
Avatar billede dingkee Nybegynder
21. maj 2004 - 17:48 #2
Det forstod jeg altså ikke helt hvordan jeg skulle lave...
Avatar billede s_friis Nybegynder
21. maj 2004 - 17:56 #3
må jeg se din kode - også der hvor du hiver ud af den første tabel
Avatar billede dingkee Nybegynder
21. maj 2004 - 17:59 #4
Dette er min første kode:

<?
$query = mysql_query("SELECT * FROM personer WHERE id = '$id'");
while($r = mysql_fetch_array($query)) {
$navn = $r["navn"];
$id = $r["id"];
$email = $r["email"];
}
Avatar billede dennismp Nybegynder
21. maj 2004 - 18:09 #5
Hvis der ikke er nogen sammenhæng mellem de to tabeller, så laver man to queries. Hvis der er, mangler du vist at fortælle det :)
Avatar billede dingkee Nybegynder
21. maj 2004 - 18:32 #6
Hmm... Det viste jeg ikke... Hvordan gør jeg det??

Har kun lavet php i lidt over 1 uge, så du må lige bærer over med mig... :)
Avatar billede dingkee Nybegynder
21. maj 2004 - 18:39 #7
Lige lidt mere info: Det er denne fejl jeg får:

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in vispersoner.php on line 35
Avatar billede jakoba Nybegynder
21. maj 2004 - 19:59 #8
Når du får sådan en fejlmelding står der noget meget vigtigt sidst i den:
  "in vispersoner.php on line 35"
Det betyder at fejlen er i den 35'te linie i filen 'vispersoner.php' (eller nu og da o linien før (linie nr 34). Det tror jeg gælder nu. du har glemt at afslutte php sætningen i den linie med et ; (semikolon) tegn.

Dit spørgsmål er lidt ligesom "hvordan sætter jeg min bil i bakgear?" uden af fortælle hvilket bilmærke det er, for at få brugbar hjælp med dine tabeller bliver du nødt til at vise os dem. Fx med en kopi af den "CREATE table de blev lavet med. fx:

tabelnavn: personer
felter:
    id      int(7)
    navn    char(32)
    alder    int
    ... osv hvad felter der nu er i den tabel

og det samme for den anden tabel.

mvh JakobA
Avatar billede dingkee Nybegynder
22. maj 2004 - 16:37 #9
Hej,
Her er lige min kode:

<?
$query = mysql_query("SELECT * FROM personer WHERE id = '$id'");
while($r = mysql_fetch_array($query)) {
$navn = $r["navn"];
$id = $r["id"];
$email = $r["email"];
}
if( $ud == "" )
  $bgc = "#00ff00";
else
  $bgc = "#ff0000";
echo"

<tr>
<td>



                  <font face=\"Verdana, Arial, Helvetica\" size=\"3\" color=\"#606060\"><b>$navn</b></font>
                  <img src=\"Images/gennem.gif\" width=1 height=1 alt=\"\" border=\"0\" vspace=\"6\"><br>
                  <hr size=\"1\" width=\"350\" align=\"left\" color=\"#003333\">
                  <font face=\"Verdana, Arial, Helvetica\" size=\"1\" color=\"#606060\">E-mail: <a href=\"mailto:$email\">$email</a></font>
             
</td></tr>
<tr><td>
                  <table cellpadding=\"2\" cellspacing=\"0\" border=\"0\" width=\"390\" valign=\"top\" height=\"100%\">
                    <tr>
                      <td valign=\"top\"> <font face=\"Verdana, Arial, Helvetica\" size=\"2\">
<tr><td width='30%' valign='top'><font face=\"Verdana, Arial, Helvetica\" size=\"2\">

$laner = mysql_query("SELECT * FROM joke_jokes WHERE laner = "$navn" ORDER BY titel");
$i = 0;
while($r = mysql_fetch_array($laner)) {
$titel = $r["titel"];
$id = $r["id"];
$joker = $r["joker"];
$nummer = $r["nummer"];
$ud = $r["ud"];
$laner = $r["laner"];
$count++;

echo"
     
        <td width=\"60%\"><center><a href=\"vis.php?id=$id\"><br>$titel</a><br>Låner: $laner</center></td>
        <td width=\"40%\">&nbsp;</td>
     
";
  $i++;
  if ($i%4 == 0) echo "</td></tr><tr><td>&nbsp;</td></tr> <tr><td>";

}

Så lister jeg lige mine tabeller:

Personer:
id    int(6)
navn  varchar(50)
email varchar(200)

Joke-jokes:
id    int(6)
laner text
titel varchar(200)

Håber det hjælper lidt...
Avatar billede dingkee Nybegynder
14. december 2004 - 09:49 #10
Aldrig nogen løsning :(

Lukker
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