Ich habe eine neue Tabelle erstellt, die die wichtigsten Daten der Nutzer zusammenfasst.
1. uid
2. name
3. mail
4. Anrede
5. Vorname
6. Nachname
7. Strasse Nr.
6. Postleitzahl
7. Ort
8. Telefon
usw.
Die ersten drei sind kein Problem die stehen einzeln in der Tabelle users. Alle Inhalte die danach kommen stehen in der Tabelle profile_values in der Spalte value und sind über die ID's uid und fid verknüpft.
Nun habe ich mir folgenden Code ausgedacht:
PHP-Code:
mysql_query("REPLACE INTO userlist (uid, name, mail, Anrede) SELECT a.uid, a.name, a.mail, b.value FROM users as a JOIN profile_values as b where a.uid=b.uid and b.fid=4;" ,$db);
So bekomme ich den Wert aus der Tabelle profile_values der der fid4 entspricht und die ersten drei Werte aus der Tabelle users.
Und ab da habe ich dann ein Problem ich komme einfach nicht an die anderen Daten in der Spalte value um sie an der richtigen Stelle in die neue Tabelle zu übernehmen.
Verlängere ich den Code z.B. um eine Vergleichsklausel wie and oder or kommt nur noch Müll in der neuen Tabelle an. Was ja auch verständlich ist. Schreibe ich aber in das Skript eine weitere Abfrage z.B.
PHP-Code:
mysql_query("REPLACE INTO userlist (Vorname) SELECT value FROM profile_values where users.uid=profile_values.uid and profile_values.fid=5;" ,$db);
Kommen in der neuen Tabelle zwar die Werte an aber nicht in den selben Zeilen sondern genau um die Anzahl der user versetzt.
Ich habe bestimmt nur irgend einen dummen Anfängerfehler in meiner Denkweise.
Danke im Voraus
jirweb