Как я могу дважды использовать mysqli_fetch_array ()?

Я использую записи db для заполнения строки и столбца в таблице. Но я дважды не могу получить доступ к SQL-данным, дважды используя mysqli_fetch_array() . Это не работает:

 //Copy the result $db_res = mysqli_query( $db_link, $sql ); $db_res2=$db_res; //Top row while ($row = mysqli_fetch_array( $db_res, MYSQL_ASSOC)) { echo "<td>". $row['Title'] . "</td>"; } //leftmost column while ($row = mysqli_fetch_array( $db_res2, MYSQL_ASSOC)) { echo "<tr>"; echo "<td>". $row['Title'] . "</td>"; ..... echo "</tr>"; } 

Как я mysqli_fetch_array дважды применить mysqli_fetch_array к одному результату?

Вы всегда должны отделять данные от вывода.

Сначала выберите свои данные:

 $db_res = mysqli_query( $db_link, $sql ); $data = array(); while ($row = mysqli_fetch_assoc($db_res)) { $data[] = $row; } 

Затем используйте его столько раз, сколько пожелаете:

 //Top row foreach ($data as $row) { echo "<td>". $row['Title'] . "</td>"; } //leftmost column foreach ($data as $row) { echo "<tr>"; echo "<td>". $row['Title'] . "</td>"; ..... echo "</tr>"; } 

Да. mysqli_fetch_array() перемещает указатель вперед каждый раз, когда вы его вызываете. Вам нужно mysqli_data_seek() чтобы вернуть указатель в начало, а затем снова вызвать mysqli_fetch_array() .

Поэтому, прежде чем вызывать функцию во второй раз, выполните:

 mysqli_data_seek($db_res, 0); 
 $squery = mysqli_query($con,"SELECT * FROM table"); while($s = mysqli_fetch_array($query)){ .... } // add this line mysqli_data_seek( $query, 0 ); while($r = mysqli_fetch_array($query)){ ... } 

попробуй…..