Ankündigung

Einklappen
Keine Ankündigung bisher.

In dem Buch "PHP & MySQL für dummies" funktioniert ein abgeschriebenes Script nicht

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

  • In dem Buch "PHP & MySQL für dummies" funktioniert ein abgeschriebenes Script nicht

    ich habe nun schon probiert. Leider habe ich keinen Erfolg gehabt. Das folgende Script habe ich in dern Ordner var/www/html verschoben. Ich habe also Linux-Ubuntu . Das Script ist wie folgt:
    PHP-Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Hintergrundfarbe ändern</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" type="text/css"
    href="../css/neu.css">
    </head>
    <body>
    <h3>Namen anzeigen</h3>
    <p>
    <?php
    $dp 
    mysql_connect ("localhost""admin ""elisabeth2");
    mysql_select_db("sql_pofi"$dp);
    $sql "SELECT * FROM adressen";
    $result mysql_query($sql);
    while (
    $row mysql_fetch_assoc($result)) {
    echo 
    "$row[Vorname] $row[Name]<br>\n";
    }
    mysql_close($dp);
    ?>
    </p>
    </body>
    </html>
    Erst hatte ich es ohne Passwort. . Es erscheint bei http://localhost/adressen1.php nur die Überschrift h3 Namen anzeigen . Dann habe ich das noch einmal mit Passwort versucht. Der selbe Mißerfolg: Es erscheint im Browser nur: Namen anzeigen. Von dem PHP keine Spur.
    Ich bitte Euch deshalb erneut um Hilfe.


  • #2
    Wenn das Script so in dem Buch steht würde ich das Buch entsorgen und mir ein aktuelles Buch besorgen.

    Lies mal den roten Kasten unter:
    https://www.php.net/manual/de/functi...ql-connect.php

    Kommentar


    • #3
      Das Buch ist wohl für PHP 4. Du solltest dir besser ein Buch für PHP 7 besorgen.

      Kommentar


      • #4
        naja sooo viel hat sich ja nicht geändert seit php 4


        also 1) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> macht man nicht mehr <!DOCTPYE html> reicht aus
        2) <meta http-equiv="content-type" content="text/html; charset=UTF-8"> macht man auch nicht wegen dem neuen doctype, man schreibt <meta charset="utf-8"/>
        3) ALLE mysql_ funktionen wurden entfernt, also musst du statt

        PHP-Code:
        <?php
        $dp 
        mysql_connect ("localhost""admin ""elisabeth2");
        mysql_select_db("sql_pofi"$dp);
        $sql "SELECT * FROM adressen";
        $result mysql_query($sql);
        while (
        $row mysql_fetch_assoc($result)) {
        echo 
        "$row[Vorname] $row[Name]<br>\n";
        }
        mysql_close($dp);
        ?>
        das hier schreiben

        PHP-Code:
        <?php
        $dp 
        mysqli_connect ("localhost""admin ""elisabeth2","sql_pofi");

        $sql "SELECT * FROM adressen";
        $result mysqli_query($dp,$sql);
        while (
        $row mysqli_fetch_assoc($result)) {
            echo 
        $row['Vorname']." ".$row['Name']."<br>\n";
        }
        4) man gibt nicht mehr einfach so den schlüssel des arrays aus $row[Vorname] man muss es immer in hochkomma setzen , also aus $row[Vorname] wird $row['Vorname']
        5)mysql_close($dp); braucht man auch nicht mehr


        wenn du diese Regeln dir merken kannst und auf alle Übungen übetragen kannst, viel spaß, ansonsten wie hellbringen gesagt hat, neues Buch kaufen
        apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/witalimik

        Kommentar


        • #5
          Wenn er jedoch jedes mal wenn etwas nicht funktioniert hier nachfragen muss, ist die Empfehlung das Buch zu entsorgen gar nicht mal schlecht gemeint, denn als Anfänger weiss man ja nicht was man tut und was veraltet oder neu sein kann.

          Es gibt aber auch Tutorials kostenlos im Netz und das Handbuch ist auch kostenlos und oft auf deutsch zu beziehen.

          Kommentar


          • #6
            Ich würde gegebenenfalls auch Codecademy empfehlen.

            Kommentar


            • #7
              Vielen Dank für Eure Antwort. Ich habe nun das so abgeändert, wie #4 beschrieben. Leider ist es nach wie vor bei http://localhost/adressen1.php wird nur die Überschrift Namen anzeigen ausgegeben wird. Das abgeänderte Script sieht wie folgt aus:

              PHP-Code:
              <!DOCTYPE html>
              <html>
              <head>
              <title>Hintergrundfarbe ändern</title>
              <meta charset="utf-8"/>
              <link rel="stylesheet" type="text/css"
              href="../css/neu.css">
              </head>
              <body>
              <h3>Namen anzeigen</h3>
              <p>
              <?php
              $dp 
              mysqli_connect ("localhost""admin ""elisabeth2","sql_profi");

              $sql "SELECT * FROM adressen";
              $result mysqli_query($dp$sql);
              while (
              $row mysqli_fetch_assoc($result)) {
              echo 
              $row['Vorname']." ".$row['Name']."<br>\n";
              }
              ?>
              </p>
              </body>
              </html>
              Ich kann keine Fehler entdecken.
              Ich versuche mich jetzt auch nach einem anderen Buch. Vielleicht habe ich doch noch ein Erfolgserlebnis mit php .

              Kommentar


              • #8
                Du musst debuggen. Nur Code anschauen und Fehler suchen reicht irgendwann nicht mehr:
                https://php-de.github.io/#debugging

                Ist das error_reporting aktiviert? (Müsste eigentlich, falls du XAMPP verwendest).
                Mach mal:
                PHP-Code:
                var_dump($result); 
                Und innerhalb der Schleife:
                PHP-Code:
                var_dump($row); 
                Was kommt da raus? Du solltest schon versuchen zu verstehen was da passiert resp. was du machst. Wenn du einfach Code abschreibst und dann gleich hilflos bist wenn es nicht geht wird es etwas schwierig.
                Lies Dir den Teil zum Debugging durch und versuche mit kleinen Schritten dem Problem auf den Grund zu kommen.
                Ich kann jetzt so auf den Blick keinen Fehler entdecken. Kann sein, dass die Datenbank-Verbindung schiefgeht. Oder du keine Einträge hast. Oder dass die Felder dort nicht 'Name' und 'Vorname' heissen. Das können wir nicht wissen.

                Kommentar


                • #9
                  Fehler von Mysql musst du separat abfragen

                  PHP-Code:
                  <!DOCTYPE html>
                  <html>
                  <head>
                  <title>Hintergrundfarbe ändern</title>
                  <meta charset="utf-8"/>
                  <link rel="stylesheet" type="text/css"
                  href="../css/neu.css">
                  </head>
                  <body>
                  <h3>Namen anzeigen</h3>
                  <p>
                  <?php
                  $dp 
                  mysqli_connect ("localhost""admin ""elisabeth2""sql_profi");

                  if (
                  mysqli_connect_errno()) {
                      
                  printf("Connect failed: %s\n"mysqli_connect_error());
                      exit();
                  }
                  $sql "SELECT * FROM adressen";

                  $result mysqli_query($dp$sql);

                  if (!
                  $result) {
                      
                  printf("Error message: %s\n"mysqli_error($dp));
                  }else{
                      while (
                  $row mysqli_fetch_assoc($result)) {
                          echo 
                  $row['Vorname']." ".$row['Name']."<br>\n";
                      }
                  }
                  ?>
                  </p>
                  </body>
                  </html>

                  Kommentar


                  • #10
                    Jonas3344 schrieb: Ist das error_reporting aktiviert?
                    Antwort: Normal bin ich mit Ubuntu 18.04 LTS unterwegs. Ich habe aber jetzt auch einen Laptop mit Windows 10 zur Verfügung. Der ist auf den Namen meiner Frau, die will den aber nicht mehr. Ihr genügt ihr Handy. Da habe ich das XAMPP eingerichtet und gestartet. Ich konnte das "error-reporting" nicht entdecken.
                    Zurück zu meinen Linux-Ubuntu-Computer. Ich habe #9 kopiert , dann als Datei adressen_fehler.php in den Ordner /var/www/html verschoben. Im Browser erhielt ich folgende Fehlermeldung: Namen anzeigen

                    Connect failed: Access denied for user 'admin '@'localhost' (using password: YES)

                    Kommentar


                    • #11
                      Ja, das sollte dann mal überprüft werden. Eventuell ist das Leerzeichen am Ende zu viel, aber dafür sind wir nicht zuständig.

                      Kommentar


                      • #12
                        Tja, dann stimmen die Daten beim mysqli_connect nicht.
                        Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                        Kommentar


                        • #13
                          fehlermeld.jpg Kann mir vielleicht von Euch jemand von Euch weiterhelfen? Ich habe diese Datei seite 237_1.php in dem Ordner /var/www/html . Dann könnt Ihr doch an Hand der Fehlermeldung sehen, was falsch läuft. Ich wäre schon froh, wenn mir jemand von Euch helfen würdet.

                          Kommentar


                          • #14
                            Zitat von sauber324 Beitrag anzeigen
                            fehlermeld.jpg Kann mir vielleicht von Euch jemand von Euch weiterhelfen? Ich habe diese Datei seite 237_1.php in dem Ordner /var/www/html . Dann könnt Ihr doch an Hand der Fehlermeldung sehen, was falsch läuft. Ich wäre schon froh, wenn mir jemand von Euch helfen würdet.
                            localhost/html/seite237_1.php

                            localhost zeigt auf /var/www alle weitere musst du im Browser aufrufen
                            apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/witalimik

                            Kommentar


                            • #15
                              Zitat von sauber324 Beitrag anzeigen
                              […]Ich habe diese Datei seite 237_1.php in dem Ordner /var/www/html . Dann könnt Ihr doch an Hand der Fehlermeldung sehen, was falsch läuft. Ich wäre schon froh, wenn mir jemand von Euch helfen würdet.
                              Wie heißt die Datei genau? »seite 237_1.php« oder »seite237_1.php« (Leerzeichen!)?

                              Zitat von BlackScorp Beitrag anzeigen
                              localhost/html/seite237_1.php

                              localhost zeigt auf /var/www alle weitere musst du im Browser aufrufen
                              Nein, localhost zeigt standardmäßig auf /var/www/html.

                              Kommentar

                              Lädt...
                              X