Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте.
Как сделать три запроса с одной таблице на одной странице? Отличаться они будут только по параметрам: премиум, стандарт и эконом
Пытал просто отдельно написать запросы на странице не чего не получилось, во втором запросе выводило ошибку
Вот эти запросы
1.
Неактивен
А что за ошибка?
Неактивен
vasya написал:
А что за ошибка?
mysql_num_rows(): supplied argument is not a valid MySQL result resource
и ругается на это строчку во втором запросе хотя она такая же как и в первом
Неактивен
vasya написал:
FAQ пункт №2
FLIX написал:
и ругается на это строчку во втором запросе хотя она такая же как и в первом
if (mysql_num_rows($row) > 0){так mysql_num_rows($row) или mysql_num_rows($result) ?
Выдало Query was empty когда вставил в запрос $result = mysql_query($sql) or die(mysql_error());
Неактивен
а $sql у вас чему равен?
нужно
$sql = "SELECT * FROM `battery` WHERE standard = 1 $query_country $query_manufacturer $query_brand $query_capacity $query_current $query_dimensions $query_tiprazmer";
$result = mysql_query($sql) or die(mysql_error());
Неактивен
vasya написал:
нужно
$sql = "SELECT * FROM `battery` WHERE standard = 1 $query_country $query_manufacturer $query_brand $query_capacity $query_current $query_dimensions $query_tiprazmer";
$result = mysql_query($sql) or die(mysql_error());
Выдало You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2"")' at line 1
Неактивен
тогда сам запрос покажите:
$sql = "SELECT * FROM `battery` WHERE standard = 1 $query_country $query_manufacturer $query_brand $query_capacity
$query_current $query_dimensions $query_tiprazmer";
echo $sql;
Неактивен
vasya написал:
тогда сам запрос покажите:
$sql = "SELECT * FROM `battery` WHERE standard = 1 $query_country $query_manufacturer $query_brand $query_capacity
$query_current $query_dimensions $query_tiprazmer";
echo $sql;
Вот весь запрос
Неактивен
это не запрос
запрос это та строка, которая отправляется серверу после подстановки всех переменных
что показывает
echo $sql; (см предыдущее сообщение)
Неактивен
vasya написал:
это не запрос
запрос это та строка, которая отправляется серверу после подстановки всех переменных
что показывает
echo $sql; (см предыдущее сообщение)
Прошу прошение
Вот SELECT * FROM `battery` WHERE standard = 1 AND manufacturer_id IN (""2"")
Неактивен
вместо IN (""2"")
нужно
IN (2) ну или хотя бы однократное использование кавычек
Неактивен
vasya написал:
вместо IN (""2"")
нужно
IN (2) ну или хотя бы однократное использование кавычек
А как сделать это, просто как я говорил что на странице я два отдельных запроса делал и вот в первом запросе выдаёт все правильно SELECT * FROM `battery` WHERE premium = 1 AND manufacturer_id IN ("2") , а во втором дополнительные кавычки не могу понять от куда они берутся
Неактивен
если вы просто сделаете 2 запроса, то лишние кавычки не появятся
значит в промежутке между первым и вторым запросом они добавляются, смотрите что там в php коде
Неактивен
vasya написал:
если вы просто сделаете 2 запроса, то лишние кавычки не появятся
значит в промежутке между первым и вторым запросом они добавляются, смотрите что там в php коде
понятие имею откуда они там беруться, если добавлять третий запрос то еще к этим добавляются кавычки (((
Неактивен
вы хоть код покажите
а ещё лучше внимательно посмотрите на то что идет между запросами, упрощайте пример, выводите на экран результат присвоения и найдете проблему.
Неактивен
vasya написал:
вы хоть код покажите
а ещё лучше внимательно посмотрите на то что идет между запросами, упрощайте пример, выводите на экран результат присвоения и найдете проблему.
Вот весь код странице
Неактивен
у вас есть массив $_GET["manufacturer"]
вы добавили к каждому эл-ту двойные кавычки:
if ($_GET["manufacturer"] ) {
foreach($_GET['manufacturer'] as $key => $val)
$_GET['manufacturer'][$key] = '"' . $val . '"';
выполнили запрос
SELECT * FROM battery WHERE premium = 1 ..
после чего снова добавляете к каждому элементу массива двойные кавычки:
if ($_GET["manufacturer"] ) {
foreach($_GET['manufacturer'] as $key => $val)
$_GET['manufacturer'][$key] = '' . $val . '';
--
в период отладки выводите на экран значения переменных (массивов) и сразу станет понятно что и откуда берется.
Неактивен
vasya написал:
у вас есть массив $_GET["manufacturer"]
вы добавили к каждому эл-ту двойные кавычки:
if ($_GET["manufacturer"] ) {
foreach($_GET['manufacturer'] as $key => $val)
$_GET['manufacturer'][$key] = '"' . $val . '"';
выполнили запрос
SELECT * FROM battery WHERE premium = 1 ..
после чего снова добавляете к каждому элементу массива двойные кавычки:
if ($_GET["manufacturer"] ) {
foreach($_GET['manufacturer'] as $key => $val)
$_GET['manufacturer'][$key] = '' . $val . '';
--
в период отладки выводите на экран значения переменных (массивов) и сразу станет понятно что и откуда берется.
Я по ходу сильно туплю, но так и не решил эту проблему(
Неактивен
уберите ту часть кода между запросами где добавляются кавычки
Неактивен
vasya написал:
уберите ту часть кода между запросами где добавляются кавычки
Не много изменил и все равно ошибку даёт, $sql; показывает SELECT * FROM `battery` WHERE premium = 1 AND brand_id IN (2) и во втором запросе SELECT * FROM `battery` WHERE standard = 1 AND brand_id IN (2) , а ошибка Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
Поменял на такое
Неактивен
1.
FLIX написал:
Поменял на такое
что изменится, если вы вообще уберете данный код перед вторым запросом.
2.
$result = mysql_query("SELECT * FROM
if (mysql_num_rows($row)
указатель на результат запроса, содержится в переменной $result, а не $row
3. вы зря не делаете обработку ошибок, посмотрите Удобные функции PHP для работы с MySQL
Неактивен
vasya написал:
1.
FLIX написал:
Поменял на такое
что изменится, если вы вообще уберете данный код перед вторым запросом.
Ошибка остается такая же
SELECT * FROM `battery` WHERE standard = 1 AND manufacturer_id IN ("2")
Отредактированно FLIX (12.04.2016 01:48:21)
Неактивен
в данный момент ошибка у вас, потому что
$result = mysql_query("SELECT * FROM
if (mysql_num_rows($row)
Неактивен