Frage zu Abfrage ohne Ergebnis
lachesis
- php
Hallo zusammen,
ich setze folgende Query mehrmals, dh vom aktuellem Monat rückwärts bis zum Januar des aktuellen Jahres ab. Zwischen zwei Abfragen verarbeite ich die vorhergehenden Ergebnisse.
$select = "SELECT stunden.id, sum(stunden), datum , pid,pnr, pname,kart ";
$from = " FROM stunden, projektnr,user";
$where = " WHERE stunden.id > 0 and pid=projektnr.id and year(datum)=$jahr and uid=user.id and pruef=1 and gebucht=0 and gedeckt=1";
$sort = " ORDER by pnr";
$group = " GROUP by pnr";
$where_add = " AND month(datum)=$aktmonat";
$allestunden = mysql_query($select . $from . $where . $where_add . $group . $sort);
Jetzt möchte ich die Verarbeitung überspringen, dh. keine Ausgabe generieren, wenn die Abfrage kein Ergebnis für den betreffenden Monat ergibt.
Zur Fehlerüberprüfung verwende ich:
if (!$allestunden) {
echo("<p>Fehler bei der Suche nach dem Eintrag in der Datenbank!<br />Fehler: " . mysql_error() . "</p>");
exit();
}
Da dies nicht "anspringt" existiert $allestunden ja, aber welchen Wert hat diese Variable?
Wie kann ich das überprüfen?
if ($allestunden=="")...
funktioniert nicht...
... sollte es mal funktionieren wie "überspringe" ich den aktuellen Monat dann?
Sorry für die vielleicht doofen Fragen
THX
Manuel
Halihallo lachesis
$allestunden = mysql_query($select . $from . $where . $where_add . $group . $sort);
Da dies nicht "anspringt" existiert $allestunden ja, aber welchen Wert hat diese Variable?
Frage: Was ist $allestunden für ein Datentyp und wie verwendet man ihn? - Wie erkennt
man, ob überhaupt etwas selektiert wurde, oder nicht? - Sieh in die Dokumentation und
beantworte selbst (siehe auch unten für den "direkten Tipp").
Wie kann ich das überprüfen?
s. Doku. Dort wirst du auf http://www.php.net/manual/en/function.mysql-num-rows.php
verweisen.
Viele Grüsse
Philipp
Hi!
Zur Fehlerüberprüfung verwende ich:
if (!$allestunden) {
echo("<p>Fehler bei der Suche nach dem Eintrag in der Datenbank!<br />Fehler: " . mysql_error() . "</p>");
exit();
}Da dies nicht "anspringt" existiert $allestunden ja, aber welchen Wert hat diese Variable?
Es ist eien Recource, siehe:
http://www.php3.de/manual/de/function.mysql-query.php
-> resource mysql_query ( string Anfrage [, resource Verbindungs-Kennung])
-> http://www.php3.de/manual/de/language.types.resource.php
Wie kann ich das überprüfen?
Du machst das schon richtig. Das Problem ist, dass es kein Problem gibt ;-) Es werden schlicht keine Datensätze gefunden.
Du könntest mal ganz genau in den MySQL-Funktionen suchen(http://www.php3.de/manual/de/ref.mysql.php), da gibt es eine spezielle Funktion, die Dir die Anzahl der gefundenen Datensätze zurückgibt, und damit kannst Du dann prüfen ob 0 oder mehr Datensätze da sind.
Grüße
Andreas
Danke,
sowas wie num_rows hab ich gesucht!!!