[SQL] 어떻게 mysqli_fetch_array는 ()를 두 번 사용할 수 있습니까?
SQL어떻게 mysqli_fetch_array는 ()를 두 번 사용할 수 있습니까?
나는 행과 테이블의 열을 채우기 위해 DB의 항목을 사용하고 있습니다. 하지만 두 번 ()를 두 번 mysqli_fetch_array를 사용하여 SQL 반환 된 데이터에 액세스 할 수 없습니다. 이 작동하지 않습니다
//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을 적용 할 수 있는가?
해결법
-
==============================
1.당신은 동안 루프를 필요로하지 않으며, 당신은 전혀 사용 mysqli_fetch_array () 할 필요가 없습니다.
당신은 동안 루프를 필요로하지 않으며, 당신은 전혀 사용 mysqli_fetch_array () 할 필요가 없습니다.
당신은 mysqli_result 개체 자체 많은 시간에 간단하게 루프를 할 수 있습니다.
//Top row foreach($db_res as $row) { echo "<td>". $row['Title'] . "</td>"; } //leftmost column foreach($db_res as $row) { echo "<tr>"; echo "<td>". $row['Title'] . "</td>"; ..... echo "</tr>"; }
그러나 디스플레이 로직에서 DB 로직을 분리해야하며, 배열로 모든 레코드를 검색하기 위해 DB 로직에 fetch_all (MYSQLI_ASSOC)를 사용하는 것이 가장 좋습니다이를 달성 할 수 있습니다.
-
==============================
2.당신은 항상 출력 데이터 조작을 분리해야한다.
당신은 항상 출력 데이터 조작을 분리해야한다.
먼저 데이터를 선택합니다 :
$db_res = mysqli_query( $db_link, $sql ); $data = array(); while ($row = mysqli_fetch_assoc($db_res)) { $data[] = $row; }
참고 PHP 5.3 이후 대신 명시 적 루프의) (fetch_all 사용할 수 :
$db_res = mysqli_query( $db_link, $sql ); $data = $db_res->fetch_all(MYSQLI_ASSOC);
당신이 원하는대로 그런 다음 여러 번 사용 :
//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>"; }
-
==============================
3.예. mysqli_fetch_array ()는 앞으로 포인터 당신이 그것을 호출 할 때마다 이동합니다. 당신은 () 다시 mysqli_fetch_array를 시작 포인터를 다시 설정 한 후 전화를 () mysqli_data_seek 필요가있다.
예. mysqli_fetch_array ()는 앞으로 포인터 당신이 그것을 호출 할 때마다 이동합니다. 당신은 () 다시 mysqli_fetch_array를 시작 포인터를 다시 설정 한 후 전화를 () mysqli_data_seek 필요가있다.
그래서 함수를 두 번 호출하기 전에 수행 :
mysqli_data_seek($db_res, 0);
-
==============================
4.
$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)){ ... }
시도 해봐.....
from https://stackoverflow.com/questions/18720568/how-can-i-use-mysqli-fetch-array-twice by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] BigQuery에서 구십일에게 활성 사용자 롤링,의 preformance을 개선 (DAU / MAU / WAU) (0) | 2020.05.26 |
---|---|
[SQL] SQL에서 ASP.NET 매장 이미지와 ASP를위한 검색 : 이미지를 (0) | 2020.05.26 |
[SQL] 분할 쉼표에서는 SQL 서버에 복수의 열을 열 값을 구분 (0) | 2020.05.26 |
[SQL] 여러 테이블에서 행을 삭제 MYSQL (0) | 2020.05.26 |
[SQL] 재귀 적 부모 목록을 (0) | 2020.05.26 |