Forum: MySQL |
Thema:
Abfrage in vorhandene Tabelle speichern. |
Von:
G. Guest (
31.12.2005 10:43) |
Hallo Leute,
Ursprünglich hatte ich mehrere Tabellen und zwei ineinander verschachtelte Schleifen.
[PHP]
$jahr=2006;
// --------------------------------------------
$abfrage = "SELECT gp_von FROM kalender_".$jahr." ORDER BY gp_datum";
$result = mysql_query($abfrage,$conn);
$gp_counter = -1;
while ( $row = mysql_fetch_row($result))
{
$gp_counter = $gp_counter + 1;
$gp_von = $row[0];
$abfrage2 = "SELECT * FROM tipp_".$gp_von."_".$jahr;
$result2 = mysql_query($abfrage2,$conn);
$i = mysql_num_rows($result2);
$teilnehmer[$gp_counter] = $i;
} [/PHP]
Dann habe ich auf anraten verschiedener User alle Tabellen in eine gepackt und die Sache mit JOINs versucht:
[PHP]
SELECT t.* FROM kalender_2006 AS k
LEFT JOIN (SELECT gp_von, Count(gp_von) AS teilnehmer FROM tipp_punkte_2006
WHERE tipp = 'U' GROUP BY gp_von) AS t
USING (gp_von)
GROUP BY (k.gp_von);[/PHP]
Nun werden einige sagen ich müsse einen RIGHT JOIN statt einem LEFT JOIN verwenden, aber ich möchte dass das Array genau so gefüllt wird, also mit leeren Zellen, es soll nicht zusammengezogen werden, wie es beim RIGHT JOIN passieren würde.
Am liebsten möchte ich das Abfrage-Ergebnis in einer Tabellenspalte einer anderen Tabelle speichern, jedoch da in die richtigen Zeilen. In etwa so:
[PHP]
$jahr=2006;
// --------------------------------------------
$abfrage = "SELECT gp_von, Count(gp_von) AS tipp FROM tipp_punkte_".$jahr."
WHERE tipp = 'U' GROUP BY gp_von";
$result = mysql_query($abfrage,$conn);
$u=0;
while ($row = mysql_fetch_row($result))
{
$gp_von[$u] = $row[0];
$teilnehmer[$u] = $row[1];
$u=$u+1;
}
for($i=0; $i<mysql_num_rows($result); $i++)
{
$abfrage = "UPDATE teilnehmer_".$jahr." SET teilnehmer = '$teilnehmer[$i]'
WHERE gp_von = '$gp_von[$i]'";
$result = mysql_query($abfrage,$conn);
}
[/PHP]
Hierbei wird jedoch nur die erste Zeile abgespeichert.
Gruß Conny
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!