Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2014, 14:00   #21
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Что у вас находится в переменной $sql?
Там должна находиться именно сама строка запроса – "SELECT * FROM ..." и т.д.
Судя по тексту ошибки – у вас там не строка запроса, а результат запроса, ресурс.
Если бы вы показывали больше кода – ошибки можно было бы исправлять гораздо быстрее.
Ну и думать что делаешь, конечно, тоже нужно – а не писать код наугад, «методом тыка».
Andkorol вне форума Ответить с цитированием
Старый 12.04.2014, 14:03   #22
Наталья Баева
Форумчанин
 
Регистрация: 25.04.2012
Сообщений: 128
По умолчанию

PHP код:
$sql mysql_query("SELECT * FROM `книги` JOIN товар ON книги.Код=товар.Книги"); 
вот результат
Изображения
Тип файла: jpg оридоли.jpg (38.9 Кб, 143 просмотров)
Наталья Баева вне форума Ответить с цитированием
Старый 12.04.2014, 14:06   #23
Наталья Баева
Форумчанин
 
Регистрация: 25.04.2012
Сообщений: 128
По умолчанию

если убрать эту строку то он одну ошибку убирает но по жанрам так и не выводит
Код:
$result = mysql_query($sql);
Наталья Баева вне форума Ответить с цитированием
Старый 12.04.2014, 14:10   #24
Наталья Баева
Форумчанин
 
Регистрация: 25.04.2012
Сообщений: 128
По умолчанию

может все полететь из-за того что в этой строке
Код:
$sql .= " WHERE `genre_id` = ".intval($_GET['genre_id']);
слово intval не распознается?
Наталья Баева вне форума Ответить с цитированием
Старый 12.04.2014, 14:10   #25
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Наталья Баева Посмотреть сообщение
PHP код:
$sql mysql_query("SELECT * FROM `книги` JOIN товар ON книги.Код=товар.Книги"); 
Здесь всё правильно.
Но дальше вы же глупости пишете в коде:
Цитата:
Сообщение от Наталья Баева Посмотреть сообщение
теперь ругается на эти строки
Код:
$result = mysql_query($sql);
			while($row=mysql_fetch_array($sql))
Зачем еще раз выполнять запрос?
Должно быть так:
PHP код:
$sql mysql_query("SELECT * FROM `книги` JOIN товар ON книги.Код=товар.Книги");
while(
$row mysql_fetch_array($sql))
{
    
// обработка результатов запроса

Andkorol вне форума Ответить с цитированием
Старый 12.04.2014, 14:18   #26
Наталья Баева
Форумчанин
 
Регистрация: 25.04.2012
Сообщений: 128
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Должно быть так:
PHP код:
$sql mysql_query("SELECT * FROM `книги` JOIN товар ON книги.Код=товар.Книги");
while(
$row mysql_fetch_array($sql))
{
    
// обработка результатов запроса

ну мне надо еще жанры выводить без них у меня и так все прекрасно работает а вот с определением жанров проблемы возникают
Наталья Баева вне форума Ответить с цитированием
Старый 12.04.2014, 14:27   #27
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Наталья Баева Посмотреть сообщение
ну мне надо еще жанры выводить без них у меня и так все прекрасно работает а вот с определением жанров проблемы возникают
Я уже написал ранее, как нужно сделать:
Цитата:
Сообщение от Andkorol Посмотреть сообщение
PHP код:
$sql "SELECT * FROM `books`"// выбираем все книги
if(!empty($_GET['genre_id'])){
    
// если в URL есть ID жанра (?genre_id=1)
    // добавляем условие, и выбираем книги только указанного жанра
    
$sql .= " WHERE `genre_id` = " intval($_GET['genre_id']);
}
$result mysql_query($sql);
// далее – обработка результатов запроса ... 
Вы же вместо того, чтобы просто подставить в запрос ваши параметры – начинаете писать в коде всякие глупости.
Замените запрос в этом примере на тот, который соответствует вашим таблицам и названиям полей в них.
Условие WHERE для жанров тоже измените соответственно полям в ваших таблицах.
Andkorol вне форума Ответить с цитированием
Старый 12.04.2014, 14:31   #28
Наталья Баева
Форумчанин
 
Регистрация: 25.04.2012
Сообщений: 128
По умолчанию

вот так:
PHP код:
 <?php
            $sql 
mysql_query("SELECT * FROM `книги` JOIN товар ON книги.Код=товар.Книги");
            if(!empty(
$_GET['genre_id']))
            {
                
$sql .= " WHERE `Код_жанра` = ".intval($_GET['genre_id']);
            }
            while(
$row=mysql_fetch_array($sql))
            {
            echo 
"<tr>
                    <td rowspan='3'>"
,"<img src=".$row['Картинка']."width='150' height='200'>","</td>
                    <td>"
,"<a href='o_book.php'>{$row['Название']}</a>","<br><br>","</td>
                    <td>"
,"цена ",$row['Цена']," руб.","</td>
                </tr>
                <tr>
                    <td rowspan='2'>"
,$row['Аннтотация'],"<br><br><br><br>","</td>
                    <td>"
,"на складе ",$row['Количество']," шт.","</td>
                </tr>
                <tr>
                    <td>"
,"<input type='submit' name='kup' value='Купить'>","</td>
                </tr>"
;
            }
                
?>
Наталья Баева вне форума Ответить с цитированием
Старый 12.04.2014, 14:39   #29
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Наталья Баева Посмотреть сообщение
вот так:
Вы правда разницы с моим примером не видите..?
PHP код:
$sql "SELECT * FROM `книги` JOIN товар ON книги.Код=товар.Книги";

if(!empty(
$_GET['genre_id'])) 

    
$sql .= " WHERE `Код_жанра` = " intval($_GET['genre_id']); 


$result mysql_query($sql); 
while(
$row mysql_fetch_array($result)) 

            echo 
"<tr> 
                    <td rowspan='3'>"
,"<img src=".$row['Картинка']."width='150' height='200'>","</td> 
                    <td>"
,"<a href='o_book.php'>{$row['Название']}</a>","<br><br>","</td> 
                    <td>"
,"цена ",$row['Цена']," руб.","</td> 
                </tr> 
                <tr> 
                    <td rowspan='2'>"
,$row['Аннтотация'],"<br><br><br><br>","</td> 
                    <td>"
,"на складе ",$row['Количество']," шт.","</td> 
                </tr> 
                <tr> 
                    <td>"
,"<input type='submit' name='kup' value='Купить'>","</td> 
                </tr>"


Кириллица в структуре БД – это ппц просто.
Andkorol вне форума Ответить с цитированием
Старый 12.04.2014, 14:40   #30
Наталья Баева
Форумчанин
 
Регистрация: 25.04.2012
Сообщений: 128
По умолчанию

если я добавляю эту строку то у меня вообще ничего не выводится
Код:
$result = mysql_query($sql);
и выходят вот эти ошибки
Warning: mysql_query() expects parameter 1 to be string, resource given in C:\xampp\htdocs\internet\book.php on line 52

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in C:\xampp\htdocs\internet\book.php on line 53
Наталья Баева вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор книги shadezx Общие вопросы C/C++ 1 19.12.2013 20:30
Выбор книги koljsch Свободное общение 14 12.04.2013 00:52
Выбор книги С++ Dmitry_Web Помощь студентам 2 07.12.2011 13:41
выбор листа книги из ComboBox prosto_i Microsoft Office Excel 0 08.04.2011 14:32
Выбор книги Lemo Помощь студентам 7 26.10.2008 08:27