2014-01-06 2 views
0

난 내가 $numrows을 울리는 시도값은 MySQL 데이터베이스에서 선택하지

$query=mysql_query("select * from button where button_id='$buttonid'"); 

사용하여 데이터를 가져올 수

<?php  
    require("./connect.php"); 

    $cust_name=$_POST['name']; 
    $cust_addr=$_POST['shippingAddr']; 
    $cust_pincode=$_POST['pincode']; 
    $buttonid=$_REQUEST['button_id']; 

    $query=mysql_query("select * from button where button_id='$buttonid'"); 
    $numrows = mysql_num_rows($query); 
    //echo "error is ".$numrows; 
     if($numrows==1) 
    { 
     $row = mysql_fetch_assoc($query); 
     $merchant_id = $row['merchant_id']; 
     echo "hi SUCCESS id is ".$buttonid; 
    } 
    else 
    { 
     echo "<br>EROR NOT inserted id is ".$buttonid; 
    } 
?> 

임 수없는이 PHP를 가지고 있지만, 0은 항상있는이 mysql_error를 시도, 내가 일부러 반환 오류가 발생했습니다. error_get_last를 시도했으며 오류도 발생하지 않았습니다.

확실히 데이터베이스에 연결하기위한 다른 connect.php가 제대로 작동하고 있습니다. 그리고 button_id 변수도 채워져 있습니다. 그러나 select 문은 작동하지 않습니다.

UPDATE가

나는 그 happen.The 않습니다 내 button_id.Why에서 button_id=' mmrw6FJFfDWBYt2aSO1qm '가 공백이 있음을 발견했다 vairable 원래 it.How 내가 그것을 제거 할 수있다 해달라고? 모든

+1

'SELECT'문을 에코하여 예상 한 내용이 포함되어 있는지 확인하십시오. – Barmar

+1

행이 없으면 '$ buttonid'와 일치하는 행이 없기 때문일 수 있습니다. – Barmar

+0

게시 한 정보와 함께 오류를 추측하기가 어렵습니다. 'buttonid' 입력 값과 테이블 데이터 스크린 샷을 더 잘 게시하십시오. –

답변

0

(!) 참고로 쿼리를 변경 내용을

print_r($buttonid); 

를 포함하는 변수가 있는지, 디버그 $의 buttonid 시도 하나의 단일 행 만 반환하면 쿼리 끝에 LIMIT 1을 넣어야합니다.

그러나 코드가 꽤 괜찮은 것 같습니다. button_id가 제대로 채워 졌습니까? 사용해보십시오 :

var_dump($buttonid); 

당신이 $ buttonid을 사용하지만, HTML에서 요소의 이름 button_id 것 같다 게다가, 이것은 아마도 입력 오류인가?

echo "select * from button where button_id='$buttonid'"; 

을하고는 mysql_query, 일반적인 유용한 힌트를 사용하기 전에 작동 할 때까지를 디버깅하면 phpMyAdmin에 결과를 넣어 :

또한 귀하의 해결 쿼리를 인쇄 해 봅니다. 정수 유형에 대해

+0

나는 이것을 시도한 결과, 앞뒤에 공백이 있음을 발견했다. button_id button_id = 'mmrw6FJFfDWBYt2aSO1qm'왜 그런 일이 일어 났습니까? 그것을 제거하는 방법? – user3163619

+0

값을 수치로 사용해야하는 경우 가장 쉽게 제거 할 수 있습니다. 이것은 수치 입력에 대해 안전합니다. echo "select * from button where button_id = '". intval ($ buttonid). ''; – Steini

-1

먼저 실제로 그게 사실이라면, 사전에 당신을

$query=mysql_query("select * from button where button_id='" . $buttonid . "'"); 
+3

대체 대신에 연결이 차이를 만드는 이유는 무엇입니까? – Barmar

0

는 이이

$query=mysql_query("select * from button where button_id=$buttonid"); 
0

안녕하세요 인용 부호를 사용해야 시도하고 PHP는 할 수가있어 것 " '"를 따옴표로 묶어야 필요 제기했다. 이와 비슷한 내용

데이터베이스의 button_id가 int 또는 number 인 경우 다시 입력하지 마십시오. 데이터베이스에 button_id 경우

$query=mysql_query("select * from button where button_id=$buttonid"); 

varchar 또는 string 사용이 솔루션

$query=mysql_query("select * from button where button_id='" . $buttonid . "'"); 

쿼리이 방법을 정의하는 데 더 좋을 것이다에게 있습니다.

및 PHP 코드

$result = mysql_fetch_array($query); 
$result['columnInDb']; 
0

1-

$query=mysql_query("select * from button where button_id=$buttonid"); 
$buttonid >>> without single because it num 

2-

use $row = mysql_fetch_array($query); 

대신 $row = mysql_fetch_assoc($query);

0

I 하얀 button_id = 'mmrw6FJFfDWBYt2aSO1qm'이 내 button_id에 있음을 알았습니다. 왜 그런 일이 일어 났습니까? 원래는 그럴 수 없었습니다. 어떻게 제거 할 수 있습니까?

TRIM 기능을 사용하십시오. 후행 공백을 제거합니다.

$query=mysql_query("select * from button where button_id=trim('$buttonid')"); 
관련 문제