Problem bzgl. mysql_query
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
ausgegeben bekommen
bekommen
beschreiben
code
eingetragen bekommen
eintragen
ergebnis
fehler
inhalt
problemlos eintragen
spalte
spalten
spiel
tabelle
teil
trainer
url
verein
versuchen
-
Hallo,
ich versuche aus der MySQL Datenbank zuerst die Tabelle gefaehrdete_trainer zu löschen
und versuche anschließend sie wieder mit den Ergebnissen von$leeren = mysql_query ("TRUNCATE TABLE gefaehrdete_trainer") OR die("Error: $leeren <br>".mysql_error());
$result = mysql_query("(SELECT Trainer, Verein, Spiele FROM tabelle_de1 INNER JOIN phpfusion_users ON ( tabelle_de1.Trainer = phpfusion_users.user_name) WHERE tabelle_de1.Spiele < ".$mindestspiele_liga." AND phpfusion_users.user_urlaub =0) UNION (SELECT Trainer, Verein, Spiele FROM tabelle_gb1 INNER JOIN phpfusion_users ON ( tabelle_gb1.Trainer = phpfusion_users.user_name) WHERE tabelle_gb1.Spiele < ".$mindestspiele_liga." AND phpfusion_users.user_urlaub =0)")
zu befüllen, wenn ich den Query in MySQL eingebe funktioniert auch alles. Aber im nächsten Schritt wirds nichts eingetragen.
while ($row = mysql_fetch_object($result)): $Spiele = $mindestspiele_liga - $row->Spiele; $abfrage = mysql_query ("INSERT INTO gefaehrdete_trainer (Trainer, Verein, FehlendeSpiele) VALUES (".$row->Trainer.", ".$row->Verein.", ".$Spiele.") "); endwhile;
Habe versucht mit var_dump den Fehler zu finden und bekam folgendes:
resource(82) of type (mysql result)
Die Spalten genauer zu beschreiben, also statt Trainer z.B. tabelle_de1.Trainer, habe ich auch versucht. Allerdings kann ich es dann ja nur für Ergebnisse aus der Tabelle tabelle_de1 benutzen, ich möchte aber die Ergebnisse beider Tabellen (tabelle_de1 und tabelle_gb1) in eine andere Tabelle eingetragen bekommen.
Beitrag zuletzt geändert: 31.7.2012 16:10:50 von fifa-society -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also wenn ich mir dein INSERT-Statement ansehe fällt mir auf, dass du die
vergessen hast... das sollte wohl so aussehen:'
while ($row = mysql_fetch_object($result)) { $Spiele = $mindestspiele_liga - $row->Spiele; $abfrage = mysql_query("INSERT INTO gefaehrdete_trainer (Trainer, Verein, FehlendeSpiele) VALUES ('{$row->Trainer}', '{$row->Verein}', '$Spiele')"); }
Dabei könntest du auch noch prüfen ob beim Eintragen ein Fehler aufgetreten ist... -
Gib doch mal mit
aus was in der Variablen $row steht, eventuell hilft dir das den Fehler zu finden...print_r($row);
-
Ich bekomme gar nichts ausgegeben :/ Weiß aber mittlerweile, dass es wegen dem INNER JOIN nicht funktioniert. Lasse ich den Teil weg kann ich alles problemlos eintragen.
Nur wie kann ich es mit dem INNER JOIN eintragen lassen? Bzw. ist das INNER JOIN überhaupt richtig gelöst? Ich will alle Trainer ausgegeben bekommen, die weniegr als §mindestspiele_liga haben und von denen anschließend nur die bekommen, bei denen in der Tabelle phpfusion_users in der Spalte user_urlaub eine 0 steht. Der Inhalt der Spalten Trainer und user_name ist der username.
Beitrag zuletzt geändert: 31.7.2012 21:29:12 von fifa-society -
fifa-society schrieb:
Nur wie kann ich es mit dem INNER JOIN eintragen lassen? Bzw. ist das INNER JOIN überhaupt richtig gelöst? Ich will alle Trainer ausgegeben bekommen, die weniegr als §mindestspiele_liga haben und von denen anschließend nur die bekommen, bei denen in der Tabelle phpfusion_users in der Spalte user_urlaub eine 0 steht. Der Inhalt der Spalten Trainer und user_name ist der username.
Mal kurz für die Übersicht:
Du willst die Trainer mit:
- weniger als §mindestspiele_liga
- user_urlaub == 0
Dein SQL sieht ja schonmal nicht schlecht aus:
SELECT Trainer, Verein, Spiele
FROM tabelle_de1
INNER JOIN phpfusion_users ON ( tabelle_de1.Trainer = phpfusion_users.user_name)
WHERE tabelle_de1.Spiele < ".$mindestspiele_liga."
AND phpfusion_users.user_urlaub =0
Probiere mal beim INNER JOIN ein LIKE aus.
Haben die Tabellen den gleichen Zeichensatz?
Ist der Username wirklich gleich bzw. hat überhaupt ein Spieler die Voraussetzungen für die Abfrage?
Ohne die Tabelle zu sehen kann es an einigen Stellen haken.
Generell würde ich dir empfehlen die Feldnamen generell klein zu schreiben und diese auch zu escapen: `phpfusion_users`.`user_name` -
Danke :) Mit dem LIKE hat es funktioniert.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage