Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Wert aus Datenbank lesen

Einklappen

Neue Werbung 2019

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

  • PHP Wert aus Datenbank lesen

    Hallo zusammen,

    ich habe eine PHP Variabel und würde diese gerne mit der Datenbank abgleichen. Wenn der Wert vorhanden ist soll ein Icon als Bestätigung angezeigt werden.

    PHP-Code:



    <?

    // Datenbankverbindung besteht

    $vorname = "Thomas";



                                    $sql =  "SELECT vorname FROM mitarbeiterliste WHERE vorname = '.$vorname.' ";

                                    $result = mysql_query ($sql);

                                            if (mysql_num_rows ($result) == 1)
                                                {
                                                      echo '<span class="badge badge-success"><i class="fa fa-check" aria-hidden="true"></i></span>';
                                            }
                                            else
                                            {

                                            }

     ?>
    Funktioniert leider nicht so recht. Was mache ich falsch?


  • #2
    Du verwendest uralte mysql_ Funktionen, die es schon lange nicht mehr gibt. Wenn du den Code selber geschrieben hast, solltest du dein Lehrmaterial austauschen. Wenn du den Code von woanders her hast, dann ist das eine veraltete oder unseriöse Quelle und du solltest diese nicht verwenden.

    Kommentar


    • #3
      Die Basiscs...
      1. String zusammensetzen... setz ein var_dump($sql); unter den Query. Sieht das aus wie gewünscht?
      2. mysql_* ist in aktuellen PHP Versionen nicht mehr verfügbar. Benutze PDO oder mysqli (PDO wäre zu bevorzugen)
      3. Wenn du Werte/Eingaben in einen Query übernimmst, muss der Kontextwechsel beachtet werden. $vorname darf nur mit mysql_real_escaoe_string() in den Query eingesetzt werden. (Ansonsten: https://de.wikipedia.org/wiki/SQL-Injection) Mit PDO hast du alternativ die Möglichkeit prepared Queries zu verwenden.

      Kommentar


      • #4
        Danke für eure Rückmeldung.
        Ich habe hier eine Dokumentation zu PDO gefunden.

        Link: https://php-de.github.io/jumpto/pdo/...red-statements


        Das wäre meiner neuer Ansatz:

        PHP-Code:

        <?php    

        $thomas
        "Thomas";

                            
        $pdo = new PDO('mysql:host=localhost;dbname=*****''*****''******');

                            
        $sql "SELECT * FROM mitarbeiterliste WHERE vorname='".$thomas."'";
                            
        $stmt $pdo->prepare($sql);

                            
        // Namen einzeln ausgeben
                            
        if ($stmt->execute()) {
                                while (
        $row $stmt->fetch()) {
                                    echo 
        $row->vorname."<br>\n";
                                    }
                                }        

                            
        ?>
        Wenn ich das in der Dokumentation richtig verstanden habe sucht er die Datenbank nach dem Eintrag Thomas durch (in Spalte Vorname).
        Ich möchte jedoch nur dass der Eintrag im Hintergrund in der Datenbank überprüft wird und dann ein Icon anstatt der Name ausgegeben wird.

        Würde mich über weitere Lösungsansätze freuen da ich leider nicht weiterkomme.

        Kommentar


        • #5
          Lies den Abschnitt "Query mit Parameter" dort nochmals durch und mach es doch gleich richtig.

          Kommentar


          • #6
            Zitat von Sebbi85 Beitrag anzeigen
            Ich möchte jedoch nur dass der Eintrag im Hintergrund in der Datenbank überprüft wird
            Das gibt es nicht. Für eine Formular wo du den Namen eingibst ist das clientseitig, die Verarbeitung wird aber im Server vorgenommen, dann wird an den Client wieder ausgegeben.
            HTTP Grundlagen solltest du beherrschen.
            Wenn der Client das Formular solange weiterhin darstellen soll, dann kannst dich auch mit Javascript noch beschäftigen und das Thema AJAX oder Fetch durcharbeiten.
            Browser lassen aber den Inhalt sowieso stehen bis ein neuer Inhalt zur Anzeige bereit steht.

            Zitat von Sebbi85 Beitrag anzeigen
            und dann ein Icon anstatt der Name ausgegeben wird..
            Das ist doch kein Problem dann eben ein Icon auszugeben oder?
            Das kannst du mit PHP machen oder auch im Browser, du hast die Wahl.

            PHP-Code:
             $sql "SELECT * FROM mitarbeiterliste WHERE vorname='".$thomas."'"
            Falsch, das ist kein prepared statement, versuche es noch mal.

            Wo ist der Kontextwechsel bei der Ausgabe beachtet worden?

            Kommentar


            • #7
              protestix Danke für den Hinweis.

              Hat lange gedauert aber habe es jetzt hinbekommen.
              Vielen Dank für eure Hilfe

              Kommentar

              Lädt...
              X