пустые и 0 ячейки в таблице после передачи в нее результатов умножения

Фанат

oncle terrible
Команда форума
откуда берётся рецепт салата?

-~{}~ 08.04.06 20:12:

почему просто не выбрать из mysql нужные ингредиенты, и не посчитать всё в СКРИПТЕ?
без таблицы vivod1, без кучи запросов?
 

bezdarnost

Новичок
есть 15 таблиц, к каждому салату, с такими полями ingredients, gramm, quantity

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

Фанат

oncle terrible
Команда форума
рецепты лучше собрать в одну таблицу.
промежуточные таблицы не нужны - всё пожно посчитать в пхп, без mysql и запросов.
 

Фанат

oncle terrible
Команда форума
Я думаю, Тьюринг в гробу перевернётся, если это будет продолжать существовать в том же виде.
 

bezdarnost

Новичок
и даже, если собрать все рецепты в 1 таблицу, все равно придется делать запросы..
вы не могли бы объяснить, что подразумеваете под подсчитать без mysql, plz

-~{}~ 08.04.06 23:54:

хотя бы в какую сторону думать
 

bezdarnost

Новичок
ну да, но чем больше с вами общаюсь, тем больше понимаю, что не знаю ничего:)
 

Фанат

oncle terrible
Команда форума
по хорошему, тебе надо три таблицы
1. Названий рецептов
2. состав рецептов
3. товаров.

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

затем делается запрос с объединением.
объединение - это что-то похожее на твой недозапрос. то есть, то, что у тебя не работает - это, собственно, ЧАСТЬ запроса, делающего выборку из двух таблиц.

Вот это будет правильная структура.
и она позволит тебе посчитать всё вообще в одном -едснственном запросе.

Но я даже не знаю, с какой стороны подступиться, чтобы начать тебе объяснять про объединение таблиц в запросах.
 

bezdarnost

Новичок
спасибо, пойду разбираться с массивами..

-~{}~ 09.04.06 00:12:

ой, я ка-то заторможенно обновляю ваши сообщения;)
 

Фанат

oncle terrible
Команда форума
да нет, лучше не с массивами.
это я думал, может, будет полегче, чем с запросами.
собирать информацию из базы ингредиентов в массив, и использовать её оттуда.

но лучше, всё-таки, делать средствами базы.
 

bezdarnost

Новичок
у меня во всех таблицах есть автоинкремент, просто пока я их испровляла переправляла, естесственно они не совпадают в разных таблицах, поэтому я индексировала столбцы, где хранятся названия ингредиентов

-~{}~ 09.04.06 00:18:

в моем случае, мне кажется, если связываться через autoincrement, придется отдельно делать умножение для каждого ингредиента, это я сделать могу, я так делала суммирование грамм и штук одного и того же продукта
потом решила, что это как-то противоестесственно и что надо автоматизировать процесс:)
 

Фанат

oncle terrible
Команда форума
индексация здесь не при чём.
просто таблицы должны быть связаны по этому ключу.
вот у тебя таблица с составами рецептов
id - идентификатор строка
rid - это id рецепта.
у всех строк одного рецепта он должен быть одинаковый.
таким образом, ты можешь в запросе выбрать все строки нужных рецептов.

значениями чекбоксов должны быть id рецептов.
тогда получив из форма массив чисел, ты можешь его подставить в запрос:
select * from ingredients where rid in (1,3,5)
и у тебя выберутся все ингредиенты первого, третьего и пятого рецептов.
 

bezdarnost

Новичок
можно сделать так для каждого ингредиента.. криво?
PHP:
$sum= mysql_query("select  kolvo from vivod1 where name like 'ñàëàò àéñáåðã';");
if(mysql_result($sum,0)>0)
  {
  $b= mysql_query("select 1wt from ceni where name like 'ñàëàò à%';");
  $r=mysql_result($sum,0)*mysql_result($b,0);
-~{}~ 09.04.06 00:45:

я понимаю или не совсем, что выводятся все составляющие салата, а их стоимость и количество?
их же надо обрабатывать..

-~{}~ 09.04.06 00:48:

они в какой таблице, и как связываться с ними?

-~{}~ 09.04.06 00:56:

их конечно, можно было бы ввести уже посчитанными и в конце только сумму считать, но цены может редактировать пользователь, тк они зависят от сезона и тд

-~{}~ 09.04.06 01:09:

ааа все поняла про 3 таблицы (я просто с помощью list сделаю массив), тем не менее вопрос остается тем же: обработка запроса - убрать повторения и общая сумма..

спасибо большое, я завтра с массивами поразбираюсь, перебью таблицы и еще что-нибудь спрошу:) спокойной ночи;)
 

SelenIT

IT-лунатик :)
Скорее всего, речь шла о структуре наподобие чего-то такого:

recipeы
rid|recipe_name

ingredients
pid|ingredient_name|price

ingredient2recipe (таблица связи продуктов и рецептов)
rid|pid|amount

Примерный запрос общей стоимости салата: [sql]SELECT sum(ingredients.price*ingredient2recipe.amount)
FROM ingredient2recipe
INNER JOIN ingredients
ON ingredients.pid = ingredient2recipe.pid
WHERE ingredient2recipe.rid = id_нужного_рецепта[/sql]
 
Сверху