lachesis: Frage zu Abfrage ohne Ergebnis

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

--
mal wieder auf http://www.booklinks.de vorbeigeschaut? Mittlerweile mehr als 800! Bücher.
  1. 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

    --
    RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
    Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
  2. 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

  3. Danke,

    sowas wie num_rows hab ich gesucht!!!

    --
    mal wieder auf http://www.booklinks.de vorbeigeschaut? Mittlerweile mehr als 800! Bücher.