Seite 1 von 1
MY SQL Tabellenverknüpfung zb per Joint
Verfasst: 15.12.2005, 21:45
von jaap
Hallo,
Der untere Code vergleicht Tage und Monat der jeweiligen anznummer mit den heutigen Tag und Monat stimmt Tag und Monat mit den heutigen Tag und Monat überein wird die jeweilige anznummer per echo ganz unten ausgegeben.
Problem ist aber das dann die jeweilige anznummer nur die id als Zahlen lierfert der Spitzname ist leider nicht in der Tabelle Geburtsdatum vorhanden sondern liegt in der Tabelle Userdaten.
Meine Frage ist jetzt wie codet man den unten folgenden Code so das die anzunummer dessen Bedingung zutrifft verkünpft wird wird mit der Tabelle Userdaten und dort dann den Spitznamen ausgeben kann?
Wohl gemerkt in der Tabelle Userdaten sind die Spalten anznummer und Spitzname vorhanden...
Am besten kann man das mit einen Joint machen ich kriege es aber leider nicht hin
Code: Alles auswählen
<?
$query = "Select anznummer,tag,monat,jahr from Geburtsdatum where monat = MONTH( NOW() ) AND tag = DAYOFMONTH( NOW())";
$result=mysql_db_query($dbname,$query,$conn) or die (mysql_error());
while($date=mysql_fetch_array($result))
{
$anznummer2=$date[0];
$spitzname2=$date[1];
echo '<option value="'.$anznummer2.'" style="background-color:#F6FBFc; color:#0420AE;">'.$spitzname2.'</option>';
}
mysql_free_result($result);
?>
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
MY SQL Tabellenverknüpfung zb per Joint
Verfasst: 15.12.2005, 21:57
von Southmedia
Code: Alles auswählen
SELECT Geburtsdatum.anznummer,Geburtsdatum.tag,Geburtsdatum.monat,Geburtsdatum.jahr, Userdaten.anznummer, Userdaten.Spitzname FROM Geburtsdatum, Userdaten WHERE Geburtsdatum.anznummer = Userdaten.anznummer AND Geburtsdatum.monat = MONTH( NOW() ) AND Geburtsdatum.tag = DAYOFMONTH( NOW())
Das sollte hinhaun. Ist ein EQUAL JOIN, zu jeder anznummer sollte ja nur ein Spitzname vorliegen, dann passt das.
Verfasst: 15.12.2005, 21:58
von HW
Hallo jaap,
die beiden Tabellen müssen ja ein gemeinsames Datenfeld haben, womit diese in Beziehung stehen. Diese kannst Du bei deiner Anfrage als Join ausbilden oder einfach als Where-Klausel anlegen.
Was ich nicht verstehe ist, wieso es für Geburtsdatum eine eigene Tabelle gibt.
Die Einzelnen Felder Tab Monat usw. lassen sich doch auch aus einem Datum extrahieren.
Im Web und auf de My-SQL Seite gibt es dazu genügend Beispiele.
Beispiel Select a.Spalte1 a.Spalte2 b.Spalte1 From tabelle1 as a, tabelle2 as b Where a.Beziehungsfeld = b.Beziehungspalte
MY SQL Tabellenverknüpfung zb per Joint
Verfasst: 15.12.2005, 22:00
von Christophe
Code: Alles auswählen
SELECT spitzname, ... FROM geburtsdatum AS g1 INNER JOIN userdaten AS u1 ON g1.id = u1.id WHERE ...
MY SQL Tabellenverknüpfung zb per Joint
Verfasst: 15.12.2005, 22:00
von Southmedia
Ich war schneller, wenn auch ohne die Aliase

Re: MY SQL Tabellenverknüpfung zb per Joint
Verfasst: 15.12.2005, 22:43
von jaap
Southmedia hat geschrieben:Code: Alles auswählen
SELECT Geburtsdatum.anznummer,Geburtsdatum.tag,Geburtsdatum.monat,Geburtsdatum.jahr, Userdaten.anznummer, Userdaten.Spitzname FROM Geburtsdatum, Userdaten WHERE Geburtsdatum.anznummer = Userdaten.anznummer AND Geburtsdatum.monat = MONTH( NOW() ) AND Geburtsdatum.tag = DAYOFMONTH( NOW())
Das sollte hinhaun. Ist ein EQUAL JOIN, zu jeder anznummer sollte ja nur ein Spitzname vorliegen, dann passt das.
Danke für die schnellen Antworten habe gerade eingebaut leider kommt in der Ausgabe die zahl 15 jetzt vor statt der Spitzname ...
Nur nocheinmal zu Erinnerung der Spitzname liegt in der Tabelle Userdaten die Tabelle Userdaten verfügt natürlich ebenfalls wie die Tabelle Geburtsdatum über alle anznummer aller Mitglieder nur leider nicht eben die spalte Spitznamen.
Ich denke mal der Joint ist perfekt gecodet

