php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 12-09-2003, 15:24
mrwhorf
 Junior Member
Links : Onlinestatus : mrwhorf ist offline
Registriert seit: Jun 2002
Ort: München
Beiträge: 119
mrwhorf ist zur Zeit noch ein unbeschriebenes Blatt
mrwhorf eine Nachricht über Yahoo! schicken
Question printf() macht Probleme

Hi,

ich lasse die Daten, die ich aus einer DB ausgelesen habe, in einer Tabelle ausgeben.

Nun mein Prob:
Solange maximal 179 Treffer gefunden werden, funktioniert es auch anstandslos.
Aber ab 180 Treffer kommt die bekannte Meldung "printf(): too few arguments in ...".

So sieht der Code aus:
PHP-Code:
$sql "SELECT ingredients_id, ingredients_name FROM ingredients_name WHERE language='de' ORDER BY ingredients_name LIMIT 0,180";
$query mysql_query($sql);
while (
$result mysql_fetch_array($query)) {
    
$line++;
    
printf ("<tr class=\"row%s\">\n
            <td width=\"20\" class=\"Verd11B\">" 
$line "</td>\n
            <td class=\"Verd11\">" 
$result[ingredients_name] . "</td>\n
            <td width=\"20\" class=\"Verd11\" align=\"center\">
            <a href=\"fr_main.php?subject=" 
$subject "&action=detail&iid=" $result[ingredients_id] . "\">
            <img src=\"../../img/buttons/button_select.png\" width=\"14\" height=\"13\" alt=\"" 
A_INGREDIENTS_DETAIL "\" border=\"0\">
            </a></td>\n
            <td width=\"20\" class=\"Verd11\" align=\"center\">
            <img src=\"../../img/buttons/button_edit.png\" width=\"12\" height=\"13\" alt=\"" 
A_INGREDIENTS_EDIT "\" border=\"0\">
            </td>\n
            <td width=\"20\" class=\"Verd11\" align=\"center\"><a href=\"fr_main.php?subject=" 
$subject "&action=" $action "&UserDrop=Yes\">
            <img src=\"../../img/buttons/button_drop.png\" width=\"11\" height=\"13\" alt=\"" 
A_INGREDIENTS_DROP "\" border=\"0\">
            </a>
            </td>
            </tr>"
$line 2);

Habe ich da irgendwo einen Fehler drin?
Ich habe schon fast alles probiert, bin aber so langsam mit meinem Latein am Ende.

Danke für eure Hilfe!

Greetz
mrwhorf
__________________
if ($getraenk=="kein kaffee mehr da" && $verlangen=="gross") { $arbeitsmoral="im keller"; }
Mit Zitat antworten
  #2 (permalink)  
Alt 12-09-2003, 15:35
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

was passiert bei 170?
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 12-09-2003, 15:37
mrwhorf
 Junior Member
Links : Onlinestatus : mrwhorf ist offline
Registriert seit: Jun 2002
Ort: München
Beiträge: 119
mrwhorf ist zur Zeit noch ein unbeschriebenes Blatt
mrwhorf eine Nachricht über Yahoo! schicken
Standard

Bis zum Datensatz #179 läuft seltsamerweise alles normal.
Die Meldung kommt eben erst, sobald 180 oder mehr Datensätze gefunden werden.
Und das verstehe ich nun überhaupt nicht!
__________________
if ($getraenk=="kein kaffee mehr da" && $verlangen=="gross") { $arbeitsmoral="im keller"; }
Mit Zitat antworten
  #4 (permalink)  
Alt 12-09-2003, 15:42
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

hmm... da muss ich wohl auch was übersehen. warum nutzt du printf?
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #5 (permalink)  
Alt 12-09-2003, 15:45
microsoftgegner
 Newbie
Links : Onlinestatus : microsoftgegner ist offline
Registriert seit: Sep 2003
Beiträge: 43
microsoftgegner ist zur Zeit noch ein unbeschriebenes Blatt
Standard

versuche entweder das ganze mit
Code:
echo
oder eine weitere fehlerquelle kann die zeitl. beschränkung der ausführzeit von scripten sein (standard 30 sek.). Ich glaube mit socket_set_timeout() müsstest du die Zeitspanne verlängern können.
vielleicht funzt es ja dann
__________________
~Micro$oft®-Gegner~
Mit Zitat antworten
  #6 (permalink)  
Alt 12-09-2003, 15:47
mrwhorf
 Junior Member
Links : Onlinestatus : mrwhorf ist offline
Registriert seit: Jun 2002
Ort: München
Beiträge: 119
mrwhorf ist zur Zeit noch ein unbeschriebenes Blatt
mrwhorf eine Nachricht über Yahoo! schicken
Standard

Das printf() benutze ich, um die Zeilen abwechselnd in verschiedenen Farben darzustellen.

Für die Zeile: <tr class=\"row%s\">
Und als Argument: $line % 2

@microsoftgegner
Mit echo bekomme ich die Zeilen allerdings leider nicht in verschiedenen Farben angzeigt.
An der Laufzeit kann es auch nicht liegen, da das ganze lokal läuft und das Ergebnis innerhalb von 2 Sekunden da ist.
__________________
if ($getraenk=="kein kaffee mehr da" && $verlangen=="gross") { $arbeitsmoral="im keller"; }

Geändert von mrwhorf (12-09-2003 um 15:49 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 12-09-2003, 15:48
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

ich denke/hoffe mal printf ist nicht grundlos eingesetzt worden...

Zitat:
oder eine weitere fehlerquelle kann die zeitl. beschränkung der ausführzeit von scripten sein (standard 30 sek.). Ich glaube mit socket_set_timeout() müsstest du die Zeitspanne verlängern können.
Das wird mit sicherheit anders angezeigt!
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #8 (permalink)  
Alt 12-09-2003, 15:53
mrwhorf
 Junior Member
Links : Onlinestatus : mrwhorf ist offline
Registriert seit: Jun 2002
Ort: München
Beiträge: 119
mrwhorf ist zur Zeit noch ein unbeschriebenes Blatt
mrwhorf eine Nachricht über Yahoo! schicken
Standard

Das Seltsame ist ja, dass die Meldung erst kommt, wenn mehr als 179 Treffer gefunden werden.

Wenn ich das LIMIT auf 170 oder einen beliebigen niedrigeren Wert setze, funktioniert seltsamerweise alles.
__________________
if ($getraenk=="kein kaffee mehr da" && $verlangen=="gross") { $arbeitsmoral="im keller"; }
Mit Zitat antworten
  #9 (permalink)  
Alt 12-09-2003, 15:55
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

dann mach mal

LIMIT 10, 180 oder sowas...

EDIT:
kann da jetzt keinen fehler sehen. frage mich nur, warum du das mit printf() machst. ich glaube das ist für sowas nicht das schnellste.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #10 (permalink)  
Alt 12-09-2003, 16:06
mrwhorf
 Junior Member
Links : Onlinestatus : mrwhorf ist offline
Registriert seit: Jun 2002
Ort: München
Beiträge: 119
mrwhorf ist zur Zeit noch ein unbeschriebenes Blatt
mrwhorf eine Nachricht über Yahoo! schicken
Standard

Das nächste Phänomen!

Wenn ich den Startwert für das LIMIT höher als 9 setze, kommt wieder die Fehlermeldung, unabhängig vom zweiten Wert.

Um Tabellenzeilen abwechselnd farbig darstellen zu können, ist mir jetzt nur diese Möglichkeit bekannt.
Gibt's noch andere? Vielleicht elegantere?
Bin da für alles offen.
Das würde dann vielleicht auch mein Prob beheben.

Korrektur:
Wird der Startwert von LIMIT auf 10 gesetzt, kann ich als zweiten Wert nur noch max. 169 angeben. Bei einem Startwert von 20 nur noch 159, Startwert 30 => 149, usw.
Sodass beide Werte in der Summe 179 nicht überschreiten dürfen.

Kann es vielleicht sein, dass ich da an einem kleinen Bug scheitere?

Mein System:
RedHat 9.0
Apache 2.0
PHP 4.2.2
MySQL 3.23.54
__________________
if ($getraenk=="kein kaffee mehr da" && $verlangen=="gross") { $arbeitsmoral="im keller"; }

Geändert von mrwhorf (12-09-2003 um 16:40 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 12-09-2003, 16:38
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

taucht vielleicht irgendwo in deinen datensätzen in %-zeichen auf?

da du die daten direkt in den formatstring von printf einfügst, müsste es dies dann m.e. als weiteren parameter betrachten.


btw: warum brauchst du dafür überhaupt prinftf? ein einfaches echo sollte doch ein wert der zwischen 0 und 1 alterniert ebenso gut ausgeben können,
PHP-Code:
$line++;
$line $line 2;
echo 
"<tr class=\"row".$line."\">\n"
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #12 (permalink)  
Alt 12-09-2003, 16:52
mrwhorf
 Junior Member
Links : Onlinestatus : mrwhorf ist offline
Registriert seit: Jun 2002
Ort: München
Beiträge: 119
mrwhorf ist zur Zeit noch ein unbeschriebenes Blatt
mrwhorf eine Nachricht über Yahoo! schicken
Standard

@wahsaga

Ein %-Zeichen in den Datensätzen scheidet definitiv aus. Daran kann es also nicht liegen.

Die Ausgabe mit "echo" werde ich gleich mal testen.

Ausserdem habe ich das Phänomen entdeckt, dass die Summe von Startwert und Anzahl der Treffer in der LIMIT-Anweisung 179 nicht übersteigen darf, sonst kommt die Meldung mit "printf(): too..."

Das Problem wird sich wohl eh beheben. wenn ich eine Blätterfunktion einbaue und auf jeder Seite nur n Datensätze anzeige.
Alle Datensätze auf einer Seite ist IMHO sowieso keine gute Lösung.

Ich bin auf dieses Problem auch nur zufällig gestossen und wollte wissen ob ich da irgendwo einen Fehler gemacht habe.
Ansonsten hätte es mich ewig genervt, nicht zu wissen, ob da evtl. ein Fehler meinerseits drin ist.

Edit:
Dank an wahsaga!!!
Die Ausgabe mit "echo" funzt prima und es kann jetzt auch keine Fehlermeldung wegen printf() mehr kommen.


Trotzdem würde es mich immer noch interessieren, ob das ein Bug ist.
__________________
if ($getraenk=="kein kaffee mehr da" && $verlangen=="gross") { $arbeitsmoral="im keller"; }

Geändert von mrwhorf (12-09-2003 um 16:57 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:35 Uhr.