2012-12-02 4 views
0

index.php를 표시하려고 할 때 다음과 같은 오류가 발생합니다. 경고 : mysql_numrows()는 매개 변수 1이 리소스가 될 것으로 기대하며, 부울은 C : \ xampp \ htdocs \ cards \ index.php 18 행에 있습니다.Newbie While Loop

데이터베이스에 올바르게 연결되어 있지 않거나 thre이 다른 오류인지 알 수 없습니다. 기본적으로 나는 내 테이블 "카드"에서 3 개의 임의의 데이터 라인을 표시하려고합니다. 데이터를 표시하려는 테이블의 열은 "playerName"입니다. 아직 데이터 서식을 걱정하지 않습니다. 코드는 다음과 같습니다 :

<?php 
include_once 'header.php'; 
require_once 'config.php'; 

$con = mysql_pconnect("localhost","*****","*****"); 
mysql_select_db("USE cards",$con); 
$cards=0; 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 

$sql = "SELECT * FROM cards ORDER BY RAND() LIMIT 3"; 

$results = mysql_query($sql); 
$array = mysql_fetch_array($results); 

$num=mysql_num_rows($results); 

$i=0; 
while ($i < $num) { 

echo $rows['playerName']; 
$i++; 
} 

include_once 'footer.php'; 

?> 

나는 이것이 아마 간단한 초보자 질문 알지만, 나는 도움을 주셔서 감사합니다.

+0

내 대답보기 :) –

답변

3

mysql_select_db 호출은 전체 USE 문이 아니라 첫 번째 인수로 데이터베이스 이름 만 가져야합니다. 대부분 자동으로 실패하고 카드 데이터베이스를 선택하지 않습니다. 그런 다음 쿼리가 실패 할 때 (다시 말하면 자동으로) false를 반환합니다.

0

mysql_num_rows (mysql_numrows가 아님)입니다.

수동 : ($ 결과를 에코) http://php.net/manual/en/function.mysql-num-rows.php

+0

편집을 마치고 출력 된 이름이 3 개 나오지만 같은 이름이 출력됩니다. 3 번. 내가 다시로드 할 때마다 다른 이름이지만 3 번 같은 이름입니다. – user1871031

+0

@ user1871031 내 대답 참조 :) –

0

두 가지가, 배열을 울리는 못해 인쇄 대신 사용 인 print_r ($ 결과) 또는 위해서 var_dump ($ 결과) 다른 일을, 나는 오류가 발생 생각한다 var_dump 나 print_r을 사용하면 그럴 것인지를 확인할 수 있습니다 :)

또한 여기에 오타가 있습니다 : $ con = mysql_pconnect ("localhost", "jalexander" , "brunswick3"); 또한

: 연결에서 페이지를 제거, 당신이 여기에 asterixes하여 DB 자격 증명을 대체 할 수 있습니다 :)

을 마지막으로, 당신은 변수 카드를 선언하지만, 그것을 사용하지?

사실 하나에서 변경 $ 행은 [PLAYERNAME] $로 행 [ 'PLAYERNAME']

는 while 루프를 사용하는 다른 행을 대신 얻으려면 당신과 같이 foreach 문을 사용할 수 있습니다

그것은에서 작동하지 않았다

$i=0; 
while ($i < $num) { 

echo $rows[$i]['playerName']; 
$i++; 
} 

또는

foreach($array as $row){ echo $row['playerName']; } 
은 while 루프 사용을 사용하여 수행하는 귀하의 현재 코드를 배열의 요소를 반복하지 않았기 때문에 그냥 매번 똑같은 내용을 반복합니다.