2013-07-14 2 views
0

Привет Я пытаюсь отображать данные, полученные из таблицы mysql по горизонтали в таблице html, используя php. Код ниже хорошо работает, за исключением того, что в моей базе данных отсутствует первая запись (начинается со второй записи). Я уверен, что это имеет какое-то отношение к счетчику, но я не могу понять, как заставить его прекратить это делать. Если кто-нибудь может указать мою ошибку, я бы очень признателен!Отображение данных по горизонтали с использованием php и mysql

$items = 5; 
$query = "SELECT * FROM members "; 

$result = mysql_query($query) 
    or die(mysql_error()); 

$row = mysql_fetch_array($result); 

if (mysql_num_rows($result) > 0) { 

echo '<table border="1">'; 

$i = 0; 

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

    $first_name = $row['first_name']; 

      if ($i==0) { 
         echo "<tr>\n"; 
         } 

      echo "\t<td align=\center\">$first_name</td>\n"; 

      $i++; 

      if ($i == $items) { 

           echo "</tr>\n"; 
           $i = 0; 
           } 
}//end while loop 

if ($i > 0) { 

       for (;$i < $items; $i++) { 
         echo "<td>&nbsp;</td>\n"; 
        } 

       echo '</tr>'; 

       }//end ($i>0) if 

echo '</table>'; 

}else { 

    echo 'no records found'; 
} 
+0

Вы не должны использовать 'функции mysql_', и ваши отступы громоздкий – samayo

ответ

1

попробовать и удалить первый

$row = mysql_fetch_array($result);

вы вызываете его в два раза, поэтому он пропускает 1 строку в ваше время цикла

+0

Вот и спасибо! Я бы назвал это правильным ответом, но, по-видимому, я не могу пройти через девять минут. –

+0

приветствуется :) –

1

попробовать это проще.

 $items = 5; 
    $query = "SELECT * FROM members "; 

$result = mysql_query($query) or die(mysql_error()); 
if (mysql_num_rows($result) > 0) { 

echo '<table border="1">'; 
while($row = mysql_fetch_array($result)){ 

$first_name = $row['first_name']; 
     echo "<tr>"; 
     for ($i=0 ; $i <= $items ;$i++) { 

        echo "<td align='center'>".$first_name."</td>"; 
        } 
}//end while loop 
    echo "</tr>"; 
    echo '</table>'; 
}else{ echo 'no records found'; } 
+0

@matttuman сделал это проще получить то, что вы хотите? –

+0

Результаты: Вертикально, но спасибо! –

+0

@matttuman, потому что я удалил '\ n' и' \ t' .try добавить их снова и посмотреть –

0

Я столкнулся с этим вопросом раньше. Попробуйте вместо этого сделать цикл while. Пример

do { 

// code 

} while($row = mysql_fetch_array($result)); //end while loop 
Смежные вопросы