|
|
|
| Народ, смысл вот в чем: имеется БД в которой несколько таблиц: 'aromatic_substances', 'sss', 'chemical_reactants', хочу сделать следующее - по запросу должно вывести сколько в каждой из таблиц строк и в конце общее количество этих строк во всех таблицах. Делаю так:
$result = mysql_query("SELECT aromatic_substances.group_production,
sss.group_production,
chemical_reactants.group_production
COUNT(*)
FROM aromatic_substances,
sss,
chemical_reactants
GROUP BY group_production ");
|
В этом случае пишет ошибку Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\apache\test.ru\www\The_catalogue_of_the_goods.php on line 131. Я пробывал вариант с одной таблицей:
$result = mysql_query("SELECT group_production, COUNT(*) FROM aromatic_substances GROUP BY group_production ");
|
Показывает правильно, но как тогда объединить запросы к остальным таблицам?
и второй запрос на общее кол-ко строк:
<?php
$sql = "SELECT COUNT(*) FROM aromatic_substances, sss, chemical_reactants ";
$res = mysql_query($sql);
echo mysql_result($res, 0, 0);
?>
|
Здесь происходит перемножение строк всех трех групп товара. Что делать??? | |
|
|
|
|
|
|
|
для: mjc66
(04.02.2008 в 05:50)
| | В первом случае у Вас ошибка синтаксиса (пропущенная запятая в списке SELECT как минимум) и логическая ошибка некорректной группировки агрегатного запроса (на которую MySQL впрочем закрывает глаза.)
Во втором - ничего удвительного, если вспомнить, что запятая в списке FROM - операция декартового произведения таблиц. Делайте отдельны запросы на каждую из таблиц.
И приводите , пожалуйста, код таким образом, чтобы его моно было читать без горизонтального скроллинга. Ни в php , ни в SQL перенос строки в нужном месте на логику не влияет. | |
|
|
|
|
|
|
|
для: mjc66
(04.02.2008 в 05:50)
| | Если вы видете сообщение Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in, необходимо адекватно обработать сообщение об ошибке, чтобы MySQL сообщила в чём дело
<?php
$res = mysql_query($sql);
if(!$res) exit("Ошибка ".mysql_error());
// Далее всё остальное
?>
|
| |
|
|
|