SELECT $id=$_GET['id']; Ничего не возвращает

189
14 октября 2017, 20:23

Есть следующий код, где $query должна возвращать цену, что собственно, не происходит. Вызывая код выводит id(?id=1, например) корректно. А как доходит до цикла(можно и без цикла, тоже не работает), вылазит ничего. Спасибо за внимание. PS: с функцией execute бился но ничего не понял, похоже.

<?php 
	ini_set('display_errors','On'); 
	error_reporting('E_ALL');//показ ошибок 
 
	$host = 'localhost'; // имя хоста 
	$database = 'test_sql'; // имя базы данных 
	$user = 'root'; // имя пользователя 
	$pswd = ''; //  пароль 
	$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");//соединение с бд 
	mysql_select_db($database) or die("Не могу подключиться к базе."); 
 
 
	$id = $_GET['id'];//получаем id(?id=some id) 
	$query = "SELECT 'price' FROM 'oc_product' WHERE 'product_id' = $id";//выгрузка из таблицы 
	$res = mysql_query($query);//вроде как возвращает id из $query 
	$row = mysql_fetch_array($res);//вызов массива или поля. Сюда передаем $res как параметр. Выдает массив(mysql_fetch_array). Значение поля(mysql_fetch_row) 
	 
	while($row = mysql_fetch_array($res)){ 
		echo "Цена: ".$row."<br>";//вывод цены 
	} 
 
?>  
	<!-- проверка id --> 
	<div><?php echo $id; ?></div> 

Answer 1

Предполагаю, что у вас в базе пока по одной строке с ценами на товары. А выборка в скрипте делается минимум дважды. При этом первый результат он отбрасывает.

Я исправил скрипт, удалив лишнее. Попробуйте так:

<?php 
	ini_set('display_errors','On'); 
	error_reporting('E_ALL');//показ ошибок 
 
	$host = 'localhost'; // имя хоста 
	$database = 'test_sql'; // имя базы данных 
	$user = 'root'; // имя пользователя 
	$pswd = ''; //  пароль 
	$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");//соединение с бд 
	mysql_select_db($database) or die("Не могу подключиться к базе."); 
 
 
	$id = $_GET['id'];//получаем id(?id=some id) 
	$query = "SELECT 'price' FROM 'oc_product' WHERE 'product_id' = $id";//выгрузка из таблицы 
	$res = mysql_query($query);//вроде как возвращает id из $query 
	 
	while($row = mysql_fetch_array($res)){ 
		echo "Цена: ".$row[0]."<br>";//вывод цены 
	} 
 
?>  
	<!-- проверка id --> 
	<div><?php echo $id; ?></div> 

Также обратите внимание, что расширение MySQL устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Рекомендуется вместо него использовать расширения MySQLi или PDO_MySQL.

READ ALSO
Открытие файлов require и fwrite

Открытие файлов require и fwrite

Почему require открывает файл а fwrite вызывает ошибку? Warning: fwrite() expects parameter 1 to be resource, string given in

161
Обработка ajax данных в PHP с помощью foreach

Обработка ajax данных в PHP с помощью foreach

ЗдравствуйтеВозникла небольшая проблема с принятием POST данных при передаче их в PHP скрипт через ajax метод

202
Многомерные массивы (вывод)

Многомерные массивы (вывод)

Если не сложно, помогите разобраться с массивами и их выводамиПроблема в том, что простые массивы (ассоциативные или нет) - вывожу без проблем...

191
Как удалить лишние звездочки из строки?

Как удалить лишние звездочки из строки?

Добрый день профиСкажите, как с помощью рег выражений, удалить в строке две подряд звездочки? (лучше, если их больше чем одна подряд)

238