liegt es an der Echoausgabe oder und an der Date defination?
Also müssten hier die werte anders gesetzt werden?
Code: Alles auswählen
$anznummer2=$date[0];
$spitzname2=$date[1];
echo '<option value="'.$anznummer2.'" style="background-color:#F6FBFc;color:#0420AE;">'.$spitzname2.'</option>';
Die Rechenaufgabe muss doch gelöst werden bei sovielen Profis hier in einen der besten Foren für Webmaster

MY SQL Tabellenverknüpfung zb per Joint
Verfasst: 15.12.2005, 22:46
von Southmedia
Ja, müssten sie.
Lass dir das Array $date ausgeben (print_r), dann kannst du ja nachschaun wo die gesuchten Daten drin sind. Generell solltest du es aber über $date['Userdaten.Spitzname'] bekommen...
MY SQL Tabellenverknüpfung zb per Joint
Verfasst: 15.12.2005, 23:03
von jaap
ich erhalte jetzt folgende Fehlermeldung:
Parse error: parse error, unexpected '=' in
wenn ich diesen Code für die Ausgabe verwende:
$Geburtsdatum.anznummer2=$date[0];
$Userdaten.Spitzname2=$date[1];
echo '<option value="'.$Geburtsdatum.anznummer2.'" style="background-color:#F6FBFc; color:#0420AE;">'.$Userdaten.Spitzname2.'</option>';
hmm was könnte ich hier flasch gemacht haben?

MY SQL Tabellenverknüpfung zb per Joint
Verfasst: 16.12.2005, 00:08
von jaap
keine Chance habe alles probiert kann mir jemand eine Lösung anbieten wie der unten folgende Code aussehen muss?
$Geburtsdatum.anznummer2=$date[0];
$Userdaten.Spitzname2=$date[1];
echo '<option value="'.$Geburtsdatum.anznummer2.'" style="background-color:#F6FBFc; color:#0420AE;">'.$Userdaten.Spitzname2.'</option>';
MY SQL Tabellenverknüpfung zb per Joint
Verfasst: 16.12.2005, 08:41
von magadoo
hmm was könnte ich hier flasch gemacht haben?
Ich glaube so geht das nicht:
Am besten kann man das mit einen Joint machen
Nein, du solltest in deiner Variablendeklaration mal den Punkt weglassen.
MY SQL Tabellenverknüpfung zb per Joint
Verfasst: 16.12.2005, 08:53
von tobsn
das mit dem equal join hatte ich dir in deinem anderen posting schonmal erklärt.
lies halt dann was man dir schreibt.
ich find das gar nich witzig.

Verfasst: 16.12.2005, 09:41
von marc75
Code: Alles auswählen
$sql = mysql_query("SELECT
t2.anznummer,
t2.spitzname
FROM Geburtsdatum as t1
INNER JOIN Userdaten as t2
ON t1.anznummer = t2.anznummer
AND t1.monat = MONTH( NOW() )
AND t1.tag = DAYOFMONTH( NOW())") or die (mysql_error());
while($row=mysql_fetch_assoc($sql)){
echo '<option value="'.$row['anznummer'].'" style="background-color:#F6FBFc; color:#0420AE;">'.$row['spitzname'].'</option>';
}
mysql_free_result($sql);
macht 10 Euro in die Trinkgeldkasse
MY SQL Tabellenverknüpfung zb per Joint
Verfasst: 16.12.2005, 09:44
von tobsn
... *gähn*
MY SQL Tabellenverknüpfung zb per Joint
Verfasst: 16.12.2005, 10:15
von Airport1
> MY SQL Tabellenverknüpfung zb per Joint
LOL

per Joint.. hoffentlich nicht gestreckt

MY SQL Tabellenverknüpfung zb per Joint
Verfasst: 16.12.2005, 15:25
von Nullpointer
@tobsn verzeih ihm, nach so vielen joints ist er total breit
