Kom ihåg mig?
Home Menu

Menu


Hämta från 2 tabeller i mysql

Ämnesverktyg Visningsalternativ
Oläst 2009-05-04, 17:59 #1
KUB KUB är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 279
KUB KUB är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 279
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 ;-)
KUB är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-04, 18:11 #2
cortexs avatar
cortex cortex är inte uppkopplad
Medlem
 
Reg.datum: Feb 2009
Inlägg: 147
cortex cortex är inte uppkopplad
Medlem
cortexs avatar
 
Reg.datum: Feb 2009
Inlägg: 147
$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...*
cortex är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-04, 18:12 #3
macwiz macwiz är inte uppkopplad
Medlem
 
Reg.datum: Sep 2008
Inlägg: 55
macwiz macwiz är inte uppkopplad
Medlem
 
Reg.datum: Sep 2008
Inlägg: 55
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());
macwiz är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-04, 22:13 #4
KUB KUB är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 279
KUB KUB är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 279
Citat:
Originally posted by macwiz@May 4 2009, 18:12
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());

Unknown column 'two.id' in 'where clause'
KUB är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-04, 22:22 #5
Lundmarks avatar
Lundmark Lundmark är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 026
Lundmark Lundmark är inte uppkopplad
Har WN som tidsfördriv
Lundmarks avatar
 
Reg.datum: Jan 2004
Inlägg: 1 026
I user_details har du någon kolumn som heter id där? eller vad är det som ska koppla dem samman?
Lundmark är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-04, 22:32 #6
objx objx är inte uppkopplad
Medlem
 
Reg.datum: Mar 2008
Inlägg: 154
objx objx är inte uppkopplad
Medlem
 
Reg.datum: Mar 2008
Inlägg: 154
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!
objx är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-05, 10:25 #7
Perben Perben är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2009
Inlägg: 393
Perben Perben är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2009
Inlägg: 393
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.
Perben är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-05, 10:40 #8
KUB KUB är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 279
KUB KUB är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 279
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
KUB är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 00:48.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017