2013-04-11 2 views
0

У меня есть следующий PHP-код, который должен получить «первое» и «последнее» значения столбца, где «id» соответствует тому, что находится в URL-адресе. Например, когда URL-адрес ../Profile?id=1, он сказал бы First: Bob Last: Doe, потому что Bob Doe прилагается к id of 1.Почему этот запрос php ничего не выводит

Я делаю это с помощью следующего кода:

session_start(); 
$id = $_GET['search']; 
$dbhandle = mysql_connect("localhost", "SocialAdmin", "******") 
    or die("Unable to connect to MySQL");  
$selected = mysql_select_db("socialdonuttesting",$dbhandle)  
    or die("Could not select database"); 
$result = mysql_query("SELECT * FROM users WHERE id = '$id'"); 
$first = $result['first']; 
$last = $result['last']; 
echo "First: $first Last: $last"; 

Но по какой-то причине, это просто отображение First: Last:, когда я иду в ../Profile?id=1. Кто-нибудь знает, почему?

+0

Просто, чтобы отказаться от очевидного: пытались ли вы запустить ваш запрос непосредственно в оболочке MySQL и проверил, что запись существует? – Barranka

+3

Отличный выбор тегов ... –

+0

@Barranka Да, и запись *. * 0 * – Beaurocks16

ответ

3

Вы не получаете результат.

$row = mysql_fetch_assoc($result); 
echo $row['first']; 
echo $row['last']; 
+0

Это работает, спасибо! – Beaurocks16

0

вы не выборки вы запрашиваете

попробовать это

session_start(); 
$id = $_GET['search']; 
$dbhandle = mysql_connect("localhost", "SocialAdmin", "******") 
or die("Unable to connect to MySQL");  
$selected = mysql_select_db("socialdonuttesting",$dbhandle)  
or die("Could not select database"); 
$result = mysql_query("SELECT * FROM users WHERE id = '$id'"); 
while($row = mysql_fetch_array($result)){ 
$first = $row['first']; 
$last = $row['last']; 
echo "First: ". $first. " Last: ". $last ."</ br>"; } 
1

Вам нужно http://php.net/manual/en/function.mysql-fetch-row.php
Однако падение использование mysql_ и идти с PDO.
Кроме того, вы уязвимы для SQL-инъекции в вашем примере.

+0

Я знаю об этом, я собираюсь используйте это, как только сайт станет общедоступным, я просто убеждаюсь, что все работает как есть. – Beaurocks16

+0

Хорошо, но все же, пойдите с PDO. Пожалуйста, для вашего же блага. – Twisted1919

+0

Я буду, спасибо за вашу заботу. – Beaurocks16

0

$result - это ресурс, вы должны использовать функции mysql_fetch_*. В добавлении я не рекомендую использовать * в вашем SQL-запросе (например, если вы измените структуру таблицы в будущем, результаты будут испорчены.

Смежные вопросы