Ankündigung

Einklappen
Keine Ankündigung bisher.

Form-Element mit einem Element aus einer SQL-Datenbank ausfüllen funktioniert nicht.

Einklappen

Neue Werbung 2019

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

  • Form-Element mit einem Element aus einer SQL-Datenbank ausfüllen funktioniert nicht.

    Hallo,

    ich fange mal gleich an.
    Es soll ein Formular abgeschickt werden. Das Feld Autor soll dabei gleich mit dem Namen des eingeloggten Users, der in der sql datenbank eingetragen ist, ausgefüllt sein.
    Die Zeile
    PHP-Code:
    <td><input type="text" value="<?php $db->getUserName() ?>" readonly /></td>
    soll dafür sorgen.

    Die Funktion sieht so aus:

    Nun gibt es folgende Fehlermeldung, witzigerweise wird das in das Feld Autor eingetragen,
    <br /><b>Notice</b>: Undefined property: PDOStatement::$execute in <b>C:\xampp\htdocs\php\mysql.php</b> on line <b>118</b><br /><br /><b>Notice</b>: Trying to get property of non-object in <b>C:\xampp\htdocs\php\mysql.php</b> on line <b>122</b><br />
    Hier nun die mysql.php:
    http://pastebin.com/Tuc5peNY

    und hier die new_article.php
    http://pastebin.com/WN9Qa3kw

    Habt ihr Ideen?
    Einloggen klappt, die Session id wird auch erstellt und wenii ch die function getUserName mit einem echo vor der $sid ändere, also so:
    PHP-Code:
    function getUserName() {
            
            
    $stmt self::$_db->prepare("SELECT name FROM users WHERE :session");
            echo 
    $sid session_id();
            
    $stmt->bindParam(":session"$sid);        
            
    $stmt->execute;
            
            
    $user $stmt->fetch(PDO::FETCH_OBJ);
            
            
    $user->name ;
        
        } 
    dann wird im Feld Autor die sessioID ausgegeben.

    Für Hilfe wäre ich sehr dankbar.

  • #2
    Erstens: Deine Query enthält einen Fehler.
    Code:
    WHERE :session
    ergibt einfach keinen Sinn.
    Zweitens:
    PHP-Code:
    $stmt->execute 
    Execute ist keine Variable sondern eine Methode.
    [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

    Kommentar


    • #3
      [geschlossen] Auflösung, Fehler gefunden.

      Danke für die Hinweise!

      Es muss in meinem Falle so heißen:
      PHP-Code:
      WHERE session=:sid 
      und natürlich

      PHP-Code:
      $stmt->execute(); 
      Doch hinzu kommt noch diese Veränderung
      PHP-Code:
      $stmt->bindParam(":sid"$sid); 
      So das die Funktion getUserName wie folgt aussieht:
      PHP-Code:
      function getUserName() {
              
              
      $stmt self::$_db->prepare("SELECT name FROM users WHERE session=:sid");
              
      $sid session_id();
              
      $stmt->bindParam(":sid"$sid);        
              
      $stmt->execute();
              
              
      $user $stmt->fetch(PDO::FETCH_OBJ);
              
              return 
      $user->name ;
          
          } 
      Und hier nochmal die mysql.php in Gänze...
      http://pastebin.com/JxaytY80


      Vielen Dank tkausl!

      Kommentar

      Lädt...
      X