Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbankausgabe

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

  • Datenbankausgabe

    Hallo,

    ich habe folgendes Problem ich möchte mit Hilfe eines PHP-Codes Datenbank Einträge ausgeben. Allerdings bekomme ich immer folgende Fehlermeldung:

    Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\Mitarbeiter_DB\ausgabe_db.php on line 46

    Hier mein der PHP-Code (Davor ist normalerweise noch eine kleine Navigation die aber nicht mit dem PHP-Code zu tun hat):

    __________________________________________________ ______________

    PHP-Code:
    <?php
    $con 
    mysqli_connect("localhost""root""");
    mysqli_select_db($con"mitarbeiter");
    $result mysqli_query($con"SELCET * FROM mitarbeiter");

    while (
    $row mysqli_fetch_assoc($result));
    echo(
    $row[mitarbeiter_ID]. ",".
    $row[mitarbeiter_NAME]. ",".
    $row[mitarbeiter_ABREILUNG]. ",".
    $row[mitarbeiter_PC]. ",".
    $row[mitarbeiter_MONITOR]. ",".
    $row[mitarbeiter_DRUCKER]. ",".
    );
    ?>
    __________________________________________________ ______________

    Ich hoffe mir kann jemand helfen.

    TimRoe


  • #2
    1. mysqli Fehlerausgabe aktivieren! https://php-de.github.io/jumpto/sql/...ehler-ausgeben

    2. PHP Fehlerausgabe aktivieren! https://php-de.github.io/jumpto/faq/#debugging
    PHP-Code:
    $row[mitarbeiter_ID
    Da fehlen überall Quotes.

    3. Dann alle Fehlermeldungen ansehen und mal beheben.

    4. SELECT * ist pfui, Zähle immer alle einzeln auf"

    5. Und .. Amnerkung:

    Statt:
    PHP-Code:
    echo(
    $row[mitarbeiter_ID]. ",".
    $row[mitarbeiter_NAME]. ",".
    $row[mitarbeiter_ABREILUNG]. ",".
    $row[mitarbeiter_PC]. ",".
    $row[mitarbeiter_MONITOR]. ",".
    $row[mitarbeiter_DRUCKER]. ",".
    ); 
    Kannst du so machen:

    PHP-Code:
    echo implode(', '$row); 
    6. Und htmlspecialchars() bei der Ausgabe zu HTML nutzen!

    7. Und bitte PHP-Codetags hier im Forum verwenden.
    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Hallo,
      1. Du verwendest gar kein mysqli_fetch_array, weshalb der Code nicht zu der Fehlermeldung passt!
        Bitte immer den echten Code posten, danke!
      2. Dein mysqli_query gibt im Erfolgsfall eine Resource zurück, im Fehlerfall einen Boolean (false).
        Also bitte die Query mal ganz genau anschauen, den Fehler sollte man spätestens auf den zweiten Blick erkennen.
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche Tutorials

      Kommentar


      • #4
        Verwende Code-Tags wenn du Code hier einfügst. Dafür gibt es auch die entsprechenden Schalter hier im Forumseditor.

        mysqli_fetch_array() kann ich in deinem Code nicht entdecken.
        mysqli_content gibt es nicht.
        und es heisst SELECT und nicht selcet oder sonst wie. Zudem gibt man die Spalten an, die man ausgeben will und nicht den Stern verwenden.

        Am besten schaust du dir noch mal die Basisgrundlagen an.


        Kommentar


        • #5
          Sorry, habe mich verschieben der Fehlercode lautet:

          Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\Mitarbeiter_DB\ausgabe_db.php on line 46

          Kommentar


          • #6
            Der Grund ist der selbe. Beachte die Punkte alle oben.
            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar


            • #7
              Wie kann man sich beim kopieren und einfügen von Text verschreiben?

              PHP-Code:
              $result mysqli_query($con"SELCET * FROM mitarbeiter"); 
              Hier hast du einen Fehler in der Abfrage. Probiere diese doch einfach mal direkt auf die DB aus mit heidisql oder phpMyAdmin, dann siehst du ja ob ein Ergebnis zurück kommt.

              Kommentar


              • #8
                Habe jetzt glaube ich alle PHP-Fehler behoben, außerdem habe ich wie empfohlen die mysqli Fehlermeldung hinzu gefügt:

                PHP-Code:
                <?php
                $con 
                mysqli_connect("localhost""root""");
                mysqli_select_db($con"mitarbeiter");
                $result mysqli_query($con"SELECT mitarbeiter_ID, mitarbeiter_NAME, mitarbeiter_ABREILUNG, mitarbeiter_PC, mitarbeiter_MONITOR, mitarbeiter_DRUCKER  FROM 'mitarbeiter'") or die(mysqli_errory($con));

                while (
                $row mysqli_fetch_assoc($result));
                echo(
                $row[mitarbeiter_ID]. ",".
                $row[mitarbeiter_NAME]. ",".
                $row[mitarbeiter_ABREILUNG]. ",".
                $row[mitarbeiter_PC]. ",".
                $row[mitarbeiter_MONITOR]. ",".
                $row[mitarbeiter_DRUCKER]. ",".
                );
                ?>

                Durch die mysqli Fehlermeldung bekomme ich folgendes ausgegeben:

                You have an error in your SQL syntax: check the manual that corresponds to your MariaDB server version for the right syntax to use near "mitarbeiter" at line 1

                Allerdings hilft mir das nicht viel weiter, wie kann ich das am leichtesten beheben?

                Kommentar


                • #9
                  SELECT und nicht SELCET.

                  Und Tabellennamen gehören nicht in Hochkomma.

                  Zum Verbessern der Lesbarkeit sollte eine Code-Zeile nicht länger als 80 Zeichen sein. Niemand scrollt gerne ständig nach rechts und links.

                  Ein wenig sorgfältiger könntest du schon arbeiten. Ein Forum ist nicht dafür da um Tippfehler auszubessern.

                  Kommentar


                  • #10
                    #4 noch mal lesen, da habe ich dir den Hinweis schon direkt mitgeteilt, Du musst die Dinge der Reihe nach abarbeiten die wir dir hier empfehlen, sonst macht das keinen Spass, wenn man alles mehrfach wiederholen muss.

                    Kommentar


                    • #11
                      Zitat von protestix Beitrag anzeigen
                      #4 noch mal lesen, da habe ich dir den Hinweis schon direkt mitgeteilt, Du musst die Dinge der Reihe nach abarbeiten die wir dir hier empfehlen, sonst macht das keinen Spass, wenn man alles mehrfach wiederholen muss.
                      Ja sorry aber ich verstehe jetzt nicht was ich aus den Beweisgrundlagen benötige damit mein Code funktioniert...

                      Kommentar


                      • #12
                        #2

                        1. mysqli Fehlerausgabe aktivieren! https://php-de.github.io/jumpto/sql/...ehler-ausgeben

                        2. PHP Fehlerausgabe aktivieren! https://php-de.github.io/jumpto/faq/#debugging
                        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                        PHP.de Wissenssammlung | Kein Support per PN

                        Kommentar


                        • #13
                          Nun baue da doch nicht immer neue Fehler ein.
                          PHP-Code:
                          FROM 'mitarbeiter'" 
                          muss heissen
                          PHP-Code:
                          FROM mitarbeiter
                          oder mit Backticks, wenn es sich um eine MYSQL Datenbank handelt:
                          PHP-Code:
                          FROM `mitarbeiter`

                          Kommentar

                          Lädt...
                          X