2014-11-17 7 views
-2
$sql = "SELECT title, article, filename, caption FROM articles 
INNER JOIN images WHERE articles.image_id = images.image_id"; 
$result = $conn->query($sql); 
$row = $result->fetch_assoc(); 

var_dump($row); 

이것은 내가 필요한 모든 것이 데이터베이스에있는 첫 번째 행을 잡을뿐입니다. 이것을 어떻게 할 수 있습니까?DB에서 단 하나의 행 이상을 가져 오는 것

+1

그런데 fetch_all()은 오류를 반환합니다. –

+0

PHP의 문서에 설명되어 있습니다. http://php.net/manual/en/mysqli-result.fetch-assoc.php – nicearma

답변

2

fetch_assoc() 각 호출 결과 집합의 다음 행을 반환, 그래서 당신은 이런 식으로 루프를 호출해야합니다 $row = null (즉,이 결과에 더 이상의 행이 없을 때

while($row = $result->fetch_assoc()) { 
    var_dump($row); 
} 

루프가 종료 세트).

+0

왜 첫 번째 행을 가져 오지 않습니까? 3 행이 있습니다. 2 개를 당긴 것 같지만 처음 보이는 것은 아닙니다 ... http://screencast.com/t/MEhB5mfWcWN –

+0

이미 회선의 루프에있는 호출에서 화상의 코드 8 행에 첫 번째 행을 가져 왔습니다. 28 후속 행을 당깁니다. –

+0

네, 사과드립니다. 나는 단순히 문장을 준비한 다음 아래의 while 루프에있는 모든 행을 가져온다. –

0

Quick start guide, 특히 Executing statements 장을 살펴보십시오. 해당 페이지에서 오른쪽 :

$mysqli->real_query("SELECT id FROM test ORDER BY id ASC"); 
$res = $mysqli->use_result(); 

echo "Result set order...\n"; 
while ($row = $res->fetch_assoc()) { 
    echo " id = " . $row['id'] . "\n"; 
} 
관련 문제