|
|
|
|
|
для: Trianon
(29.09.2009 в 02:24)
| | Да не, тут я код просто так для примера написал а так все будет чуток по другому и кстати все переменные которые могут содержать тольок числа, я проверяю на присутствие не цифр прежде чем сунуть их в sql | |
|
|
|
|
|
|
|
для: tvv123456
(29.09.2009 в 02:08)
| | >а переменную $list вот так определить можно?:
>$list=implode(',', $_POST['cena'])
Так - нельзя. SQL-инъекция чистом виде.
передавать id в переменной cena .... про луч анального поноса я надысь уже писал...
впрочем, у Вас вся таблица так называется... так что ... махнул рукой. | |
|
|
|
|
|
|
|
для: Trianon
(29.09.2009 в 02:14)
| | Мда признаюсь: я туповат что-то стал
СПАСИБО! | |
|
|
|
|
|
|
|
для: tvv123456
(29.09.2009 в 02:13)
| | SELECT * FROM cena WHERE id IN ($list)
-это один запрос. | |
|
|
|
|
|
|
|
для: Trianon
(29.09.2009 в 02:10)
| | Я если честно не могу понять как именно мне сократить количество запросов к базе? | |
|
|
|
|
|
|
|
для: tvv123456
(29.09.2009 в 02:08)
| | Я дописал там. | |
|
|
|
|
|
|
|
для: Trianon
(29.09.2009 в 02:01)
| | Ну сумму мы посчитали а как насчет написать имена услуг?
...
echo $row['name']."<br>";
...
|
а переменную $list вот так определить можно?:
$list=implode(',', $_POST['cena'])
|
| |
|
|
|
|
|
|
|
для: tvv123456
(29.09.2009 в 01:57)
| | Все еще непонятно, зачем выносить все эти вычисления в php, когда их в sql можно выполнить одним запросом.
SELECT SUM(cena) FROM cena WHERE id IN ($list)
|
Хорошо, если нужны имена, можно вынести суммирование на php-уровень.
Но зачем гонять столько запросов все равно неясно.
За код do_while без должных причин здесь стало традицией подвергать оскоплению обструкции. | |
|
|
|
|
|
|
|
для: Trianon
(29.09.2009 в 01:41)
| | мне надо организовать следующий момент:
Вот из такой формочки мы получаем данные, которые нужно обработать:
<?
$result=mysql_query("select * from cena order by cat",$db);
$cat=0;
while($row=mysql_fetch_array($result)){
if($cat!=$row['cat']){
if($cat!=0) echo '</p>';
$cat=$row['cat'];
echo'<p><font size="+1">'.$row['tema'].'</font><br />';
}
echo'<font style="margin-left:40px;"><input type="Checkbox" name="cena[]" value="'.$row['id'].'" />'. $row['name'].'('.$row['cena'].' руб.)</font><br />';
}
echo "<br><br>
<input name=\"cena_but\" type=\"submit\" value=\"Подсчитать\" />
</form>";
?>
|
Далее нужно получается что-то типа
<? $a=0;
$sum=0;
do
{
$id = $POST['cena'][$a];
$result=mysql_query("select * from cena where id='$id'",$db); //вытащить за цикл эту штуку мешает условие id='$id'
$row=mysql_fetch_array($result);
echo $row[name]."<br>";
$sum=$sum+$_POST['cena'][$a];
$a++;
}
while($a<100);
echo $sum;
?>
|
Все бы ничего, но меня не устраивает, что будет выполнено столько запросов к базе, вот я и задал свой вопрос: вытаскиваем все одним запросом а потом уже из $result вытягиваем в цикле нужные мне поля; | |
|
|
|
|
|
|
|
для: tvv123456
(29.09.2009 в 01:34)
| | Ну это примерно как прийти в хороший ресторан, заказать приличный ужин, оплатив его вперед, а потом пойти на кухню, найти шеф-повара, забрать у него продукты и начать готовить блюда самому.
Вариант, конечно, но лишь тогда, когда Вы и сами неплохо готовите. Неясно, правда, зачем тогда в ресторан идти?
php, по эффективности управления данными, SQLю в подметки не годится. | |
|
|
|
|