join funtion fehler

latinum_1982

Erfahrenes Mitglied
Hallo ich mach für unseren auto club die homepage und wollt für die eingelogten mitlieder einigen machen aber das mit der join funtion bringt ich bin zusammen das ich die daten von zwei tabellen auslesen kann

PHP:
$SQL_statement="SELECT * FROM users INNER JOIN archiv ON user_id = id
ORDER BY datum DESC;"; or die(mysql_error());
$resultset=mysql_query($SQL_statement);
while($data=mysql_fetch_array($resultset)) {
echo $data['mitgliedseit']. "<br>"; 
echo $data['auto']. "<br>"; 
echo $data['ort']. "<br>"; 
echo $data['handy']. "<br>"; 
}

die funktionn sollt er machen von der tabelle archiv die datensetze anzeigen die mitn user_id zusammen passen :(
ich tüftle schon einige zeit dahin aber ich brings nicht zusammen ...
 
probiers mal so:
PHP:
$SQL_statement="SELECT * FROM users INNER JOIN archiv ON archiv.user_id = users.id
ORDER BY datum DESC;"; or die(mysql_error());
$resultset=mysql_query($SQL_statement);
while($data=mysql_fetch_array($resultset)) {
echo $data['mitgliedseit']. "<br>"; 
echo $data['auto']. "<br>"; 
echo $data['ort']. "<br>"; 
echo $data['handy']. "<br>"; 
}
 
Du hast das vergessen(Bin davon ausgegangen, das dass schon gemacht wurde.):
PHP:
mysql_connect("localhost","BENUTZER","PASSWORT");
mysql_select_db("TABELLE");
Und nochmal komplett:
PHP:
mysql_connect("localhost","BENUTZER","PASSWORT");
mysql_select_db("TABELLE");
$SQL_statement="SELECT * FROM users INNER JOIN archiv ON archiv.user_id = users.id
ORDER BY datum DESC;" or die(mysql_error());
$resultset=mysql_query($SQL_statement);
while($data=mysql_fetch_array($resultset)) {
echo $data['mitgliedseit']. "<br>"; 
echo $data['auto']. "<br>"; 
echo $data['ort']. "<br>"; 
echo $data['handy']. "<br>"; 
}

Getestet und läuft einwandfrei.
 
CREATE TABLE `users` (
`id` bigint(20) NOT NULL auto_increment,
`md5_id` varchar(200) collate latin1_general_ci NOT NULL default '',
`full_name` tinytext collate latin1_general_ci NOT NULL,
`user_name` varchar(200) collate latin1_general_ci NOT NULL default '',
`user_email` varchar(220) collate latin1_general_ci NOT NULL default '',
`user_level` tinyint(4) NOT NULL default '1',
`pwd` varchar(220) collate latin1_general_ci NOT NULL default '',
`address` text collate latin1_general_ci NOT NULL,
`country` varchar(200) collate latin1_general_ci NOT NULL default '',
`tel` varchar(200) collate latin1_general_ci NOT NULL default '',
`fax` varchar(200) collate latin1_general_ci NOT NULL default '',
`website` text collate latin1_general_ci NOT NULL,
`date` date NOT NULL default '0000-00-00',
`users_ip` varchar(200) collate latin1_general_ci NOT NULL default '',
`approved` int(1) NOT NULL default '0',
`activation_code` int(10) NOT NULL default '0',
`banned` int(1) NOT NULL default '0',
`ckey` varchar(220) collate latin1_general_ci NOT NULL default '',
`ctime` varchar(220) collate latin1_general_ci NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY `user_email` (`user_email`),
FULLTEXT KEY `idx_search` (`full_name`,`address`,`user_email`,`user_name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=55 ;

und

CREATE TABLE `archiv` (
`id` bigint(20) NOT NULL auto_increment,
`user_id` varchar(200) collate latin1_general_ci NOT NULL default '',
`mitgliedsnummer` varchar(200) collate latin1_general_ci NOT NULL default '',
`beitrittdatum` varchar(200) collate latin1_general_ci NOT NULL default '',
`info` varchar(220) collate latin1_general_ci NOT NULL default '',
`auto` varchar(220) collate latin1_general_ci NOT NULL default '',
`ort` varchar(220) collate latin1_general_ci NOT NULL default '',
`download` varchar(200) collate latin1_general_ci NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=55 ;
 
Was soll diese Zeile Code für einen Sinn machen?

PHP:
$SQL_statement="SELECT * FROM users INNER JOIN archiv ON archiv.user_id = users.id
ORDER BY datum DESC;" or die(mysql_error());

Eine String-Zuweisung wird wohl keinen MySQL-Fehler provozieren oder? Sollte es stattdessen nicht besser so aussehen:

PHP:
$SQL_statement="SELECT * FROM users INNER JOIN archiv ON archiv.user_id = users.id
ORDER BY datum DESC;";
$resultset=mysql_query($SQL_statement) or die(mysql_error());

Dann sieht man wenigsten auch den tatsächlichen SQL-Fehler ;-)
 
Column 'id' in on clause is ambiguous jetzt kommt das raus.... ich bin kurz davon das ich das ganze aufgeb.. ich sitzt schon seid gestern auf denn sch****

ja jetzt zeigt er mir schon was an aber so schauts aus
ich hab zum test in und denn archiv 2 daten angelegt einmal mit user_id 1 und mit 56
er sollte mit nur 1 anzeiden dann ich hab ja die user_id 1 ..... das ist mein problem :(
 
Zurück