Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
31 / 31 / 9
Регистрация: 20.12.2011
Сообщений: 202
1

Составление запроса с условием

13.08.2012, 18:58. Показов 1310. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть запрос к базе
SQL
1
2
3
4
5
6
7
8
9
10
11
SELECT
`users`.`login` AS `login`,
`homework`.`mark` AS `mark`,
`homework`.`comments` AS `comments`,
`lessons`.`name` AS `LName`,
`subject`.`name` AS `SName`,
`homework`.`date_check` AS `date_check`,
`homework`.`type` AS `type`
FROM `users`, `subject`, `lessons`, `homework`
WHERE `lessons`.`id` = `homework`.`lesson_id` AND
`subject`.`id` = `lessons`.`subject_id` AND ...
А если так получилось, что `homework`.`lesson_id` != `lessons`.`id`, тогда данная строка не выведется, а этого не хотелось бы.
Возможно этого избежать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.08.2012, 18:58
Ответы с готовыми решениями:

Составление запроса
Есть таблица user, в которой содержаться пользователи. У каждого нового пользователя id на 1 выше,...

Составление запроса к БД
Что-то никак разобраться не могу. Помогите пожалуйста. Есть БД, в ней таблица под названием...

Правильное составление запроса к БД
Добрый день! Передо мной стал такой вопрос. Есть две таблицы course и course_section. В первой...

Составление SQL запроса
Всем доброго времени суток. У меня такой вопрос. Допустим в БД сайта есть 3 записи, у которых...

