2013-08-09 5 views
-2

Следующий код находится в файле php, который я создаю. Я создаю динамическую форму, которая будет отображать имена продуктов и другую информацию в HTML-div. Теперь я прихожу к проблеме, которая, я думаю, вероятно, является чем-то относительно простым. Я изначально пытался установить echo $name;, но он был пустым, поэтому я поставил тестовое эхо, чтобы увидеть, может ли это быть эхом в другом месте, чем я ожидал, но, к сожалению, тест прошел прямо. Итак, я сделал var_dump($name);, и он появился как NULL. Я определяю его в строке до того, как я его повторю, так почему это выглядит как NULL?Переменная MySQL на основе NULL в PHP

<?php 
$productquery = mysqli_query($connection, 'SELECT * FROM products WHERE PID="$productID"'); 
$productrow = mysqli_fetch_assoc($productquery); 
//$dbIDlogin = $row5['ID'];   
?> 

<?php 
$name = $productrow['Productname']; 
echo var_dump($name); 
echo "<br>Why?"; 
?> 

Update:

vardump ($ productrow [ 'Productname']) равна нулю.

vardump ING $productquery дает следующее:

object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(18) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) } 

второй UPDATE:

Видимо $ PRODUCTID было NULL. Поэтому я пытаюсь установить его на 4. У меня теперь есть это, и он все равно не работает. Я пробовал окружить 4 в кавычках, один и два, так что это не проблема. Но он все еще говорит, что это пустая строка после того, как я ее определяю.

$productID=4; 
$productquery = mysqli_query($connection, 'SELECT * FROM products WHERE PID="$productID"'); 
$productrow = mysqli_fetch_assoc($productquery); 
+0

Попробуйте «var_dump» все остальные переменные. Включите отчет об ошибках. – deceze

+0

Не могли бы вы попробовать 'var_dump ($ productrow)', чтобы увидеть, что там? – andrewsi

ответ

1

$ productrow ['Productname'] имеет значение null.

Выяснить, что ваш запрос фактически возвращается с vardump/print_r отчет за $ productrow

+0

Спасибо, см. Обновление выше. –

1

ли $ ProductID содержит действительное число?

Вы хотите выполнить итерацию результатов! Вы предполагаете, что есть только 1 результат, и что его не нужно повторять.

Кроме того, попробуйте отображение количества строк, найденных по запросу:

$num_rows = mysql_num_rows($productquery); 
+0

$ productID действительно содержит действительное число. Будьте осторожны с этим устаревшим кодом. Сейчас я тестирую. –

+0

Хорошо, видимо, я был неправ ... это было недействительное число. Я не уверен, почему, я определил пару строк до этого ... –

+0

Проверьте обновление. –

0

Это появляется основная проблема заключается мое использование одинарных кавычек:

'SELECT * FROM products WHERE PID="$productID"' 

Вместо того, чтобы двойные кавычки:

"SELECT * FROM products WHERE PID=$productID" 
+0

Да, это, безусловно, позволит избежать переменной ... – MiStr