php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.03.2007, 20:52  
Gast
 
Beiträge: n/a
Standard 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 />
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.03.2007, 21:09  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

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.
KingCrunch ist offline  
Alt 25.03.2007, 21:26  
CIX88
Gast
 
Beiträge: n/a
Standard

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
 
Alt 25.03.2007, 21:35  
Gast
 
Beiträge: n/a
Standard

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....
 
Alt 25.03.2007, 21:48  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

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:
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.
KingCrunch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
HTML: DropDowns (Selects): Maximum Eintraege? SvenLittkowski HTML, Usability und Barrierefreiheit 10 10.10.2007 16:05
[Erledigt] Nicht mehr als 10 Eintraege in der Tabelle Datenbanken 7 04.10.2005 19:12
[erledigt] Abfrage langer Listen und deren Anzeige PHP Tipps 2005-2 9 26.08.2005 13:09
???User Anzeige funktioniert nicht??? PHP Tipps 2005-2 8 22.08.2005 02:40
Timestamp anzeige aus Mysql über UNIX auf php PHP Tipps 2005-2 3 03.07.2005 16:48
DIV Layer Anzeige Problem. Nach refresh korrekte Anzeige HTML, Usability und Barrierefreiheit 12 23.06.2005 14:38
Forum: Anzeige neuer Posts. eQuin PHP-Fortgeschrittene 16 24.02.2005 13:54
user-online/buddies anzeige mAy^daY PHP Tipps 2007 3 04.01.2005 10:07
Anzeige mit PHP? HTML, Usability und Barrierefreiheit 7 28.12.2004 19:33
Mediaplayer anzeige PHP Tipps 2004-2 2 30.11.2004 21:32
anzeige von neuen themen eQuin PHP-Fortgeschrittene 1 25.10.2004 08:19
[Erledigt] Chat für 2 - Brauche Anzeige ob Gegenpart online ist PHP Tipps 2004 7 05.10.2004 22:51
Quelltext anzeige geht nicht themonk Off-Topic Diskussionen 14 14.09.2004 20:22
Anzeige der Auswahl PHP Tipps 2004 3 09.09.2004 20:44
php datei begrenzt??? PHP Tipps 2004 4 19.07.2004 18:42


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:43 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.