Ankündigung

Einklappen
Keine Ankündigung bisher.

Convertierung php 5.6 nach php 7.0

Einklappen

Neue Werbung 2019

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

  • Convertierung php 5.6 nach php 7.0

    Hallo
    Ich benötige Hilfe für die Convertierung von Quelltext php 5.6 nach php 7.0

    Poblem 1:
    Quelltext php 5.6:
    PHP-Code:
    <?php
    $rs
    =mysql_query("select * from artikel order by nr desc limit 0,4");
    if(
    mysql_num_rows($rs)>0){ ?>
    <?php 
    for($i=0$i<mysql_num_rows($rs); $i++){ ?>
    <tr>
    <td align="center">
    <b class=b3><? echo mysql_result($rs,$i,'titel'); ?></b><br>
    <b class=b4><? echo mysql_result($rs,$i,'text'); ?></b>&nbsp;<br>
    <b><a href="seiten/news.php">|weiterlesen|</a></b>
    <hr class="hr3">
    </td>
    </tr>
    <?php ?>
    klappt einwandfrei.
    Quelltext php 7.0:

    PHP-Code:
    <?php
    $rs
    =mysqli_query($mysqli,"select * from artikel order by nr desc limit 0,4");
    if(
    mysqli_num_rows($rs)>0){ ?>
    <?php 
    for($i=0$i<mysqli_num_rows($rs); $i++){ ?>
    <tr>
    <td align="center">
    <b class=b3><? echo mysqli_data_seek($rs, $i); mysqli_fetch_array($rs)['titel']; ?></b><br>
    <b class=b4><? echo mysqli_data_seek($rs, $i); mysqli_fetch_array($rs)['text']; ?></b>&amp;nbsp;<br>
    <b><a href="seiten/news.php">|weiterlesen|</a></b>
    <hr class="hr3">
    </td>
    </tr>
    <?php ?>
    Ich bekomme nur folgende Meldung zurück: 1
    1
    |weiterlesen|

    Problem 2:
    Quelltext php 5.6:
    PHP-Code:
    <b class=b6>Fahrerwertung<br>nach <?php echo reset(mysql_fetch_row(mysql_query
    ("SELECT MAX(rennen_id) as max FROM ergebnisse_19"))); ?> von 21 Rennen</b><br>
    Ausgabe der id erfolgt problemlos.

    Quelltext php 7.0:
    PHP-Code:
    <b class=b6>Fahrerwertung<br>nach <?php echo reset(mysqli_fetch_row(mysql_query
    ("SELECT MAX(rennen_id) as max FROM ergebnisse_19"))); ?> von 21 Rennen</b><br>
    Ich bekomme folgende Warnungen:

    Warning: mysql_query(): Access denied for user ''@'localhost' (using password: NO) in
    /www/htdocs/w011be1f/index.php on line 158

    Warning: mysql_query(): A link to the server could not be established in
    /www/htdocs/w011be1f/index.php on line 158

    Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result, boolean given in
    /www/htdocs/w011be1f/index.php on line 158

    Warning: reset() expects parameter 1 to be array, null given in
    /www/htdocs/w011be1f/index.php on line 158

    Wo liegen die Fehler?

    mfg
    lushang


  • #2
    Das steht in den Fehlermeldungen. Diese solltest du lesen.

    Kommentar


    • #3
      Access denied for user ''@'localhost'
      Vor allem die erste sagt eigentlich schon alles. Der Rest sind Folgefehler, weil du im Code davon ausgehst das eh alles klar geht.


      MOD: Und bitte Code Tags 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


      • #4
        Danke für die Hinweise aber leider kann ich diese Fehlermeldungen nicht richtig deuten und so bleibt meine Frage was ich ändern muss um mein Problem zu lösen. Habe das Skript vor vielen Jahren (2002) geschrieben und habe mich nicht weiter mit php beschäftigt. Durch die baldige Löschung der php 5.6 Version vom Server bin nun damit konfrontiert. Wäre schön wenn ich Hilfe bekäme.

        Kommentar


        • #5
          Deine Zugangsdaten zur Datenbank stimmen nicht. An der entsprechenden Stelle nutzt du auch noch mysql_query, das musst du dann auch noch auf mysqli umstellen.
          Relax, you're doing fine.
          RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

          Kommentar


          • #6
            Ich würde gleich PDO nutzen, nur so am Rande.

            https://php-de.github.io/jumpto/pdo/

            https://www.php-rocks.de/thema/49-ei...tatements.html

            Und .. nochwas..

            PHP-Code:
            ("SELECT MAX(rennen_id) as max FROM ergebnisse_19"))); ?> von 21 Rennen</b><br> 
            Ich denke das ist auch nicht ganz korrekt. Wenn du ein Rennen löscht, dann hast du mit MAX nicht die Anzahl sondern nur die hächste ID. Das sagt nicht viel aus, die ID kann auch was ganz anderes sein. Meines Erachtens wäre hier COUNT() mit DISTINCT oder GROUP BY richtig, dann hast du nämlich wirklich die Anzahl und nicht nur die "höchste Nummer".

            Und ... "ergebnisse_19" .. Nummerierte Spalten deuten meist auf ein DB-Fehldesign hin. Normalisierung kennst du? Kannst du dir ja mal anschauen und ob du das richtig gelöst hast. Wenn du für jedes Rennen eine eigene Tabelle hast ist es falsch.

            Wie gesagt .. nur so "Inputs" am Rande.
            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
              VPh danke erst mal habe das mysqli geändert und die erste Fehlermeldung ist weg. Verstehe aber nicht wieso die Zugangsdaten nicht stimmen sollen da an anderer Stelle die Verbindung zur DB funktioniert. Das zeigt doch das die Connect richtig arbeitet oder?

              Kommentar


              • #8
                Ja.
                Das lag wahrscheinlich daran, weil eben noch nicht alle Stellen umgestellt waren und für die mysql_* Funktionen gar keine Zugangsdaten mehr hinterlegt waren - ist jetzt aber nur geraten.

                Welche Fehlermeldungen sind denn noch übrig?
                Relax, you're doing fine.
                RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

                Kommentar


                • #9
                  hausl "ergebnisse_19" ist keine Spalte sondern eine tabelle in der DB wo halt alle Rennergebnisse hinterlegt werden.

                  Kommentar


                  • #10
                    VPh
                    Warning: mysqli_query() expects at least 2 parameters, 1 given in /www/htdocs/w011be1f/index.php on line 158

                    Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result, null given in /www/htdocs/w011be1f/index.php on line 158

                    Warning: reset() expects parameter 1 to be array, null given in /www/htdocs/w011be1f/index.php on line 158

                    leider muss ich jetzt erst mal enden komme morgen wieder

                    Kommentar


                    • #11
                      Zitat von lushang Beitrag anzeigen
                      hausl "ergebnisse_19" ist keine Spalte sondern eine tabelle in der DB wo halt alle Rennergebnisse hinterlegt werden.
                      Meinte ich.. Hast du für alle Ergebnisse eine Tabelle, dann passt es vermutlich.

                      Zitat von lushang Beitrag anzeigen
                      VPh
                      Warning: mysqli_query() expects at least 2 parameters, 1 given in /www/htdocs/w011be1f/index.php on line 158
                      Steht doch da. Da fehlt der 2. Parameter, ("expects at least 2 parameters, 1 given") vermutlich das mysqli Verbindungsobjekt.

                      Fang mit der ersten Meldung/Stelle an, der Rest erledigt sich dann tlw. von selbst. Folgefehler weil nichts zurückkommt, was sich dann erledigt
                      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


                      • #12
                        PHP-Code:
                        <b class=b6>Fahrerwertung<br>nach <?php echo reset(mysqli_fetch_row(mysql_query
                        ("SELECT MAX(rennen_id) as max FROM ergebnisse_19"))); ?> von 21 Rennen</b><br>
                        An dieser Stelle wird noch mysql_query genutzt. Oder falls du das auch inzwischen umgestellt hast, fehlt da noch $mysqli als Parameter, dadurch werden dann auch die anderen Fehler verursacht.
                        Relax, you're doing fine.
                        RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

                        Kommentar


                        • #13
                          Zitat von lushang Beitrag anzeigen
                          PHP-Code:
                          <b class=b3><? echo mysqli_data_seek($rs, $i); mysqli_fetch_array($rs)['titel']; ?></b><br>
                          Du möchtest den Rückgabewert von mysqli_fetch_array() ausgeben, nicht den von mysqli_data_seek(). Sinnvoller wäre es aber ohnehin statt deiner for-Konstruktion eine while-Schleife über mysqli_fetch_array() laufen zu lassen, das spart einige unnötige Funktionsaufrufe. Vom unsinnigen bis falschen HTML mal garnicht anzufangen …

                          Kommentar


                          • #14
                            VPh danke für deinen Rat habe das $mysqli eingefügt und alles ist gut.

                            Kommentar


                            • #15
                              @ tk1234 habe auf mysqli_fetch_array reduziert aber das Ergebnis ist völlig durcheinander nur wenn ich auf eine variable (text oder titel) reduziere wird diese dann auch korrekt angezeigt. Hier mal der Text ich weiss mir keinen Rat mehr:
                              <?php
                              $rs=mysqli_query($mysqli,"select * from artikel order by nr desc limit 0,4");
                              if(mysqli_num_rows($rs)>0){ ?>
                              <?php for($i=0; $i<mysqli_num_rows($rs); $i++){ ?>
                              <tr>
                              <td align="center">
                              <b class=b3><? echo mysqli_fetch_array($rs)['titel']; ?></b><br>
                              <b class=b4><? echo mysqli_fetch_array($rs)['text']; ?></b><br>
                              <b><a href="seiten/news.php">|weiterlesen|</a></b>
                              <hr class="hr3">
                              </td>
                              </tr>
                              <?php } ?>

                              Oder hat sonst noch jemand einen Tip?

                              Kommentar

                              Lädt...
                              X