Steffen Malte: Postgres: "Ist Artikel bereits vorhanden"

Hallo!

Ich möchte überprüfen ob in der Bestandstabelle der gerade
erfasste Artikel bereits vorhanden ist, damit ich später
entweder ein UPDATE oder ein INSERT auslösen kann.

Folgendes habe ich realisiert:
$sql_count = "SELECT COUNT(*) as Anzahl FROM bestand WHERE artnr = ".$artnr."";
$rs = pg_query($conn,$sql_count)
or die  ("Fehler: Abfrage $sql_count konnte nicht ausgeführt werden ".pg_last_error());
$zeile = pg_fetch_assoc($rs);
$anzahl = $zeile['anzahl'];

Variable $anzahl hat nun entweder 1 oder 0 als Wert. Kommt es mir nur so vor oder würde es auch einfacher bzw. anders gehen?

Im Voraus schon einmal Danke für Eure Hilfe.

Gruß
Steffen Malte

  1. Hi,

    Variable $anzahl hat nun entweder 1 oder 0 als Wert. Kommt es mir nur so vor oder würde es auch einfacher bzw. anders gehen?

    es kommt Dir nur so vor. Einfacher kann es nicht gehen, aber gute Frage.   :-)

    Gruss,
    Ludger

    1. es kommt Dir nur so vor. Einfacher kann es nicht gehen, aber gute Frage.   :-)

      Hallo!

      Ok jetzt bin ich etwas beruhigter ,-)
      Ich dachte da z.B. an eine Funktion pg_num_rows().
      Als Ausgabe erscheint die Anzahl der Zeilen, aber da mein
      Statement eine "0" oder "1" ausgibt ist die Zeilenanzahl immer
      = 1.

      Gruß
      Steffen

      1. echo $begrüßung;

        Ich dachte da z.B. an eine Funktion pg_num_rows().

        xx_num_rows() nur zum Zählen von Datensätzen zu verwenden (am besten dann noch gepaart mit select * - mit Betonung auf * ), ist eine unnötige Belastung des Datenbankservers. Der rackert sich einen ab um die Datensätzt bereitzustellen und dann sagt der (faule) Programmierer: "April, April, ich ich wollte die Schäfchen doch nur mal zählen." Der wird sich wundern, wenn die ersten Datenbanken mit EMP [1] ausgeliefert werden.
        Und wenn man diese Methode mal auf ODBC anwenden will, versagt sie bei einigen darunter liegenden Datenbanken, da sie erst nach dem Fetchen der Datensätze einen sinnvollen Wert enthält.

        SELECT COUNT(*) ist immer noch die beste Vorgehensweise, auch wenn man dafür einen Befehl mehr beim Abfragen benötigt.

        echo "$verabschiedung $name";

        [1] EMP: "Echtes Menschliches Persönlichkeitsbild" (Douglas Adams - Per Anhalter durch die Galaxis)