Ankündigung

Einklappen
Keine Ankündigung bisher.

datenbank daten auslesen

Einklappen

Neue Werbung 2019

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

  • datenbank daten auslesen

    hallo.
    wie mein name schon sagt, bin ich anfänger und dabei zu lernen.

    folgende datei habe ich erstellt:
    list.php
    PHP-Code:
        <html>
        <head>
        <title>Daten aus einer Datenbank abrufen</title>
        </head>
        <body>

        <ul>

        <?php
        
    // Verbindung zum Datenbankserver
        
    mysql_connect("mysql.meinserver.de""benutzer001""m31np455w0rt") or die (mysql_error ());

        
    // Datenbank auswählen
        
    mysql_select_db("meinedatenbank") or die(mysql_error());

        
    // SQL-Query
        
    $strSQL "SELECT * FROM Personen ORDER BY Vorname DESC";

        
    // Query ausführen (die Datensatzgruppe $rs enthält das Ergebnis)
        
    $rs mysql_query($strSQL);
        
        
    // Schleifendurchlauf durch $rs
        
    while($row mysql_fetch_array($rs)) {

           
    // Name der Person
          
    $strName $row['FirstName'] . " " $row['LastName'];

           
    // Erstelle einen Link zu person.php mit dem id-Wert in der URL
           
    $strLink "<a href = 'person.php?id = " $row['id'] . "'>" $strNavn "</a>";

            
    // Link in der Liste
           
    echo "<li>" $strLink "</li>";

          }

        
    // Schließt die Datenbankverbindung
        
    mysql_close();
        
    ?>

        </ul>
        </body>
        </html>
    und person.php

    PHP-Code:
    <html>
        <head>
        <title>Daten aus einer Datenbank abrufen</title>
        </head>
        <body>

        <dl>

        <?php
        
    // Verbindung zum Datenbankserver
        
    mysql_connect("mysql.meinserver.de""benutzer001""m31np455w0rt") or die (mysql_error ());

        
    // Datenbank auswählen
        
    mysql_select_db("meinedatenbank") or die(mysql_error());

        
    // Daten aus der Datenbank abrufen, wobei der Wert von id aus in der URL berücksichtigt wird
        
    $strSQL "SELECT * FROM Personen WHERE id=" $_GET["id"];
        
    $rs mysql_query($strSQL);
        
        
    // Schleifendurchlauf durch $rs
        
    while($row mysql_fetch_array($rs)) {

        
    // Schreibe die Daten der Person
            
    echo "<dt>Name:</dt><dd>" $row["Vorname"] . " " $row["Name"] . "</dd>";
            echo 
    "<dt>Telefon:</dt><dd>" $row["Telefon"] . "</dd>";
            echo 
    "<dt>Geburtsdatum:</dt><dd>" $row["Geburtsdatum"] . "</dd>";

        }

        
    // Schließt die Datenbankverbindung
        
    mysql_close();
        
    ?>

        </dl>
        <p><a href="list.php">Zurück zur Liste</a></p>

        </body>

        </html>
    ich bekomme allerdings am linken rand nur schwarze punkte ausgegeben.
    klicke ich auf den quelltext, werden mir die links angezeigt.
    wo könnte der fehler liegen?


  • #2
    . $strNavn . und . $strLink .

    was machen diese befehle?
    habe dazu ja nirgends etwas stehen?
    woher werden die auszugebenden infos geholt??

    ich habe die codes von http://de.html.net/tutorials/php/lesson20.php

    Kommentar


    • #3
      Das Tutorial ist veraltet. Würde dir das nicht empfehlen. Die mysql-Extension ist deprecated, d. h. sie wird in künftigen Versionen von PHP nicht mehr unterstützt und ist nur noch vorhanden um Anfänger in die Irre zu führen. Spaß beiseite, nutze mysqli oder PDO!

      Kommentar


      • #4
        Hallo,

        an den Anfang deiner Scripte:
        PHP-Code:
        ini_set('display_errors'1);
        error_reporting(-1); 
        Damit lässt du dir alle Fehler anzeigen.

        Mit var_dump(); kannst du dir den Inhalt von Variablen/Arrays/ Objekten usw. anzeigen lassen. Du solltest als erstes prüfen, ob deine Query auch etwas zurückgibt.
        PHP-Code:
        while($row mysql_fetch_array($rs)) {
            
        var_dump($row);
        //... Rest 

        . Dient dazu Strings zusammenzufügen.
        PHP-Code:
        $test 'hallo';
        echo 
        'halli '.$test.'.'// = halli hallo. 
        http://php.net/manual/de/language.operators.string.php

        Du solltest auch das Tutorial wechseln, wenn es mysql_ Funktionen verwendet ist es wahrscheinlich veraltet, auf jeden Fall wird es nicht mehr gepflegt.
        Die mysql_* Erweiterung ist veraltet und wird in der nächsten PHP-Version entfernt. Zudem ist deine Query anfällig für SQL-Injections (aktuell nicht, aber falls du Variablen in dein Insert nimmst).
        Durch einen Wechsel auf mysqli_* oder PDO greifst du aufdie modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections wirken.
        Ich persönlich bevorzuge PDO, schönes Tutorial: http://www.peterkropff.de/site/php/pdo.htm Die Seite bietet meiner Meinung nach den besten Einstieg für frische Anfänger, es deckt viele Themen ab und reicht bei PHP bis in die Grundlagen des Umgangs mit Klassen und Objekten.
        Relax, you're doing fine.
        RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

        Kommentar


        • #5
          vielen dank für eure schnellen antworten.

          ich habe einige scripte gekauft (komplett übernommen).
          habe einiges an geld investiert.
          diese sind alle mit mysql.
          wie kann ich das auf mysqli ändern?
          muss ich einfach in allen dateien aus mysql mysqli machen ist es nicht so einfach?

          Kommentar


          • #6
            Nicht ganz so einfach, dass man einfach ein i ranhängen muss, aber der Umstieg von den mysql_- auf die mysqli_-Funktionen ist trotzdem nicht schwer.
            Relax, you're doing fine.
            RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

            Kommentar


            • #7
              ok, danke für die info

              bevor ich das mache, möchte ich erst den oben stehenden code etwas verstehen.
              (post 1)

              was genau macht $strNavn? voher bekommt der befehl seine info?

              Kommentar


              • #8
                hier mein code:

                PHP-Code:
                    <html>
                    <head>
                    <title>Daten aus einer Datenbank abrufen</title>
                    </head>
                    <body>

                    <ul>

                    <?php

                ini_set
                ('display_errors'1);
                error_reporting(-1); 


                    
                // Verbindung zum Datenbankserver
                    
                mysql_connect("xxxxxx""xxxxxxx""xxxxxxxxx") or die (mysql_error ());

                    
                // Datenbank auswählen
                    
                mysql_select_db("xxxxxxxx") or die(mysql_error());




                    
                // SQL-Query
                    
                $strSQL "SELECT * FROM kii_team ORDER BY team_id";

                    
                // Query ausführen (die Datensatzgruppe $rs enthält das Ergebnis)
                    
                $rs mysql_query($strSQL);
                    
                    
                // Schleifendurchlauf durch $rs
                    
                while($row mysql_fetch_array($rs)) {

                       
                // Name der Person
                      
                $strName $row['team_name'] . " " $row['team_liga'];

                       
                // Erstelle einen Link zu person.php mit dem id-Wert in der URL
                       
                $strLink "<a href = 'zteam.php?id = " $row['team_id'] . "'>" $strNavn "</a>";

                        
                // Link in der Liste
                       
                echo "<li>" $strLink "</li>";

                      }
                    
                // Schließt die Datenbankverbindung
                    
                mysql_close();
                    
                ?>

                    </ul>
                    </body>
                    </html>
                fehler:
                Notice: Undefined variable: strNavn in /var/www/web16/html/Liga/playstation/bootybounce/Ligen/zteamlist.php on line 38

                edit: für was ist dieses strNavn ....

                Kommentar


                • #9
                  Keine Ahnung, das wird sicher vorher mal $strName gewesen sein.
                  Relax, you're doing fine.
                  RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

                  Kommentar


                  • #10
                    Änder mal den Teil

                    PHP-Code:
                    // Erstelle einen Link zu person.php mit dem id-Wert in der URL 
                           
                    $strLink "<a href = 'person.php?id = " $row['id'] . "'>" $strNavn "</a>"
                    in

                    PHP-Code:
                    // Erstelle einen Link zu person.php mit dem id-Wert in der URL 
                           
                    $strLink "<a href = 'person.php?id = " $row['id'] . "'>" $strName "</a>"
                    Und du wirst das Ergebnis haben, das du willst

                    zum Thema mysql bzw. mysqli

                    Hier wäre der erste Part angepasst:

                    PHP-Code:
                    <?php 
                        
                    // Verbindung zum Datenbankserver 
                        
                    $connection mysqli_connect("mysql.meinserver.de""benutzer001""m31np455w0rt") or die (mysqli_error ($connection)); 

                        
                    // Datenbank auswählen 
                        
                    mysqli_select_db($connection"meinedatenbank") or die(mysqli_error($connection)); 

                        
                    // SQL-Query 
                        
                    $strSQL "SELECT * FROM Personen ORDER BY Vorname DESC"

                        
                    // Query ausführen (die Datensatzgruppe $rs enthält das Ergebnis) 
                        
                    $rs mysqli_query($connection$strSQL); 
                         
                        
                    // Schleifendurchlauf durch $rs 
                        
                    while($row mysqli_fetch_array($rs)) { 

                           
                    // Name der Person 
                          
                    $strName $row['FirstName'] . " " $row['LastName']; 

                           
                    // Erstelle einen Link zu person.php mit dem id-Wert in der URL 
                           
                    $strLink "<a href = 'person.php?id = " $row['id'] . "'>" $strName "</a>"

                            
                    // Link in der Liste 
                           
                    echo "<li>" $strLink "</li>"

                          } 

                        
                    // Schließt die Datenbankverbindung 
                        
                    mysqli_close(); 
                        
                    ?>
                    Das müsste reichen.

                    Es reicht nicht, wie der Vorredner gesagt hat, einfach mysql durch mysqli zu ersetzen - du brauchst jeweils noch die Datenbankverbindung in den aktiven Querys (z.B. mysqli_query) - nicht jedoch (natürlich) bei mysqli_fetch_array etc..

                    Lg

                    Max

                    Kommentar


                    • #11
                      Zitat von mtedv Beitrag anzeigen

                      Es reicht nicht, wie der Vorredner gesagt hat, einfach mysql durch mysqli zu ersetzen
                      quote please.
                      Relax, you're doing fine.
                      RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

                      Kommentar


                      • #12
                        Zitat von mtedv
                        Es reicht nicht, wie der Vorredner gesagt hat, einfach mysql durch mysqli zu ersetzen - ...
                        Ich glaube das hast auch DU nur so verstanden:

                        Zitat von VPh Beitrag anzeigen
                        Nicht ganz so einfach, dass man einfach ein i ranhängen muss, aber der Umstieg von den mysql_- auf die mysqli_-Funktionen ist trotzdem nicht schwer.
                        Jedenfalls.. Dieses Tutorial ist auf jedenfall nicht ideal was die Struktur betrifft, schau dir dazu mal das hier zu E-V-A an, das ist in diesem Code nicht sauber umgesetzt: http://php-de.github.io/jumpto/eva-prinzip/

                        Und vergiss SELECT *, das ist pfui: http://php-de.github.io/jumpto/code-smells/#select-

                        LG
                        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
                          Hm vielleicht haben wir seinen Satz jetzt falsch verstanden, beim zweiten drüber nachdenken... Zu zweideutig formuliert.
                          Relax, you're doing fine.
                          RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

                          Kommentar


                          • #14
                            @all. vielen dank für die bisherigen schnellen und hilfreichen antworten!

                            @mtedv. hat funktioniert!

                            mysqli: damit beschäftige ich mich ende des jahres oder anfang des neuen jahres.

                            2 fragen:

                            1. inhalt einer db als grafik ausgeben - wie mache ich das?
                            den teams, die ich in der db habe, füge ich eine sternenanzahl hinzu. (1-5)
                            wenn ich die db auslese bekomme ich ja die zahl 1, 2, 3, 4 oder 5 angezeigt. ich habe allerdings "sterne-grafiken" und möchte diese angezeigt bekommen. ein team, was ein stern hat, soll die ein sterne grafik angezeigt bekommen, ein team mit 2 sternen, die 3 sterne grafik, usw. wie muss ich das machen?

                            2. bei den teams werden auch user-id´s eingetragen. team 12 wird zb. von dem user mit der id 4 betreut. hierbei handelt es sich um ein eigenes script. installiert ist auch ein cms. die id bekomme ich ausgegeben, aber wie muss ich es machen, dass anstatt die id meiner tab der user name ausgegeben wird? ich hoffe ihr versteht was ich meine.

                            bin für hilfe sehr dankbar! wie gesagt, bin ein anfänger und möchte es gerne lernen. gelesen habe ich mich schon durch einige seiten. ich verstehe allerdings nur etwas und kann es mir merken, wenn ich selbst etwas erstelle um den ablauf so nachvollziehen zu können und um es zu verstehen.

                            lg

                            Kommentar


                            • #15
                              Zitat von anfaenger2015 Beitrag anzeigen
                              2 fragen:

                              1. inhalt einer db als grafik ausgeben - wie mache ich das?
                              den teams, die ich in der db habe, füge ich eine sternenanzahl hinzu. (1-5)
                              wenn ich die db auslese bekomme ich ja die zahl 1, 2, 3, 4 oder 5 angezeigt. ich habe allerdings "sterne-grafiken" und möchte diese angezeigt bekommen.
                              Code:
                              test=# create table sterne (id int, anzahl int);
                              CREATE TABLE
                              Time: 251,574 ms
                              test=*# insert into sterne values (1,2);
                              INSERT 0 1
                              Time: 0,342 ms
                              test=*# insert into sterne values (2,5);
                              INSERT 0 1
                              Time: 0,143 ms
                              test=*# select id, repeat('*',anzahl) from sterne ;
                               id | repeat
                              ----+--------
                                1 | **
                                2 | *****
                              (2 rows)
                              2. bei den teams werden auch user-id´s eingetragen. die id bekomme ich ausgegeben, aber wie muss ich es machen, dass anstatt die id meiner tab der user name ausgegeben wird?
                              Beschäftige Dich mit JOIN.
                              PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                              Kommentar

                              Lädt...
                              X