2012-11-16 3 views
0
<?php 
$soil_ph = $_POST['soilph']; 
$query = "select ph_id,ph_name,ph_from,ph_to from tbl_soilph 
where '$soil_ph' between ph_from and ph_to"; 

$result = mysql_query($query); 

while($row = mysql_fetch_array($result)) 
{ 
if ($row == 0) 
{ 
echo 'Invalid or out of range'; 
} 
else 
{ 
$ph = $row['ph_name']; 
echo $row['ph_name']; 
} 
} 
?> 

--- 에코가 작동하지 않습니다. ($ 행 = 0) --- 누군가 나를 도울 수 있습니까? 위의 코드는 결과가 좋지만 데이터가 없으면 "잘못된 입력"메시지가 표시되지 않습니까?

+2

은'while' 조건이 이미 truthiness의'$의 row' 변수를 확인합니다. 그래서 내부 'if'는 결석 값을 결코 보지 못할 것이다. _num_rows (또는 날짜가 지정된 mysql 함수가 무엇이든)로 확인하십시오. – mario

+0

올바른 코드를 제공 할 수 있습니까? 마리오? – raine

+0

다른 if 문에서 수행해야하는 경우 내 대답을 확인하십시오 –

답변

-1

사실 mysql_fetch_array 함수는 실행할 때마다 단일 치수 배열을 반환합니다. 당신은 다음과 같이 수행 할 수 있습니다

if($results){ 
echo 'No Results'; 
}else{ 
while($row = mysql_fetch_array($result)) 
{ 
if(!empty($row)){ 
echo $row['ph_name']; 
}else{ 
echo 'invalid'; 
} 
} 
+0

여전히 동일합니다 ... – raine

+0

@raine : 아마도 ph_name이 비어 있습니까? – siride

+0

@siride : 아니오 비어 있지 않습니다 ... – raine

0
$soil_ph = $_POST['soilph']; 
$query = "select ph_id,ph_name,ph_from,ph_to from tbl_soilph 
where '$soil_ph' between ph_from and ph_to"; 

$result = mysql_query($query); 
if($result && mysql_num_rows($result)) { 

while() { 

} 
} else { 
    echo 'invalid input'; 
} 
0

확인이 코드를, 당신은 루프 당신에게 길 모두의

if (mysql_num_rows($result) < 1) { 

    echo 'Invalid or out of range'; 

}else{ 

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

     $ph = $row['ph_name']; 
     echo $row['ph_name']; 
    } 
} 
2

먼저 변경해야, 당신은 항상 데이터베이스 쿼리를 사용하기 전에 변수를 탈출한다 (당신이 준비된 명령문, 당신이해야 사용하지 않는) : 어떤 결과가 있는지 여부를 검사하기 위해

$soil_ph = $_POST['soilph']; 
$query = "SELECT ph_id, ph_name, ph_from, ph_to 
    FROM tbl_soilph 
    WHERE '" . mysql_real_escape_string($soil_ph) . "' BETWEEN ph_from AND ph_to"; 

$result = mysql_query($query); 

을, 당신은 사용해야합니다 mysql_num_rows() 쿼리가 실패하지 않았다 확인한 후 :

if ($result && mysql_num_rows($result)) { 
    while ($row = mysql_fetch_array($result)) { 
     // do your stuff 
    } 
} else { 
    // aww, nothing there 
} 

추가 읽기 : MySQLiPDO

관련 문제