Moebius: Ein Wert aus einer SQL-Abfrage auslesen

Hi,
ich hab ein reicht einfaches Problem. Ich bastle im Moment an einem Php-Skript, dass mir aus einer SQL-Datei einen Wert auslesen soll.

So soll das in etwa aussehen:

<?php
include("dbconnect.php");
$SQLStmt2 = "Select max(RezeptID) from rezepte";
$ergebnis2=mysql_query($SQLStmt2);
?>

Bei meiner Abfrasge kommt eine einzige,ganze Zahl raus, z.B: 17

diese möchte ich jetzt weiterverwenden. Also Sowas wie

$max=mysql_fetch_object($ergebnis);
echo $max;

Als Ausgabe sollte jetzt 17 kommen. Aber wie mach ich das ? Und sollte ich das Maximum lieber in Php auslesen?

Mfg Moebius

  1. Hi,

    Bei meiner Abfrasge kommt eine einzige,ganze Zahl raus, z.B: 17

    nein, es kommt ein einziges Resultset raus, welche - zufällig - aus einer einzigen Zeile besteht, welche - zufällig - nur eine Spalte besitzt. Der Schnittstelle ist diese Menge egal, sie funktioniert mit einer Zeile bzw. Spalte exakt so wie mit hundert Zeilen bzw. Spalten. Lies also ...

    $max=mysql_fetch_object($ergebnis);

    ... die Zeile aus, und ermittle aus dieser die Spalte, die Dich interessiert.

    Und sollte ich das Maximum lieber in Php auslesen?

    Wenn es sich aus einer anderen Abfrage, die Deinem PHP-Code bereits komplett bekannt ist, einwandfrei ermitteln lässt, spricht nichts dagegen, wohl aber etwas dafür: der Verzicht auf einen zusätzlichen SQL-Roundtrip. Fehlt besagte Abfrage, wäre es Unsinn, typische Datenbankfunktionen in der abfragenden Technik nachzubilden.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Mir ist durchaus bewusst das ich ein Array versuche auszugeben. (Was mit echo natürlich nicht klappen kann)

      Ich hab

      $max=mysql_fetch_object($ergebnis);

      nur hingeschrieben um zu zeigen wie ich das haben will. Wie mach ich das hier jetzt aber am besten?

      Mfg Moebius

      1. Hallo

        $max=mysql_fetch_object($ergebnis);

        nur hingeschrieben um zu zeigen wie ich das haben will. Wie mach ich das hier jetzt aber am besten?

        Mit SQL die entsprechende Abfrage erstellen, die Dir den gewünschten Wert in der einzigen Spalte mit bekanntem Namen zurückliefert - und die genau einen Wert liefert. Da Du ein Maximum haben möchtest, bietet sich die Verwendung der gleichnamigen Aggregatsfunktion an. Viel mehr kann man bei Deinen Angaben nicht sagen.

        Freundliche Grüße

        Vinzenz

        1. Ich hab doch alles hingeschrieben?

          Hier nochmal :

          Zuerst die SQL-Abfrage:

          $SQLStmt2 = "Select max(RezeptID) from rezepte";

          danach diese ausführen:

          $ergebnis2=mysql_query($SQLStmt2);

          So, nun möchte ich das ausgeben aber wie???

          echo $ergebnis2 liefert kein Ergebnis, da das ein array sein müsste. Wie bekomm ich meine Zahl (max() muss ja eine zurück geben) in eine "normale" php Variable?

          1. Hallo

            Zuerst die SQL-Abfrage:
            $SQLStmt2 = "Select max(RezeptID) from rezepte";

            ahja, vorhin überlesen :-)

            Besser wäre:

            SELECT  
                  MAX(RezeptID) maximum -- Gib der Spalte einen netten Namen  
              FROM  
                  rezepte
            

            danach diese ausführen:

            $ergebnis2=mysql_query($SQLStmt2);

            So, nun möchte ich das ausgeben aber wie???

            Jetzt hat Deine Spalte einen vernünftigen Namen und Du kannst problemlos mit

              
              $zeile = [link:http://www.php.net/manual/de/function.mysql-fetch-object.php@title=mysql_fetch_object]($ergebnis);  
              echo $zeile->maximum;  
            
            

            auf die einzige Zeile und die benannte Spalte zugreifen.
            Hättest Du es mit den gebräuchlicheren Funktionen wie mysql_fetch_array() versucht, hättest Du schon vorher erfolgreich über die Spaltennummer auf das Ergebnis zugreifen können.

            Freundliche Grüße

            Vinzenz

            1. Ahhh danke genau so soll das laufen. :)

              Es war mir nicht bekannt, das man einfach hinter den Befehl max() einen Namen schreiben kann.

              Ansonsten auf die Idee mit dem mysql_fetch_array hätt ich auch kommen können ;) .

              Mfg Moebius

  2. echo $max;

    Das ist ein Array, keine Variable. Du solltest nochmal das Manual zu Rate ziehen.