2014-01-06 4 views
0

У меня есть этот PHPЗначения не выбраны из базы данных MySQL

<?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; 
    } 
?> 

Im не в состоянии получить данные с помощью

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

я попытался вторя $numrows, но она возвращает 0 always.I пытался mysql_error, я не сделал получили ошибки. И попытались error_get_last, также нет ошибок.

Я уверен, что другой connect.php для подключения к базе данных и все работает правильно. Также переменная button_id также заполнена. Но оператор select не работает? Любая помощь.

UPDATE

Я обнаружил, что есть белые пространства button_id=' mmrw6FJFfDWBYt2aSO1qm ' в моей button_id.Why делает что happen.The vairable изначально не имеют it.How я могу удалить его?

+1

Попробуйте повторить инструкцию 'SELECT', чтобы убедиться, что она содержит то, что вы ожидаете. – Barmar

+1

Если у вас нет строк, единственная возможная причина заключается в том, что нет строк, соответствующих '$ buttonid'. – Barmar

+0

С информацией, которую вы опубликовали, трудно догадаться об ошибке. Лучше опубликуйте свой экран ввода «buttonid» и таблицу данных. –

ответ

0

Sidenote заранее вас должен положить LIMIT 1 в конце вашего запроса, если вы только выберете одну единственную строку, которая будет возвращена.

Однако ваш код выглядит довольно хорошо, вы уверены, что button_id правильно заполнен? Попробуйте использовать:

var_dump($buttonid); 

Кроме того, вы использовали $ buttonid, но имя вашего элемента в HTML, кажется, button_id, это опечатка, может быть?

Дополнительно попытаться напечатать разрешенный запрос:

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

и поместить результат в PHPMyAdmin отлаживать его, пока он не работает, прежде чем использовать mysql_query, общий полезный намек.

+0

Я пробовал это, и я обнаружил, что есть белые пробелы до и после button_id button_id = 'mmrw6FJFfDWBYt2aSO1qm. Почему это происходит? и как его удалить? – user3163619

+0

Самый простой способ удалить это будет typginging, если вы знаете, что значение должно быть численным, это также повышает безопасность и для SQL-инъекции: echo «select * from button where button_id = '». intval ($ buttonid). «"; – Steini

-1

Прежде всего попытаться отладки $ buttonid, увидеть, если он на самом деле является переменной, которая включает материалы

print_r($buttonid); 

Если это правда, то изменить ваш запрос

$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 Вы не перепечатали бы это.

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

Если button_id в вашей базе 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

Я обнаружили, что в моей кнопке_ид есть белые пробелы button_id = 'mmrw6FJFfDWBYt2aSO1qm. Почему это происходит. Первоначально у него нет этого. Как его удалить?

TRIM функция. Он удаляет конечные пробелы.

$query=mysql_query("select * from button where button_id=trim('$buttonid')"); 
Смежные вопросы