INSERT mit SELECT

Nord-Süd-Richtung

Erfahrenes Mitglied
Hi Com!,

ich habe zwei Tabellen. Die zweite soll alle 45min (ohne Cron!) mit den Informationen aus der ersten Tabelle geupdatet werden. Dazu nutze ich:
PHP:
function update_punkte(){
  $last = mysql_query("SELECT * FROM Punkte2 WHERE lastupdate < ".time());
  if( mysql_numrows($last) > 0 ){
    $min = 60*60*45+time();
    mysql_query("TRUNCATE TABLE Punkte2");
    mysql_query("INSERT INTO Punkte2 (Name, spieler_id, p_ges, p_geb, p_for, p_sch) VALUES(SELECT * FROM Punkte) ") or die(mysql_error());
    mysql_query("UPDATE Punkte2 SET lastupdate = ".$min);
  }
}

Es wird allerdings ein Syntaxfehler bei SELECT * FROM Punkte gemeldet. Ich weiß aber nicht was falsch ist.
Bitte um Hilfe
mfg
Nord
 
Zuletzt bearbeitet:
Hiho,

wenn ich mich nicht ganz irre unterstützt PHP keine Subqueries (also Abfrage in Abfrage).

Lg
 
Zuletzt bearbeitet:
Hi

da irrst du dich. Ich verumute, dass es nur funktioniert, wenn der Subquery genau 1 Ergebnis liefert. Weil es in einer anderen Art und Weise (wo nur ein Result zurückgegeben wird) funktioniert.
 
Hi

ich habe die Lösung gefunden. Values durfte dort nicht stehen:
PHP:
 mysql_query("INSERT INTO Punkte2 (Name, spieler_id, p_ges, p_geb, p_for, p_sch)  SELECT * FROM Punkte ");
Danke trotzdem :)
 
Zurück