Ankündigung

Einklappen
Keine Ankündigung bisher.

Ausgabeergebnisse durchnumerieren

Einklappen

Neue Werbung 2019

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

  • Ausgabeergebnisse durchnumerieren

    Ich bin nicht sicher, ob es ein PHP oder HTML-Prob ist.
    Ich habe folgende Ausgabe einer Tabelle:

    Code:
    // Fahrzeugtypen anzeigen
    while ($row = mysql_fetch_array($krantyp)) {
      	echo 	'<tr><td class="cellb">
    1. </td><td class="cellb">' . $row['herstname'];'</td>'; echo '<td class="cellb">'. $row['artname'];'</td>'; echo '<td class="cellb">'. $row['typename'];'</td>'; if($row['datenblatt']==1) echo'<td class="cellb"><a href="mailto:email?subject=BittesendenSieunsdasDatenblatt f&uuml;rden $email = typename $email">Datenblatt</a></td>'; if($row['datenblatt']==0) echo'<td></td>'; echo '<td class="cellb" align="center">'. $row['typecap'].' to</td>'; echo '<td class="cellb">auf '. $row['typecapm'].' m</td>'; echo '<td class="cellb">' . $row['maxballast'].' to</td>'; echo '<td class="cellb">' . $row['typeaxle'];'</td>'; echo '<td class="cellb">' . $row['hauptausleger'].' m</td>'; echo '<td class="cellb">' . $row['klappspitze'].' m</td>'; echo '<td class="cellb">' . $row['festanbau'].' m</td>'; echo '<td class="cellb">' . $row['wippe'].' m</td>'; echo '<td class="cellb">' . $row['superlift'];'</td></tr>'; } ?> </table>

    Mit dem[list=1] und[*] wollte ich die ausgegebenen Ergebnisse mit einer laufenden Nummer versehen. Bekomme aber vor jeder Zeile nur die Nummer "1". Wo ist mein Fehler, bzw gibt es in PHP eine Funktion, die die laufende Numerierung durchführen kann?


  • #2
    Du fängst für jedes Element eine neue Liste an. Das öffnende und schließende ol-Tag gehört außerhalb der while-Schleife.

    Kommentar


    • #3
      echo '<tr><td class="cellb">[list=1][*]</td><td class="cellb">'
      Mal aufgedröselt
      Code:
      <tr>
      	<td class="cellb">
      		[list=1]
      			[*]
      	</td>
      	<td class="cellb">
      das sind schonmal zwei Verschachtelungsfehler gleich am Anfang des Code.
      Weiter habe ich mir das nicht angesehen.

      Kommentar


      • #4
        ... bzw gibt es in PHP eine Funktion, die die laufende Numerierung durchführen kann?

        Kommentar


        • #5
          Zitat von Carsitsch
          ... bzw gibt es in PHP eine Funktion, die die laufende Numerierung durchführen kann?
          kannst ja ne FOR schleife machen, und so durchnummerieren, aber dein Problem könnte man ja ganz einfach mit HTML lösen (habs nicht ganz durchgelesen)
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            Korrigier erstmal die HTML Fehler. Wenns dann immernoch nicht geht, kannst du eine Variable benutzen und hochzählen.

            Kommentar


            • #7
              So, die ol's sind jetzt außerhalb der while-schleife, und die li's am Anfang und Ende der tr's.

              Code:
              '
              1. '; while ($row = mysql_fetch_array($krantyp)) { echo '<tr><td class="cellb">
              2. </td><td class="cellb">' . $row['herstname'];'</td>'; ..... echo '<td class="cellb">' . $row['superlift'];'</td></tr>'; } ?>
              </table>

              Jetzt bekomme ich aber keine Numerierung, sondern nur einen Punkt (wie für eine ul ...)

              Kommentar


              • #8
                bzw gibt es in PHP eine Funktion, die die laufende Numerierung durchführen kann?
                Hmmm, $i++ z.B. und dann echo $i; oder wie oder was ...

                Kommentar


                • #9
                  Code:
                  '
                  1. '; while ($row = mysql_fetch_array($krantyp)) { echo '<tr><td class="cellb">
                  2. </td><td class="cellb">' . $row['herstname'];'</td>'; ..... echo '<td class="cellb">' . $row['superlift'];'</td></tr>'; } ?>
                  </table>
                  Drösel das mal bitte auf. Nimm einfach an, die while-Schleife läuft einmal mit irgendwelchen Daten durch. Was für eine HTML-Struktur bekommst Du dann? Was soll das denn darstellen?

                  Code:
                  <table>
                  	[list=1]
                  		<tr>
                  			<td class="cellb">
                  				[*]
                  			</td>

                  Kommentar


                  • #10
                    Sorry Bruchpilot, aber ich stehe da total auf der Leitung (und ich weiß leider nicht mit welchem Fuß ... )

                    Das ganze soll nur eine schlichte Tabelle werden, s. Screenshot

                    http://www.crane-forum.com/Pics/FL-Screenshot.jpg

                    Vor jeder Zeile soll die laufende Nummer des Datensatzes stehen, anstatt des schwarzen Punktes.

                    Also wird es ja zumindest schon mal als Liste ausgegeben .... Aber warum keine Zahlen??

                    der AufaufdemSchlauchsteher

                    Kommentar


                    • #11
                      Zitat von Carsitsch
                      Vor jeder Zeile soll die laufende Nummer des Datensatzes stehen, anstatt des schwarzen Punktes.
                      Da zwischen ol und li noch tr- und td-Tags stehen, wird nicht erkannt, dass es sich hier um Punkte einer geordneten Liste handeln soll.
                      In deinem Beispiel macht eine Liste vom logischen Aufbau der Seite her eigentlich keinen Sinn. Hier handelt es sich um eine tabellarische Darstellung, die besser mit einer Tabelle abgebildet wird. Um trotzdem eine entsprechende Nummerierung zu erreichen, erhöhst du bei jedem Durchlauf der Schleife eine Variable um 1 und gibst sie aus:
                      PHP-Code:
                      <?php
                          $i 
                      0;
                          while(
                      $row mysql_fetch_assoc($result)) {
                              
                      printf('<tr><td>%d</td><td>%s</td></tr>', ++$i$row['herstname']);
                          }
                      ?>

                      Kommentar


                      • #12
                        Jetzt funzt es!! Und wieder mal

                        D A N K E !!

                        Kommentar

                        Lädt...
                        X