0

クエリ結果をテーブルに出力したい。クエリに5行のみをフェッチするように制限を設定しました。そしてそれは私のDBから5行をフェッチします。しかし、結果をHTMLテーブルに印刷すると、結果の最初の行は印刷されません。コードに問題は見つかりません。助けてください!

これが私がそれをした方法です:

<table style="border:none; width:790px;; margin:10px;" cellpadding="0" cellspacing="0">
    <tr>
        <th  class="header">ID</th>
        <th  class="header">Client Name</th>
        <th  class="header">Driver's License</th>
        <th  class="header">Social Security</th>
        <th  class="header">Phone Number</th>
        <th  class="header">Email Address</th>
        <th  class="header">Date Signed Up</th>
    </tr>  
<?php

$i=1;
while($row = mysql_fetch_assoc($result)){
    if ($i & 1) { //odd rows
        echo '<tr>';
        echo '<td class="entry_odd">'.$row['cid'].'</td>';
        echo '<td class="entry_odd">'.$row['fname'].' '.$row['lname'].'</td>';
        echo '<td class="entry_odd">'.$row['license'].'</td>';
        echo '<td class="entry_odd">'.$row['ss1'].' / '.$row['ss2'].' / '.$row['ss3'].'</td>';
        echo '<td class="entry_odd">'.$row['phone1_1'].'-'.$row['phone1_2'].'-'.$row['phone1_3'];
            if ($row['phone1_ext'] != NULL ) {
                echo ' ext. '.$row['phone1_ext'].'</td>';
            } else { 
                echo '</td>';
            }
        echo '<td class="entry_odd">'.$row['email'].'</td>';
        echo '<td class="entry_odd">'.$row['registered'].'</td>';
        echo '</tr>';

    } else { //even rows
        echo '<tr>';
        echo '<td class="entry_even">'.$row['client_id'].'</td>';
        echo '<td class="entry_even">'.$row['fname'].' '.$row['lname'].'</td>';
        echo '<td class="entry_even">'.$row['license'].'</td>';
        echo '<td class="entry_even">'.$row['ss1'].' / '.$row['ss2'].' / '.$row['ss3'].'</td>';
        echo '<td class="entry_even">'.$row['phone1_1'].'-'.$row['phone1_2'].'-'.$row['phone1_3'];
            if ($row['phone1_ext'] != NULL ) {
                echo ' ext. '.$row['phone1_ext'].'</td>';
            } else { 
                echo '</td>';
            }
        echo '<td class="entry_even">'.$row['email'].'</td>';
        echo '<td class="entry_even">'.$row['registered'].'</td>';
        echo '</tr>';
    }

        $i++;
}

?>

4

2 に答える 2

0

皆さん、答えてくれてありがとう!

しかし、私はこれを台無しにしていたものを見つけました。これは、クエリの後で AND の前に配置した 1 行でした$i=1;。その行は次のとおりです。

$row = mysql_fetch_assoc($result);

これにより、配列から最初の行が既にフェッチされているため、ループを介して配列をフィードしたときに、最初の $row が既に削除されています。

于 2012-08-25T02:11:42.163 に答える
0

SQL がなければ、次の変更を行います。

<?php

$i = 0;

while($row = mysql_fetch_assoc($result)){

    $row_class = ($i % 2) ? "entry_even" : "entry_odd";

    echo '<tr>';
    echo '<td class="' . $row_class . '">'.$row['cid']."</td>\n";
    echo '<td class="' . $row_class . '">'.$row['fname'].' '.$row['lname']."</td>\n";
    echo '<td class="' . $row_class . '">'.$row['license']."</td>\n";
    echo '<td class="' . $row_class . '">'.$row['ss1'].' / '.$row['ss2'].' / '.$row['ss3']."</td>\n";
    echo '<td class="' . $row_class . '">'.$row['phone1_1'].'-'.$row['phone1_2'].'-'.$row['phone1_3'];
        if ($row['phone1_ext'] != NULL ) {
        echo ' ext. '.$row['phone1_ext']."</td>\n";
        } else { 
        echo "</td>\n";
        }
    echo '<td class="' . $row_class . '">'.$row['email']."</td>\n";
    echo '<td class="' . $row_class . '">'.$row['registered']."</td>\n";
    echo '</tr>';

    $i++;
}

?>
于 2012-08-20T14:04:50.623 に答える