Fehler im Code - wo?

piano

Mitglied
Hallo nochmal, (entschuldigung wegen den vielen Themen, aber ich bin noch Anfänger und oft ziemlich ratlos ;) :()

Also mir wird ausgegeben, dass in der Zeile

<?php
@mysql_connect(xxx) or die("Verbindung zu MYSQL gescheitert!");
@mysql_select_db("table") or die("Datenbankzugriff gescheitert!");
$res = mysql_query("SELECT * FROM fruehling UNION SELECT * FROM sommer UNION SELECT * FROM herbst SELECT * FROM winter SELECT * FROM immer");
$zeilen = mysql_num_rows($res);
echo "Insgesamt gibt es $zeilen Einträge.";

mysql_close();
?>

ein Fehler existiert. Jedoch nutze ich diesen Code (im groben) auch noch ein weiteres mal und da funktioniert er problemlos...
Ich hab jetzt schon viel probiert, aber irgendwie wird das nichts :(
Vielleicht könnte mir jmd den Fehler sagen?...
 
Entschuldige, aber das Query ist grausam und wird niemals so funktionieren.

SQL:
SELECT *
FROM winter, sommer, fruehling, herbst, immer

Sollte eher funktionieren.
 
danke :) mmmh...is wirklich ziemlich doof, bin nur iwie auf Union gestoßen und hab dann nich mehr über was leichteres nachgedacht oO

----

hab jetzt aber das Problem, dass er sagt, dass es 90 Einträge gibt...sind nicht mal 20.... gibt man einen neuen Eintrag ein, sind es gleich 120 Einträge
 
Zuletzt bearbeitet:
Code:
SELECT
        (SELECT COUNT(*) FROM `fruehling`) + (SELECT COUNT(*) FROM `sommer`) + (SELECT COUNT(*) FROM `herbst`) + (SELECT COUNT(*) FROM `winter`)
 
Das ist die gesuchte Datenbankabfrage, mit der sämtliche in den drei Tabellen enthaltenen Datensätze gezählt werden.
 
also muss mein Code so aussehen?
<?php
@mysql_connect(xxx) or die("Verbindung zu MYSQL gescheitert!");
@mysql_select_db("table") or die("Datenbankzugriff gescheitert!");
$res = mysql_query("(SELECT COUNT(*) FROM `fruehling`) + (SELECT COUNT(*) FROM `sommer`) + (SELECT COUNT(*) FROM `herbst`) + (SELECT COUNT(*) FROM `winter`)");
$zeilen = mysql_num_rows($res);
echo "Insgesamt gibt es $zeilen Einträge.";

mysql_close();
?>

...:confused:
 
Hi

Nein, wenn du mit mysql_num_rows weiter arbeiten willst, nutzt du das falsche Statement.
Das von Gumbo gepostete Statemente gibt dir schon dir anzahl der Einträge in den Tabellen zurück. Der richtige Wert sollte also schon in $res stehen.
hab jetzt aber das Problem, dass er sagt, dass es 90 Einträge gibt...sind nicht mal 20.... gibt man einen neuen Eintrag ein, sind es gleich 120 Einträge
Das liegt daran, dass beim Statement von Felix ein Kreuzprodukte entsteht. Jeder Eintrag wird mit jeder Tabelle multipliziert.
Um die Funktion mysql_num_row zu nutzen, warst du mit UNION schon den richtigen Weg gegangen. jedoch hättest du zwischen jedes SELECT ein UNION schreiben müssen.
etwa so:
SQL:
SELECT * FROM fruehling UNION 
SELECT * FROM sommer UNION 
SELECT * FROM herbst UNION
SELECT * FROM winter UNION
SELECT * FROM immer
Ich rate dir, die Querys vorher in phpMyAdmin oder ähnlichem auszuprobieren, dass du siehst, was raus kommt. dass macht die Fehlersuche dann erheblich einfacher, da du dann z.B. ausschließen kannst, dass der Query falsch ist ;)
 
Zurück