andere darstellung beim letzten datensatz
paul
- php
0 bleicher0 Klawischnigg0
Gunnar Bittersmann
0 Steel0 EKKi
hallo,
ich habe eine abfrage aus einer mySql-db mit while-schleife.
nun möchte ich für den letzten datensatz der abfrage eine andere (html-) ausgabe erzeugen. sagen wir mal z.b. 6 datensätze: 5x <div id="div_1"> ind beim sechsten und letzten <div id="div_2">.
wie kann ich das erreichen??
danke und lg
paul
Grüße,
wie kann ich das erreichen??
stopp die schleife eins davor und gib den letzten datensatz getrennt aus?
MFG
bleicher
Hi there,
ich habe eine abfrage aus einer mySql-db mit while-schleife.
nun möchte ich für den letzten datensatz der abfrage eine andere (html-) ausgabe erzeugen.
Müsstest Du halt wissen, was der letzte Datensatz ist;)
Ernsthaft:
Du stellst zB mit mysql_num_rows($ressource) fest, wieviel Sätze Deine Abfrage ergibt und stellst anhand eines Zählers fest, wann der letzte Satz erreicht ist.
sagen wir mal z.b. 6 datensätze: 5x <div id="div_1"> ind beim sechsten und letzten <div id="div_2">.
so gehts nicht, id-Bezeichner dürfen pro Seite/Dokument nur einmal vorkommen. Eine Möglichkeit wäre <div class="blabla1"> und <div class="blabla2">, wobei sich die Frage aufdrängt, ob es erstens keine bessere Auszeichnung für Deinen Datensatz gibt als ein nichtssagendes DIV und zweitens es keine besseren Bezeichnernamen gibt als einfach durchnummerierte Klassennamen...
Grüße,
Variablennamen sollen Bedeutung haben:
Variablennamemitbedeutung_1
Variablennamemitbedeutung_2
Variablennamemitbedeutung_3
Variablennamemitbedeutung_4
MFG
bleicher
Hi,
Variablennamen sollen Bedeutung haben:
Variablennamemitbedeutung_1
Variablennamemitbedeutung_2
Variablennamemitbedeutung_3
Variablennamemitbedeutung_4
"Durchnummerierung" von Variablennamen deutet in > 99,9% der Fälle darauf hin, dass die Verwendung einer Array-Datenstruktur stattdessen angebracht wäre.
MfG ChrisB
@@paul:
nuqneH
5x <div id="div_1">
Dass du nicht 5× dieselbe ID vergeben darfst, hat Klawischnigg ja schon erwähnt.
Übrigens hören sich mehrere gleichartige Datensätze stark nach einer Auflistung an. Also bitteschön eine Liste:
<ol>
<?php [code lang=php]while (…) echo '[code lang=html]<li>
~~~' . … . '`</li>`{:.language-html}';[/code] ?>
</ol>[/code]
> beim sechsten und letzten <div id="div\_2">.
> wie kann ich das erreichen??
Die Frage ist: Warum willst du das erreichen?
Wenn du das letzte Item der Liste anders darstellen willst, brauchst du das Backend keine Unterscheidung generieren lassen; das kann CSS mit der Pseudoklasse '`:last-child`{:.language-css}'. [[CSS3-SELECTORS](http://www.w3.org/TR/css3-selectors/#last-child-pseudo)]
Qapla'
--
Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
Hi,
Wenn du das letzte Item der Liste anders darstellen willst, brauchst du das Backend keine Unterscheidung generieren lassen; das kann CSS mit der Pseudoklasse '
:last-child'. [CSS3-SELECTORS]
Soweit mir bekannt ist IE nicht in der Lage, :last-child zu verstehen.
cu,
Andreas
@@MudGuard:
nuqneH
Soweit mir bekannt ist IE nicht in der Lage, :last-child zu verstehen.
Stimmt. Dafür versteht er CSS-Expressions. Aber nicht so notieren wie in jenem Posting angegeben, sondern so wie in diesem.
↗ Verwendung von CSS-Expressions (IE)
Qapla'
Hi!
Schon wieder eine While-Schleife, wo (meiner Meinung nach) eine For-Schleife sinnvoll waere.
Du weisst, wieviele Datensaetze Du hast. Du moechtest n-1 ausgeben und den letzten dann extra.
Hello,
Schon wieder eine While-Schleife, wo (meiner Meinung nach) eine For-Schleife sinnvoll waere.
Du weisst, wieviele Datensaetze Du hast. Du moechtest n-1 ausgeben und den letzten dann extra.
Sind denn For-Schleifen in PHP überhaupt noch schneller, oder was zeichnetr sie gegenüber While-Schliefen noch aus? Der ursprüngliche Nutzen der prozessororientierten dedizierten Schleife, in die man auch nicht eingreifen durfte, da der Zähler im Register nicht angetastet werden durfte, ist mMn in keiner Hochsprache mehr vorhanden.
Und eine While-Schleife erinnert aufgrund ihrer Bauweise und der in PHP üblichen Konventionen dafür auch immer daran, dass sie nur solange laufen darf, wie kein Fehler auftritt, unabhängig davon, ob der mitgeführte Zähler seinen Vergleichswert bereits erreicht hat.
Und wenn die Daten aus dem PHP-MySQL-API-Buffer bereits in ein Array abgeholt worden sind, dann wäre eine foreach()-Schleife sicherlich die passendere.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

Hi!
Ich nutze For-schleifen generell, wenn ich den range kenne und gleich mitzaehlen will. While-Schleifen scheinen tatsaechlich beliebter, empfinde ich aber als ein ganzes Stueck unpraktischer.
Wenn ich nicht weiss, wie lange ich was machen soll, nehm ich nen Konstrukt mit while oder aehnliches. Z.B. wenn ich ein anderes Programm steure und die Applikation wechsele, dann loope ich solange mit while bis ich einen bestimmten Menuetitel finde. Das Menue selber wird dann wieder mit for abgegrast, weil ich weiss, dass ich dort auf einer Seite maximal X Eintraege habe. Super praktisch in der Schleife Anzahl und Position gleichzeitig bestimmen zu koennen. Warum man da mit while arbeiten wollte, auch wenn man das sicher koennte, verstehe ich einfach nicht. Fuer mich ist bei sowas for die logische Konsequenz.
Umgekehrt ist es unpraktischer eine unbestimte Anzahl von Schritten mit for zu loesen.
Hi!
Umgekehrt ist es unpraktischer eine unbestimte Anzahl von Schritten mit for zu loesen.
Eine for-Schleife arbeitet genau wie eine While-Schleife bis zum Erreichen einer bestimmten Bedingung. Sie hat lediglich einen Initialisierungsteil integriert sowie und einen Teil, der nach jedem Schleifendurchlauf ausgeführt wird.
for (; $row = fetchrow(); )
Im Prinzip sind also while-Schleifen überflüssig, weil ihre Funktionalität mit nur zwei Extra-Semikolons auch mit einer for-Schleife erreicht werden kann.
Lo!
Hello,
for (; $row = fetchrow(); )
Im Prinzip sind also while-Schleifen überflüssig, weil ihre Funktionalität mit nur zwei Extra-Semikolons auch mit einer for-Schleife erreicht werden kann.
Sind sie denn nun schneller als eine While-Schleife, oder werden sie von PHP ohnehin auf die gleiche Programmstruktur abgebildet?
Dann will ich mal wieder gegenhalten, dass eine While-Schleife expliziter (sprachverwandter mit der natürlichen Sprache) deutlich macht, was man erreichen will, als die kryptische Schreibweise der For-Schleife es tut.
Vom ursprünglichen Grund für die Unterscheidung in eine dedizierte Schleife (For) und eine unbestimmte ist ja in den Hochsprachen nichts mehr vorhanden. In Pascal musste man dies noch beachten. C hat mMn schon den Abbruch einer For-Schleife geststattet bzw. sogar die Manipulation des Schleifenzählers.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

Hi!
Sind sie denn nun schneller als eine While-Schleife, oder werden sie von PHP ohnehin auf die gleiche Programmstruktur abgebildet?
Das ist mir egal, solange sich die Ausführungszeit nicht deutlich vom Grundrauschen abhebt.
Lo!
Hello,
Sind sie denn nun schneller als eine While-Schleife, oder werden sie von PHP ohnehin auf die gleiche Programmstruktur abgebildet?
Das ist mir egal, solange sich die Ausführungszeit nicht deutlich vom Grundrauschen abhebt.
Ich glaube mich zu erinnern, dass das hier schon mal jemand genauer untersucht hatte. Aber leider finde ich den Thread nicht mehr.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

Hullo!
Im Prinzip sind also while-Schleifen überflüssig, weil ihre Funktionalität mit nur zwei Extra-Semikolons auch mit einer for-Schleife erreicht werden kann.
Kommt wohl auf die Programmiersprache an. Ich werd das gleich mal in VBA testen... :)
@@Steel:
nuqneH
Schon wieder eine While-Schleife, wo (meiner Meinung nach) eine For-Schleife sinnvoll waere.
Geschmackssache. Man kann wohl jede While-Schleife auch als For-Schleife notieren und vice versa.
Du moechtest n-1 ausgeben und den letzten dann extra.
Qapla'
Mahlzeit paul,
sagen wir mal z.b. 6 datensätze: 5x <div id="div_1">
Das ist keine gute Idee - eine ID hat in HTML dokumentweit eindeutig zu sein. Du erzeugst invaliden HTML-Code.
MfG,
EKKi
@@EKKi:
nuqneH
Das ist keine gute Idee - eine ID hat in HTML dokumentweit eindeutig zu sein. Du erzeugst invaliden HTML-Code.
Und du erzeugst redundante Postings.
Das erwähnte Klawischnigg schon. Und ich erwähnte schon, dass Klawischnigg das schon erwähnte.
Qapla'