Ankündigung

Einklappen
Keine Ankündigung bisher.

DB Zellen Abfrage nach ID und Wert in Variable speichern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • DB Zellen Abfrage nach ID und Wert in Variable speichern

    Hi,

    ich probiere hier schon eine ganze Weile rum, komme aber nicht weiter. Ich möchte bestimmte Zellenwerte/Inhalte id bezogen aus einer Datenbank auslesen und in einzelnen Variablen speichern um damit Funktionen zu steuern.

    PHP-Code:
    <?php
    include 'DBconnect.php';

    session_start();

    $userid $_SESSION['userid'];

    $sql "SELECT path FROM driver WHERE id =".$_SESSION['userid'];
    $statement $pdo->prepare($sql);


    ?>
    Ist der Zugriff auf die id = :userid so korrekt? Und wie kann ich jetzt die Werte aus den Zellen in Variablen ablegen? Bsp.:

    $status = Inhalt aus Zelle path bei id x gemäß der Session
    $time = Inhalt aus Zelle ride bei id x gemäß der Session


    Vielen Dank für eure Hilfe!

  • #2
    Zunächst einmal: prepared statements machen nur Sinn wenn man sein Query auch parameterisiert... das tust du aber nicht, dein SQL ist fertig. Daher reicht auch $pdo->query(...)

    Per $statement->fetch() holst du Ergbnisse, einzeln... fetchAll() liefert alles auf einmal. Der "fetch style" legt fest, wie das Ergebnisarray aussieht. Empf. ist ganz klar, den "assoc." modus zu nutzen, dann wird der Feldname als Arrayschlüssel verwendet.

    https://www.php.net/manual/en/class.pdostatement.php
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Das mit dem query() würde ich aber lassen und Prepared Statements richtig verwenden:

      PHP-Code:
      $sql "SELECT path FROM driver WHERE id = ?";
      $statement $pdo->prepare($sql);
      $statement->execute([$_SESSION['userid']]); 
      [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

      Kommentar


      • #4
        Moin,

        ja, prepared statement würde ich gerne bei behalten. Und es funktioniert auch soweit. Danke erstmal:

        PHP-Code:
        $sql "SELECT path, ride FROM driver WHERE id = ?";
        $statement $pdo->prepare($sql);
        $statement->execute([$_SESSION['userid']]);
        $result $statement->fetch(PDO::FETCH_ASSOC); 
        Ausgabe: Array ( [path] => 0 [ride] => 31.12.2099 )

        Wie kriege ich jetzt die beiden Werte vereinzelt in Variablen übergeben?

        Merci!

        Kommentar


        • #5
          Zitat von BBastian Beitrag anzeigen
          Wie kriege ich jetzt die beiden Werte vereinzelt in Variablen übergeben?
          Das sind absolute Grundlagen: https://www.php.net/manual/de/language.types.array.php

          Kommentar


          • #6
            Und wozu überhaupt? Sprich die doch einfach über den Array-Index an.
            [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

            Kommentar


            • #7
              Zitat von BBastian Beitrag anzeigen
              Moin,

              ja, prepared statement würde ich gerne bei behalten. Und es funktioniert auch soweit. Danke erstmal:

              PHP-Code:
              $sql "SELECT path, ride FROM driver WHERE id = ?";
              $statement $pdo->prepare($sql);
              $statement->execute([$_SESSION['userid']]);
              $result $statement->fetch(PDO::FETCH_ASSOC); 
              Ausgabe: Array ( [path] => 0 [ride] => 31.12.2099 )

              Wie kriege ich jetzt die beiden Werte vereinzelt in Variablen übergeben?

              Merci!
              list($path,$ride) = $result;

              var_dump($path);
              var_dump($ride);
              apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

              Kommentar


              • #8
                oder neu

                PHP-Code:
                $result = [123345];
                [
                $list$path] = $result;
                var_dump($list$path); 
                [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

                Kommentar


                • #9
                  Oder nachvollziehbarer lesbar:
                  PHP-Code:
                  $path $result['path'];
                  $ride $result['ride']; 

                  Kommentar


                  • #10
                    Jaaaaaaaaa, so wird ein Schuh draus. Vielen, vielen Dank!

                    Und für alle die am Besten mit funktionieren Code Beispielen lernen:

                    PHP-Code:
                    <?php
                    include 'DBconnect.php';

                    session_start();

                    $sql "SELECT path, ride FROM driver WHERE id = ?";
                    $statement $pdo->prepare($sql);
                    $statement->execute([$_SESSION['userid']]);
                    $result $statement->fetch(PDO::FETCH_ASSOC);

                    $status $result['path'];
                    $abo_time $result['ride'];


                    ?>
                    Es ist auch nach Bedarf beliebig erweiterbar.

                    Kommentar


                    • #11
                      Zitat von BBastian Beitrag anzeigen
                      Ausgabe: Array ( [path] => 0 [ride] => 31.12.2099 )

                      Wie kriege ich jetzt die beiden Werte vereinzelt in Variablen übergeben?
                      !
                      [ride] => 31.12.2099
                      Warum steht das Datum nicht isokonform in der Datenbank?
                      Es gibt dafür den Datentyp Date.

                      Die Ausgabe kannst du dann auch bestimmen mit https://dev.mysql.com/doc/refman/5.5...on_date-format oder halt in PHP zum Zeitpunkt der Ausgabe umwandeln. Siehe dazu den Artikel in der Wissensammlung.

                      Kommentar


                      • #12
                        Jupp, das hab ich noch isokonform geändert. Danke.

                        Kommentar

                        Lädt...
                        X