10
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
13.08.2012, 20:46 2
Agmassmagist, не понятен ваш запрос. напишите весь + где join`ы ?
1
3 / 3 / 2
Регистрация: 13.08.2012
Сообщений: 53
13.08.2012, 21:13 3
Здравствуйте. Уважаемые, помогите пожалуйста разобраться в чем дело.
Суть в том что вылезает ошибка (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 ' , '', , 1344866516)' at line 5 ).

Ругается как я понял вот на это :
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function resave($dt){
    $goods = myBasket();
    foreach($goods as $item){
        $sql="INSERT INTO orders (author,title,pubyear,price,customer,quantity,datetime)
        VALUES (
        '{$item["$author"]}',
        '{$item["$title"]}',
        {$item["$pubyear"]},
        {$item["$price"]},
        '{$item["$customer"]}',
        {$item["$quantity"]},
        $dt)";
    mysql_query($sql) or die(mysql_error());
    }
    $sql="DELETE FROM basket WHERE customer='".session_id()."'";
    mysql_query($sql) or die(mysql_error());
} 
?>
Я так понимаю мускулу не нравится запрос только не понимаю что делаю не так
0
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
13.08.2012, 21:17 4
psk-ru, вы здесь поставили кавычки
SQL
1
2
'{$item["$author"]}',
'{$item["$title"]}',
продолжите в том же духе и вообще покажите $sql
PHP
1
echo $sql;
до 16ой строки
0
3 / 3 / 2
Регистрация: 13.08.2012
Сообщений: 53
13.08.2012, 21:39 5
кавычки там стоят потому что передаются строковые данные
SQL
1
2
3
4
5
6
7
8
9
10
11
12
DROP TABLE IF EXISTS `orders`;
CREATE TABLE `orders` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `author` VARCHAR(50) NOT NULL DEFAULT '',
  `title` VARCHAR(50) NOT NULL DEFAULT '',
  `pubyear` INT(4) NOT NULL DEFAULT '0',
  `price` INT(11) NOT NULL DEFAULT '0',
  `customer` VARCHAR(32) NOT NULL DEFAULT '',
  `quantity` INT(4) NOT NULL DEFAULT '0',
  `datetime` INT(10) NOT NULL DEFAULT '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
0
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
13.08.2012, 21:45 6
psk-ru, нет я попросил запрос сформированный вот этой строкой
SQL
1
2
3
4
5
6
7
8
9
]$sql="INSERT INTO orders (author,title,pubyear,price,customer,quantity,datetime)
        VALUES (
        '{$item["$author"]}',
        '{$item["$title"]}',
        {$item["$pubyear"]},
        {$item["$price"]},
        '{$item["$customer"]}',
        {$item["$quantity"]},
        $dt)";
а по поводу кавычек имел ввиду что нужно их по хорошему везде поставить не только в тех строках если лень отлавливать ошибку, проще закавычить может там где пробел передается или еще что.
0
3 / 3 / 2
Регистрация: 13.08.2012
Сообщений: 53
13.08.2012, 21:55 7
Заковычил все
SQL
1
2
3
4
5
6
7
8
9
$sql="INSERT INTO orders (author, title, pubyear, price, customer, quantity, datetime)
        VALUES (
        '{$item["$author"]}',
        '{$item["$title"]}',
        '{$item["$pubyear"]}',
        '{$item["$price"]}',
        '{$item["$customer"]}',
        '{$item["$quantity"]}',
        '$dt')";echo $sql
запрос отправился криво правда вот что эхо вывел
SQL
1
 INSERT INTO orders (author, title, pubyear, price, customer, quantity, datetime) VALUES ( '', '', '', '', '', '', '1344880203')INSERT INTO orders (author, title, pubyear, price, customer, quantity, datetime) VALUES ( '', '', '', '', '', '', '1344880203')INSERT INTO orders (author, title, pubyear, price, customer, quantity, datetime) VALUES ( '', '', '', '', '', '', '1344880203')INSERT INTO orders (author, title, pubyear, price, customer, quantity, datetime) VALUES ( '', '', '', '', '', '', '1344880203')
0
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
13.08.2012, 22:08 8
psk-ru, кавычки меняйте, у вас получается строка формируется не правильно
PHP
1
2
3
4
$sql="INSERT INTO orders (author, title, pubyear, price, customer, quantity, datetime)
        VALUES (
        '".{$item["$author"]}."',
        '".{$item["$title"]}."',...
либо подругому как-нибудь. в общем сама строка сформирована не правильно на выходе видели пустоту. вот избавтесь от нее.

Добавлено через 3 минуты
и вообще не понятно зачем там переменные в ключах?
PHP
1
2
'{$item["$author"]}',
        '{$item["$title"]}',
?
PHP
1
var_dump($item);
пожалуйста
1
3 / 3 / 2
Регистрация: 13.08.2012
Сообщений: 53
13.08.2012, 22:43 9
Вот
PHP
1
2
var_dump($item);
array(8) { ["author"]=> string(5) "Автор" ["title"]=> string(8) "Название" ["pubyear"]=> string(4) "2012" ["price"]=> string(4) "1000" ["id"]=> string(2) "41" ["goodsid"]=> string(1) "1" ["customer"]=> string(32) "e197dcfccdcf2a83d635ec6dfaaa0d59" ["quantity"]=> string(1) "1" } array(8) { ["author"]=> string(7) "Василий" ["title"]=> string(6) "Пупкин" ["pubyear"]=> string(4) "2011" ["price"]=> string(4) "1000" ["id"]=> string(2) "40" ["goodsid"]=> string(1) "2" ["customer"]=> string(32) "e197dcfccdcf2a83d635ec6dfaaa0d59" ["quantity"]=> string(1) "1" } array(8) { ["author"]=> string(4) "Моби" ["title"]=> string(4) "Боби" ["pubyear"]=> string(4) "2012" ["price"]=> string(4) "1234" ["id"]=> string(2) "39" ["goodsid"]=> string(1) "3" ["customer"]=> string(32) "e197dcfccdcf2a83d635ec6dfaaa0d59" ["quantity"]=> string(1) "1" } array(8) { ["author"]=> string(3) "Иид" ["title"]=> string(3) "Итп" ["pubyear"]=> string(4) "2011" ["price"]=> string(4) "1111" ["id"]=> string(2) "38" ["goodsid"]=> string(1) "4" ["customer"]=> string(32) "e197dcfccdcf2a83d635ec6dfaaa0d59" ["quantity"]=> string(1) "1" }
результат от
PHP
1
2
3
4
5
6
7
8
9
10
$sql="INSERT INTO orders (author, title, pubyear, price, customer, quantity, datetime)
        VALUES (
        '".$item["$author"]."',
        '".$item["$title"]."',
        '".$item["$pubyear"]."',
        '".$item["$price"]."',
        '".$item["$customer"]."',
        '".$item["$quantity"]."',
        $dt)";
echo $sql;
получается такой:
SQL
1
INSERT INTO orders (author, title, pubyear, price, customer, quantity, datetime) VALUES ( '', '', '', '', '', '', 1344882835)INSERT INTO orders (author, title, pubyear, price, customer, quantity, datetime) VALUES ( '', '', '', '', '', '', 1344882835)INSERT INTO orders (author, title, pubyear, price, customer, quantity, datetime) VALUES ( '', '', '', '', '', '', 1344882835)INSERT INTO orders (author, title, pubyear, price, customer, quantity, datetime) VALUES ( '', '', '', '', '', '', 1344882835)
Я честно скажу я нуб полнейший( только начинаю изучать php) и много не понимаю поэтому скорее всего где то упустил важную деталь, и вполне возможно мучаю вас понапрасну но все же очень надеюсь на комментарий который облегчит мне задачу
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
13.08.2012, 23:09 10
потому что таких переменных не существует ($author,$title и т.д.) соответственно ключ всегда будет NULL. в общем в названии ключа знак $ лишний
Цитата Сообщение от psk-ru Посмотреть сообщение
PHP
1
2
3
4
5
6
'".$item["author"]."',
 '".$item["title"]."',
 '".$item["pubyear"]."',
 '".$item["price"]."',
 '".$item["customer"]."',
 '".$item["quantity"]."',
Добавлено через 1 минуту
и вам об этом уже говорили
1
3 / 3 / 2
Регистрация: 13.08.2012
Сообщений: 53
13.08.2012, 23:15 11
Огромно спасибо за помощь!
0
13.08.2012, 23:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.08.2012, 23:15
Помогаю со студенческими работами здесь

Составление SQL запроса
Привет всем. Хотел бы попросить помощи у гуру в составлении условия SQL запроса. В общем есть...

Составление mysql запроса
Здравствуйте, нужна помощь в составлении запроса. Нужно скопировать записи(у которых поле status=1)...

Запросы с разным условием запроса
добрый день, подскажите как сделать выборку когда есть 2-3 условия по которым отсортировать? ...

Составление верного запроса для поиска в БД по введенным значениям
Передаю данные с формы вот код обработки формы не рагирует на запрос помогите правильно составить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru