Jens: offset bei SELECT...LIMIT ignoriert ersten Datensatz

Hallo zusammen,

ich beschäftige mich erst seit Kurzem mit php/MySQL.
Mein Problem ist, daß bei der Ausgabe einer Datenbank der erste Datensatz "geschlabbert" wird.
Hab schon viel ausprobiert und versucht, das Problem zu lösen, komme aber nicht weiter. Die Schwierigkeit steckt, so wie ich das sehe, in der Begrenzung durch LIMIT.
Hier das script, welches ich gebastelt habe.

<table class="tbn">
<colgroup width="8%" span="12"></colgroup>
<?php $pos=0;
for ($j=0;$j<28;$j++) {
$colnam_rd1="SELECT * FROM colnam ORDER BY cn_name ASC LIMIT $pos,7";
$colnam_rd2="SELECT * FROM colnam ORDER BY cn_name ASC LIMIT $pos,7";
$result1=mysql_query($colnam_rd1);
$colrow1=mysql_fetch_array($result1);
$result2=mysql_query($colnam_rd2);
$colrow2=mysql_fetch_array($result2);
?>
<tr>
<?php while ($colrow1=mysql_fetch_array($result1)) { ?>
<td colspan="2" <?php echo "style="background:" . $colrow1['cn_code'] . """?>>
<?php echo $colrow1['cn_name'] . "<br>" . $colrow1['cn_code'] ?>
</td>
<?php ;}?>
</tr>
<tr>
<?php while ($colrow2=mysql_fetch_array($result2)) { ?>
<td <?php echo "style="background:" . $colrow2['cn_name'] . ";color:#000""?>>CSS</td>
<td <?php echo "bgcolor="" . $colrow2['cn_name'] . """?>>HTML</td>
<?php ;}?>
</tr>
<?php $pos=$pos+6;}?>
</table>

Über Hilfestellungen wäre ich sehr dankbar ;-)

  1. Halihallo Jens

    Mein Problem ist, daß bei der Ausgabe einer Datenbank der erste Datensatz "geschlabbert" wird.

    Richtig.

    Hab schon viel ausprobiert und versucht, das Problem zu lösen, komme aber nicht weiter. Die Schwierigkeit steckt, so wie ich das sehe, in der Begrenzung durch LIMIT.

    Falsch.

    Hier das script, welches ich gebastelt habe.

    Möglich ;-)

    und jetzt zum konstruktiven Part...

    for ($j=0;$j<28;$j++) {
    $colnam_rd1="SELECT * FROM colnam ORDER BY cn_name ASC LIMIT $pos,7";
    $colnam_rd2="SELECT * FROM colnam ORDER BY cn_name ASC LIMIT $pos,7";
    $result1=mysql_query($colnam_rd1);
    $colrow1=mysql_fetch_array($result1);
    $result2=mysql_query($colnam_rd2);
    $colrow2=mysql_fetch_array($result2);

    hier liest du den ersten Datensatz jeweils aus...

    <?php while ($colrow1=mysql_fetch_array($result1)) { ?>
    <?php while ($colrow2=mysql_fetch_array($result2)) { ?>

    und dann machst du eine while, um alle Datensätze auszulesen... *grrr*, den ersten
    hast du jedoch schon ausgelesen und dann wird er ins nirvana gesetzt, da der erste
    while-durchgang die Variable ($colrow1 bzw. $colrow2) überschreibt...
    Lass die ersten fetch-es weg, dann sollte es IMHO funktionieren.

    Viele Grüsse

    Philipp

    1. Lass die ersten fetch-es weg, dann sollte es IMHO funktionieren.

      DA war also die Watte im Hirn versteckt :-)

      Danke! funzt jetzt

      jens