Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > while - ausgabe nur bis zum vorletzten
Antwort
 
Themen-Optionen
Alt 12.09.2005, 14:24   Nach oben    #1
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 219
Standard while - ausgabe nur bis zum vorletzten

Hallo,

suche gerade nach einer schlanken und schöneren Methode um in
einer schleife was anzuhängen bis auf das letzte Element des Arrays.

So sieht das bislang aus:

PHP-Code:
<?php

/* ... */
$count count($res);
while (
$itm mysql_fetch_object($res)) {
    --
$count;
    
$var .= 'bla'..'bla';
    if (
$count >= 1
        
$var .= '<br>'/* Es geht um diesen Zeilenumbruch */
}
/* ... */

?>
Finde das unschön so viele Zeilen nur für das bischen extra da.
Wie setzt ihr so etwas um ?
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2005, 14:40   Nach oben    #2
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard while - ausgabe nur bis zum vorletzten

Gegenfrage: Warum selektierst du den letzten Datensatz, wenn du ihn dann doch nicht ausgeben willst?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2005, 14:44   Nach oben    #3
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 219
Standard while - ausgabe nur bis zum vorletzten

Hast ja recht ... gut ging mir aber grad nicht darum sondern nur
es schöner zu machen das alle sätze ein zB. <br> hinten haben nur der
letzte nicht.

PHP-Code:
<?php

/* ... */ 
$count count($res); 
while (
$itm mysql_fetch_object($res)) { 
    --
$count
    
$var .= $itm->name.'-blabla'
    if (
$count >= 1
        
$var .= '<br>'/* Es geht um diesen Zeilenumbruch */ 

/* ... */ 

?>
So besser !?

Ich weis wieder so ein unnötiges Ding aber da brüt ich grad drüber ob
des auch schöner geht ...

Öh ... oder verstehe ich grad die Frage nicht ?!
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2005, 14:45   Nach oben    #4
RaZoR
Gast
 
Beiträge: n/a
Standard while - ausgabe nur bis zum vorletzten

Er gibt ja den letzten Eintrag aus allerdings möchte er keinen Zeilenumbruch darunter.

Also ich machs übers Templatesystem aber ansonsten mach ichs so:

PHP-Code:
<?php
$i 
0;
$end count($array);
while ( ... 
$array) {
  
$i++;

  ...

  if (
$end != $i) echo '<br />';
}
?>
auch wenn diese methode nicht viel anders ist als deine
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2005, 14:49   Nach oben    #5
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 219
Standard while - ausgabe nur bis zum vorletzten

Hmmm...

Zitat:
Also ich machs übers Templatesystem
*denk* ... werd meins hier mal um schleifen erweitern, fand das bislang
nur zu komplex. Zumidnest wenn schleifen in schleifen laufen ...

*grübel* aber gut wird wohl das beste sein das noch mit ins Template
aufzunhemen ... auch wenn es komlex wird muss ja dann noch mehr
mitgeben ... *grübel*


Edit
So habe das jetzt mal so gemacht ...

PHP-Code:
<?php

/* ... */ 
$i 0;
while (
$itm mysql_fetch_object($res)) { 
    
$var .= $itm->name.'-blabla'
    if (
mysql_num_rows($res) > ++$i
        
$var .= '<br>'

/* ... */ 

?>
hmm naja auch nicht sehr schön ...
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2005, 15:46   Nach oben    #6
Benutzer
 
Benutzerbild von Guradia
 
Registriert seit: 18.08.2005
Ort: Düsseldorf
Beiträge: 57
Standard Re: while - ausgabe nur bis zum vorletzten

Ein wenig Phantasie, die Herren, das geht das ganz schnuckelig einfach:

PHP-Code:
<?php

/* ... */
$Html null;
while (
$itm mysql_fetch_object($res)) {
    if (
is_null($Html))
        
$Html .= '<br />';
    
$Html .= 'bla'..'bla';
}
$var .= $Html;
/* ... */

?>
Hier ist die Logik einfach umgedreht, nicht der letze wird besonders behandelt, sonder der erste ... viel simpler ^^
Guradia ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2005, 16:15   Nach oben    #7
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 219
Standard while - ausgabe nur bis zum vorletzten

Sehr schön ! ... Das ist eine feine Variante ...

Jetzt habe ich nur ein Problem wie drehe ich das um -> gar ned !

Aber werde mir das mal merken, ist echt fein !
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2005, 19:02   Nach oben    #8
Erfahrener Benutzer
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard while - ausgabe nur bis zum vorletzten

Zitat:
Jetzt habe ich nur ein Problem wie drehe ich das um -> gar ned !
In ein Array und dann http://de3.php.net/array_reverse
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2005, 22:48   Nach oben    #9
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 219
Standard while - ausgabe nur bis zum vorletzten

Japp dann habe ich aber wieder gleich viel Codezeilen sehe schon das es
nicht wirklich schlanker geht aber gut ... schade.
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.09.2005, 06:06   Nach oben    #10
Erfahrener Benutzer
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

Oder - selektierst du die Datensätze aus der MySQL-Datenbank? Hast du dort eine ORDER BY - Klausel? Dann kannst du ja MySQL die Datensätze sortieren lassen (DESC bzw. ASC) ..
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.09.2005, 10:14   Nach oben    #11
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 219
Standard

Naja aber was soll mir das bringen wenn ich schon vorher sortiere, sprich egal
wie ich Sortiere es muss der letzte sein von daher wird wohl nur das helfen
wenn es schön schlank sein soll.
Fragt sich nur was die Laufzeiten zu dem mysql_num_rows() sagen ...

PHP-Code:
/* ... */ 
$i 0;
while (
$itm mysql_fetch_object($res)) { 
    
$var .= $itm->name.'-blabla'
    if (
mysql_num_rows($res) > ++$i
        
$var .= '<br>'

/* ... */ 
Und das von Guradia ist auch nicht schlecht wenn es um den ersten geht.

PHP-Code:
/* ... */
$Html null;
while (
$itm mysql_fetch_object($res)) {
    if (
is_null($Html))
        
$Html .= '<br />';
    
$Html .= 'bla'..'bla';
}
$var .= $Html;
/* ... */ 
Soweit denke ich ist das Thema gelöst, ausser es kommt doch noch einer
auf etwas kürzeres
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.09.2005, 16:18   Nach oben    #12
Neuer Benutzer
 
Registriert seit: 05.09.2005
Beiträge: 21
Standard

Du hänst das doch immer 'dran.
Warum schneidest du dann die vier Zeichen vom <br> nicht (nach Beendigung der Schleife) mit substr() wieder ab?
Müsste besser lesbar sein als sowas hier.
Grollicus ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.09.2005, 16:39   Nach oben    #13
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 219
Standard

sehr gut ... die einfachsten sachen man muss nur draufkommen ...

PHP-Code:
$var substr($var,0,strlen($var)-4); 
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.09.2005, 17:00   Nach oben    #14
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.225
Standard

du kannst das auch jeweils in ein array schreiben und anschl. die Elemente des arrays mit < br/> verbinden...

PHP-Code:
while(TRUE)
  
$arr[] = 'blablalba';

$zusammen implode("<br />"$arr); 
echo 
$zusammen
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.09.2005, 17:01   Nach oben    #15
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 219
Standard

Das gefällt mir fast noch besser !
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 20.09.2005, 13:16   Nach oben    #16
Neuer Benutzer
 
Benutzerbild von Suendesizer
 
Registriert seit: 06.04.2005
Beiträge: 22
Standard

Auch was ganz nettes: die Funktion next().
__________________
If you read this message backward, Satan will force you to smoke marijuana.
Suendesizer ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


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

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 Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
24 Tage bis BITV robo47 Interessante Diskussionsthemen 20 13.12.2005 21:53
Chat - Ausgabe bricht ab Chr!s PHP-Programmierung 12 05.10.2005 22:47
\n \r in der Ausgabe bob PHP-Programmierung 9 05.10.2005 09:42
Von Do. bis Mo. in Urlaub - Stockholm ruft Ben Plauderecke 26 29.08.2005 13:20
Programmablauf bis Unterbrechung? Nightsky Allgemeine Java-Programmierung 8 15.09.2004 12:48


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:55 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44