FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Medlem
|
Ger upp, gett google en bra stund men vet inte om jag söker efter rätt ord.
Har 2 tabeller i min databas med medlemmar, i den ena ligger grunduppgifterna och i den andra lite övrig information. Jag har en PHP kod som hämtar info från databasen och skapar en tabell för utskrift, men lyckas inte komplettera så infon från bägge blir rätt. Så här är tanken att det ska se ut: http://213.115.231.40/~vastgota/register.php Fast i rätt ordning: 1 [email protected] Kaj Kajsasson Helenegatan 5a 11731 Stockholm 12345 67890745 2222 [email protected] Arne Anka Ankvägen 13 13133 Ankeborg 0513-40000 070-3456709 Koden ser ut så här: ___________ <?php echo "<h2>Lista över kunder</h2>"; // ansluter till databasen $opendb = mysql_connect("localhost", "user", "pass") or die(mysql_error()); mysql_select_db("db") or die(mysql_error()); // hämtar information från den angivna tabellen $result = mysql_query("SELECT * FROM user_accounts as one, user_details as two") or die(mysql_error()); // HTML-tabellens formatering - tabellstart echo "<table border='1' bordercolor='#cccccc' cellspacing='0' cellpadding='3'>"; echo "<tr bgcolor='#cccccc'><td>Kundnr</td> <td>E-post</td><td>Namn</td><td>Adress</td><td>Postnummer</td><td>Ort</td><td>Telefon</td><td>Mobil</td></tr>"; // hämtar resultatrader från tabellen while($row = mysql_fetch_array( $result )) { // skriver ut innehållet i raderna till HTML-tabellen echo "<tr><td>"; echo $row['id']; echo "</td><td>"; echo $row['mail']; echo "</td><td>"; echo $row['name']; echo "</td><td>"; echo $row['address']; echo "</td><td>"; echo $row['postalno']; echo "</td><td>"; echo $row['postaladdress']; echo "</td><td>"; echo $row['telephone']; echo "</td><td>"; echo $row['cellphone']; echo "</td></tr>"; } // HTML-tabellens formatering - tabellslut echo "</table>"; // stänger databasen mysql_close($opendb); ?> _______________ Kundnr(id) finns i bägge tabellerna, I user_account finns id + e-post, övrigt ligger i user_details. Känns som jag gör en väldigt lätt fråga onödigt svår ;-) |
||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Medlem
|
$result = mysql_query("SELECT * FROM user_accounts as one, user_details as two ORDER by id DESC") or die(mysql_error());
*verkar som jag förstod frågan fel...* |
|||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Medlem
|
testa:
$result = mysql_query("SELECT one.id, one.mail, two.name, two.address, two.postalno, two.postaladdress, two.telephone, two.cellphone FROM user_accounts as one, user_details as two where one.id=two.id order by one.id") or die(mysql_error()); |
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Medlem
|
Citat:
|
||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Har WN som tidsfördriv
|
I user_details har du någon kolumn som heter id där? eller vad är det som ska koppla dem samman?
|
|||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Medlem
|
Denna borde fungera:
SELECT one.*,two.* FROM user_accounts AS one INNER JOIN user_details AS two ON one.id=two.id Du kan även sätta in en WHERE-sats efter JOIN-satsen, t.ex så här: SELECT one.*,two.* FROM user_accounts AS one INNER JOIN user_details AS two ON one.id=two.id WHERE one.id > 20 Tänk bara på en sak: Om du använder ovanstående SELECT-sats så hämtas samtliga kolumner från båda tabellerna. Detta innebär att om både user_accounts och user_details har en kolumn som heter "epost" så kommer endast en av dessa att hämtas (jag tror att det är user_details version som gäller eftersom INNER JOIN skriver över dubletter i den andra tabellen). Jag brukade snegla på IDG's artiklar när en JOIN-sats gick snett förut: http://iwtjanster.idg.se/webbstudio/...ikel.asp?id=75 http://iwtjanster.idg.se/webbstudio/...ikel.asp?id=76 http://iwtjanster.idg.se/webbstudio/...kel.asp?id=230 http://iwtjanster.idg.se/webbstudio/...kel.asp?id=232 Hoppas det löser sig! |
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Flitig postare
|
Låter väl som en vanligt left join, förutsatt att du har vettiga nycklar i båda tabellerna.
select * from user_accounts left join user_details on one.id = two.id where ... order by ... eller använd någon annan join beroende på om du vill visa användare som inte har någon post i user_details eller inte. |
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Medlem
|
Jätte tack för hjälpen, om nån annan har liknade bekymmer så gjorde denna susen:
SELECT one.*,two.* FROM com_module_user_accounts AS one INNER JOIN com_module_user_account_details AS two ON one.id=two.user WHERE one.id |
||
![]() |
![]() |
Svara |
|
|