Ankündigung

Einklappen
Keine Ankündigung bisher.

Anzeige auf 4 Eintraege begrenzt :(

Einklappen

Neue Werbung 2019

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

  • Anzeige auf 4 Eintraege begrenzt :(

    Hallo Freunde....

    Immer wenn mans nicht gebrauchen kann....
    Habe zur Zeit wenig Zeit für Reparaturen

    Dieses Script läßt nicht mehr wie 4 Einträge zu bzw. zeigt nicht mehr an (in der Datenbank stehen 5).
    CANNABINOIDS
    Wo kann der Fehler liegen?

    Weder in der Config noch in einer anderen Datei habe ich was gefunden, was das auslösen kann

    PHP-Code:
    <?PHP
      
    include("config.php");
      include(
    "db_connect.php");

      
    mysql_select_db($db_table,$db);
      
    $result mysql_query("SELECT * FROM $db_table");
      while(list(
    $id[],$time[],$date[],$headline[],$autor[],$uni[],$news[],$links[]) = mysql_fetch_row($result));
      
    $id    array_reverse($id);
      
    $time  array_reverse($time);
      
    $date  array_reverse($date);
      
    $headline  array_reverse($headline);
      
    $autor  array_reverse($autor);
      
    $uni  array_reverse($uni);
      
    $news  array_reverse($news);
      
    $links array_reverse($links);

      
    $max_num count($id);
      if(
    $max_num<$shownews)
        
    $shownews $max_num;
    echo 
    $header;

    include(
    "incl/menue.php");
    echo 
    $num;
      for(
    $i=1;$i!=$shownews;$i++){
    $num =$id[$i];
        echo 
    "

    [b]        " 
    $time[$i] . "[/b]


            <big>" 
    $headline[$i] . "</big>

            " 
    $autor[$i] . "

            "
    ;
        if(
    $links[$i]!=""){
          echo 
    $date[$i] . "[[url='short.php?id=$num']Kurzfassung[/url]]";
          
    $eachlink explode(",",$links[$i]);
          for(
    $j=0;$j<count($eachlink);$j++)
            echo 
    "[[url='" $eachlink[$j] . "']pdf[/url]]";
    echo 
    "";
    echo 
    "

    "
    ;

        }
      }
    include(
    "incl/menue_fuss.php");
    echo 
    "

    "
    ;
      echo 
    "<small>" $footer;
      include(
    "db_close.php");
    ?>
    http://<br /> <br /> Schaut bitte ...Antonius<br />


  • #2
    Ein Problem könnte sein, dass du keinerlei Struktur und Formatierung hast und deshalb quasi zwangsläufig nichts da drin wieder finden kannst.

    Wo sind die Zeileneinrückungen und/oder Leerzeilen?
    Wo sind die Kommantare?
    ...


    Und was genau ist das?
    PHP-Code:
      while(list($id[],$time[],$date[],$headline[],$autor[],$uni[],$news[],$links[]) = mysql_fetch_row($result));
      
    $id    array_reverse($id);
      
    $time  array_reverse($time);
      
    $date  array_reverse($date);
      
    $headline  array_reverse($headline);
      
    $autor  array_reverse($autor);
      
    $uni  array_reverse($uni);
      
    $news  array_reverse($news);
      
    $links array_reverse($links); 
    Nichts für ungut, aber wenn du dieses doch recht kurze Script noch mal von oben nach unten durchgehst, jede Zeile richtig einrückst, Kommentare hinzufügst usw, ich denke, du solltest dein Script noch einmal komplett grundlegend überdenken

    PS: Der Fehler wird sein, dass du die arrays bei 1 beginnst durchzuzählen, Arrays beginnen ihre Zählung allerdings (computertypisch) bei 0.
    Nicht jeder Fehler ist ein Bug.

    Kommentar


    • #3
      Was diese komisch While-Schleife soll, ist mir auch schleierhaft.
      Bei einen richtigen Query kannste einige an Scriptzeilen einsparen.

      > for($i=1;$i!=$shownews;$i++){

      Müsste das nicht so sein:
      for($i=1; $i <=$shownews; $i++){

      > include("db_close.php");
      Bei Scriptende wird die Verbindung zur DB automatisch geschlossen

      Sieht alles etwas sehr komisch aus

      Kommentar


      • #4
        Danke!!


        Die Schleife wars.....

        und wegen der Leerzeichen und Kommentare denke ich mir auch was aus...

        Werde mich bessern....


        Habe aber trotzdem viel zu tun gerade

        Danken Danke....

        Kommentar


        • #5
          Nagut, noch mal in aller Ruhe von oben nach unten.

          Die ganzen array_reverse kannste dir sparen, wenn du das SQL überlässt und ORDER BY in deiner Query verwendest. Ebenso ist ein SELECT über * etwas unschön und nicht wirklich performant. Wenn du dir nun auch noch LIMIT anschaust, kannst du dir die Abfrage in PHP nach Anzahl maximaler ... irgendwas auch sparen Insofern: Du machst eine unsortierte Abfrage über eine ganze Tabelle nur um sie hinterher zu Filtern und zu sortieren. Lass es lieber mySQL machen, der hat damit Erfahrung

          Die While-Schleife ist selbst nach mehrmaligen Überblicken völlig ... ach, weiß auch nicht Zumindest eine Schleife nur der Zuweisung willen sollte tunlichst vermieden werden. Eher üblich ist eine solche Konstruktion:
          PHP-Code:
          while ($row mysql_fetch_assoc ($result)) {
            echo 
          $row['id'] . ':' $row['text'];

          Nur um mal die grundlegende Struktur dahinter zu sehn

          Deine For-Schleife ist (wie ich scho angedeutet habe) undurchdacht. Wie CIX88 schon sagte ist die üblichere Formulierung mit $i<=$shownews, allerdings sind die beiden Varianten nicht identisch, sondern liefern zwei verschiedene Ergebnisse Und damit (mit beiden) wird immer noch nicht der Eintrag mit dem Index 0 ausgegeben (wie auch? Fängst ja bei 1 an ^^).
          PHP-Code:
          $shownews 5;

          for(
          $i=1;$i!=$shownews;$i++){
            echo 
          $i;
          }
          // Ausgabe: 1,2,3,4
          // 5 wird nicht ausgegeben, weil 5 nicht ungleich 5 ist.
          for($i=1;$i<=$shownews;$i++){
            echo 
          $i;
          }
          // Ausgabe: 1,2,3,4,5
          // 5 wird ausgegeben, weil erst 6 nicht mehr kleiner oder gleich 5 ist 
          Das mit der db_close.php find ich jetzt nicht so tragisch, aber wieso dann nicht gleich mysql_close()
          Zitat von Manual
          mysql_close() schließt die Verbindung zum MySQL-Server, die mit der angegebenen Verbindungs-Kennung verknüpft ist. Wird die Verbindungs-Kennung nicht angegeben, wird die zuletzt geöffnete Verbindung geschlossen.
          Allerdings (wie gesagt): Solange du keine persistenten Verbindungen nutzt, werden eh alle Verbindungen gesclossen, die im Laufe des Requests geöffnet wurden.
          Nicht jeder Fehler ist ein Bug.

          Kommentar

          Lädt...
          X