letzter Datensatz wird aus DB nicht gelesen

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

  • letzter Datensatz wird aus DB nicht gelesen

    ich habe ein Problem beim Darstellen einer mySQL DB mit PHP. Es wird der zu letzt eingetragene Datensatz in einer Tabelle, die mit einer While Schleife erzeugt wird nicht dargestellt.
    Ich habe das schon mit verschiedenen DB Tabellen und auch mit verschiedenen Scripten probiert, das Ergebis ist immer das gleiche der letzte Datensatz fehlt.
    Hier ein Auszug aus der Abfrage, ich denke der Fehler liegt dort.

    PHP-Code:
    $db mysql_connect ($datenbankserver$datenbankbenutzer$datenbankkennwort) or die ("Keine Verbindung moeglich");
    mysql_select_db($datenbankname$db) or die ("Die Datenbank existiert nicht");
    if (!isset(
    $sort)) $sort "i_id";

    $result=mysql_query("SELECT * FROM ip");
    $num_rows=mysql_num_rows($result);

    $ausgabe_zeilen 22;
    if (!isset(
    $ausgabe_von))$ausgabe_von 0;
    if (!isset(
    $ausgabe_bis))$ausgabe_bis $ausgabe_zeilen;
    if (
    $next == 'next'$ausgabe_von $ausgabe_von+$ausgabe_zeilen;
    if (
    $next == 'back'$ausgabe_von $ausgabe_von-$ausgabe_zeilen;
    if (
    $next == 'next'$ausgabe_bis $ausgabe_bis+$ausgabe_zeilen;
    if (
    $next == 'back'$ausgabe_bis $ausgabe_bis-$ausgabe_zeilen;
    if (
    $ausgabe_von<0)$ausgabe_von 0;
    if (
    $ausgabe_bis<$ausgabe_zeilen)$ausgabe_bis $ausgabe_zeilen
    ;
    $abfrage "SELECT * FROM ip ORDER BY $sort DESC LIMIT $ausgabe_von$ausgabe_zeilen";
    $ergebnis mysql_query($abfrage);
    $row mysql_fetch_object($ergebnis);
    ?> 
    Tschau T Olli2

  • #2
    Wieviel Zeilen sind in der DB drin??? Wieviel Zeilen bekommst du ausgegeben???
    Laut dem Script dürfte er dir nur 22 Zeilen ausgeben. Wenn mehr in der Datenbank drin sind, bekommst du die letzten natürlich nicht angezeigt.

    Lass mal zu Testen einfach die LIMIT Klausel bei der SQL Abfrage weg.
    mfg
    Günni


    Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
    Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
    Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
    City-Tiger - Online durch die Straßen tigern...

    Kommentar


    • #3
      abfrage geht

      Die Abfrage geht von 0 - 22 somit müsster er bei DESC von ganz hinten anfangen macht er ja auch nur der letzte Satz wird eben nicht mit ausgelesen die Abfrage ohne die Var. heißt ja LIMIT(0,22) von Datensatz 0 bis Datensatz 22 DESC von hinten. aber es geht nicht so wie es soll. Bei (1,22) macht er übrigends genau das selbe. Nur wenn die Zahl höher dann fängt er bei der Zahl vor Komma an allerding wieder nur 21 Sätze und der letzte fehlt wieder.
      Also 22,22 und er ließt Satz 23 bis Satz 44.
      Oder 0,22 und er ließt Satz 1 bis Satz 22
      Oder 1,22 und er ließt Satz 1 bis Satz 22

      ist doch komisch oder
      Tschau T Olli2

      Kommentar


      • #4
        ohne LIMIT

        ließt er natürlich alle aus, aber das ist ja nicht gewollt. Ich möchte eine Seitenweise Ausgabe.
        Tschau T Olli2

        Kommentar


        • #5
          Klappt es mitlehrweile???
          mfg
          Günni


          Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
          Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
          Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
          City-Tiger - Online durch die Straßen tigern...

          Kommentar


          • #6
            nein

            es geht noch nicht, ich hatte erst mal php auf den neusten Stand gebracht. Von dem wie es geschrieben geht sollte es allerdings genau so funktionieren, was es nicht macht. Ich habe da im Moment keine Idee wie. Es ist zwar bis jetzt bei dieser Seite nicht so dramatisch aber vom Prinzip interessiert es mich schon warum er den Satz einfach wegläßt.
            Ich kann ja noch mal die Schleife Posten aber ich glaube ehr es liegt an der Abfrage.

            PHP-Code:
            <?while($row = mysql_fetch_object($ergebnis)){ ?>

            Abfragen in einer Tabelle z.B.:
            <td align="center" width="120"><font size="1" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular"><?php echo $row->i_date_time?> </font></td>
            dann das ende der Schleife
            <?php ?>
            Zuletzt geändert von TOlli2; 21.02.2003, 00:11.
            Tschau T Olli2

            Kommentar


            • #7
              Lass dir mal vor dem SQL Select die Variable $ausgabe_von ausgeben...

              PHP-Code:
              if ($next == 'next'$ausgabe_von $ausgabe_von+$ausgabe_zeilen;
              if (
              $next == 'back'$ausgabe_von $ausgabe_von-$ausgabe_zeilen;

              // Selbe Abfrage wie oben, könntest du auch in einer machen...
              if ($next == 'next'$ausgabe_bis $ausgabe_bis+$ausgabe_zeilen;
              if (
              $next == 'back'$ausgabe_bis $ausgabe_bis-$ausgabe_zeilen
              PHP-Code:
              echo $ausgabe_von;
              $abfrage "SELECT * FROM ip ORDER BY $sort DESC LIMIT $ausgabe_von$ausgabe_zeilen"
              mfg
              Günni


              Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
              Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
              Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
              City-Tiger - Online durch die Straßen tigern...

              Kommentar


              • #8
                die ausgabe ist 0

                NUL also 0 oder was man da auch imme schreibt damit die Antowrt nicht so kurz ist
                Tschau T Olli2

                Kommentar


                • #9
                  Kannst du mal die Dateien in eine ZIP File machen und hochladen. Dann kann man dies mal selber testen. Wenn möglich mit DB Datenstruktur und ein paar Beispieldaten.
                  mfg
                  Günni


                  Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
                  Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
                  Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
                  City-Tiger - Online durch die Straßen tigern...

                  Kommentar


                  • #10
                    oh ich würde wirklich gerne

                    leider ist das noch nicht frei und ich bin daran gebunden.
                    Aber ich habe noch mal mit dem Counter Script getestet Also, das hatte ich noch nicht und der selbe Fehler tritt dort auch auf.
                    Also

                    Datenbank enthällt Satz 1 -50
                    sortierte Ausgabe nach $c_id
                    Ergebnis Satz 2-50

                    sortierte Ausgabe nach $c_seiten_namen
                    Ergebnis Satz erster Satz von a fehlt aber diesmal kommt satz 1

                    sortierte Ausgabe nach $c_count
                    Ergebnis Sätze sortiert nach der Aufrufanzahl allerdings kommt der letzte der eine 1, also ein mal nur aufgerufen wurde(Counter) nicht (fehlt)

                    wie Du sieht ist es immer das gleiche Muster.
                    Ich denke den autocounter kann ich ja mal posten das ist nicht so kritisch

                    PHP-Code:
                    <?php
                    session_start
                    ();
                    include (
                    'xcfg.php');
                    include (
                    'cschutz.php');
                    $db mysql_connect ($datenbankserver$datenbankbenutzer$datenbankkennwort) or die ("Keine Verbindung moeglich");
                    //Navigationsprotokoll
                    $seitenname="Counter Darstellung";
                    include(
                    "navprot_inc.php");

                    //Navigationsprotokoll
                    if (!($session_user_rechte_privat==OR $session_user_rechte_privat==OR $session_user_rechte_privat==2))
                             {
                    //Navigationsprotokoll
                    $seitenname="Counter Darstellung - Abbruch keine Rechte!";
                    include(
                    "navprot_inc.php");
                             }


                    if (!(
                    $session_user_rechte_privat==OR $session_user_rechte_privat==OR $session_user_rechte_privat==2))  header ("Location: navigation.php");
                    $db mysql_connect ($datenbankserver$datenbankbenutzer$datenbankkennwort) or die ("Keine Verbindung moeglich");
                    mysql_select_db($datenbankname$db) or die ("Die Datenbank existiert nicht");
                    if (!isset(
                    $sort)) $sort "c_count";
                    $abfrage "SELECT * FROM counter ORDER BY $sort";
                    $ergebnis mysql_query($abfrage);
                    $row mysql_fetch_object($ergebnis);
                    ?>
                    <html>

                            <head>
                                    <title>Sternenkarte X&sup2; Universum - Conter</title>
                                    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
                                    <link rel="stylesheet" type="text/css" href="universum.css">
                            </head>
                                    <body bgcolor="#000000" text="white" link="white" alink="red" vlink="#dcdcdc" background="images/bgstars.gif" leftmargin="0" marginwidth="0" topmargin="0" marginheight="0">
                                    <div align="left">
                                            <table border="1" cellpadding="2" cellspacing="2" width="98%" bgcolor="#696969">
                                                            <caption><font face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular"><b>Counter X&sup2; Universum</b></font></caption>
                                                            <tr>
                                                                    <td align="center"><font face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular" size="2"><i><b><a href="counter.php?sort=c_id" target="_self" title="Counter nach ID sortieren">ID</a></b></i></font></td>
                                                                    <td align="center"><font face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular" size="2"><i><b><a href="counter.php?sort=c_seiten_name" target="_self" title="Counter nach Seitennamen sortieren">Seitenname</a></b></i></font></td>
                                                                    <td align="center"><font face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular" size="2"><i><b><a href="counter.php?sort=c_count" target="_self" title="Counter nach Counter Sortieren">Anzahl der Aufrufe</a></b></i></font></td>
                                                            </tr>
                                                            <tr><?while($row = mysql_fetch_object($ergebnis)){ ?>
                                                                    <td align="right"><font face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular" size="1"><?php echo $row->c_id?></font></td>
                                                                    <td align="left"><font face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular" size="1"><?php echo $row->c_seiten_name?></font></td>
                                                                    <td align="right">
                                                                    <div align="left">
                                                                            <font face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular" size="1"><?php echo $row->c_count?></font></div>
                                                            </td>
                                                            </tr><?php ?>
                                                    </table>
                                    </div>
                                    <div align="center">
                                            <p><font face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular" size="2">zum sortieren auf den Spaltennamen klicken<br>
                                                            <?php if($session_user_rechte_privat==9){?><a href="navprot.php" target="_self">User Navigations Prototokoll ansehen</a></font></p><?php }?>
                                    </div>
                            </body>

                            </noframes>

                    </html>
                    Tschau T Olli2

                    Kommentar


                    • #11
                      Das ist natürlich verständlich. Finde den Fehler im Script leider nicht...
                      mfg
                      Günni


                      Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
                      Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
                      Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
                      City-Tiger - Online durch die Straßen tigern...

                      Kommentar


                      • #12
                        noch ein kleines Prob

                        Ich hatte doch PHP auf die 4.3.0. Upgedatet.
                        Vorher hatte ich 4.1.0 , ich dachte mit dem Update kann ich das Sortierproblem beheben, allerding hatte sich eine neues Eingestellt.
                        Ich kann das leider nicht mehr reproduzieren, da ich jetzt die alte Version wieder drauf habe.

                        Wenn ich Bedingungen mit Variabel geprüft habe um dann an einen "header" weiterzuleiten, werden im IE 1. ein haufen Fehler der gesammten Seite angezeigt und 2. der gesammte Head vom Protokoll mit am IE angezeigt.
                        Es sind dann Sachen zu sehen wie Chachcontrol und Servername/Version Protokollversionen, php-versionen, na so zeimlich alles was da nicht reingehört.
                        Wenn ich dann mit F5 aktualisiere geht alles.
                        Ist bei Header in der php.ini etwas bestimmtes zu beachten. Die Maschine ist ein XP.
                        Tschau T Olli2

                        Kommentar

                        Lädt...
                        X