помогите пожалуйста кто знает. по нажатию добавление пациента выбранные чекбоксы добавляются в базу но сумма не добавляется как сделать так чтобы по выбранные чекбоксы автоматически приплюсовались и добавлялись в базу в отдельное поле. сама форма Код (PHP): <form name="" action="blogs/insert_patient_blog.php" method="POST" > <p><h2>Добавление клиента</h2></p> <p>Фамилия: </br> <input type="text" name="last" style='width:200px'></p> <p>Имя: </br><input type="text" name="first" style='width:200px'></p> <p>Отчество: </br><input type="text" name="pat" style='width:200px'></p> <p>Год.р.: </br><input type="text" name="birth" style='width:200px'></p> <p>ID Доктора: </br><input type="text" name="doc_id" style='width:200px'></p> <p>Тел.: </br><input type="text" name="phone" style='width:200px'></p> <p>Коментарий: </br><input type="text" name="com" style='width:200px'></p> <p><input type="submit" name="vremya" value="Добавить пациента" style='background-color:#FFF8DC'></p> <p><input type="submit" name="clear" value="Очистить" /></p> <p>Общая цена: <input type="text" name="" value="" style='width:200px'></p> <?php $res = mysql_query ("SELECT * FROM addanalyse"); while ($myrow = mysql_fetch_array ($res)){ echo "<label>$myrow[russ] $myrow[price] $myrow[emp] </label>"; echo "<input name='kurs[]' type='checkbox' value='$myrow[russ] $myrow[price] $myrow[emp] $myrow[a1] ' /> </br>"; } ?> </form> обработчик формы Код (PHP): <?php include ("db.php"); if (isset($_POST['last'])) { $last=$_POST['last']; if (isset ($last)) {trim($last); $last=stripslashes($last); $last=htmlspecialchars($last); if(!empty($_POST['last'])) { $last=$last; } else { echo 'Вы не ввели фамилию пациента'; return; }} if (isset($_POST['first'])) { $first=$_POST['first']; } if (isset ($first)) {trim($first); $first=stripslashes($first); $first=htmlspecialchars($first); } if (isset($_POST['pat'])) { $pat=$_POST['pat']; } if (isset ($pat)) {trim($pat); $pat=stripslashes($pat); $pat=htmlspecialchars($pat); } if (isset($_POST['birth'])) { $birth=$_POST['birth']; } if (isset ($birth)) {trim($birth); $birth=stripslashes($birth); $birth=htmlspecialchars($birth); } if (isset($_POST['doc_id'])) { $doc_id=$_POST['doc_id']; } if (isset ($doc_id)) {trim($doc_id); $doc_id=stripslashes($doc_id); $doc_id=htmlspecialchars($doc_id); } if (isset($_POST['phone'])) { $phone=$_POST['phone']; } if (isset ($phone)) {trim($phone); $phone=stripslashes($phone); $phone=htmlspecialchars($phone); } if (isset($_POST['com'])) { $com=$_POST['com']; } if (isset ($com)) {trim($com); $com=stripslashes($com); $com=htmlspecialchars($com); } if (isset($_POST['vremya'])) { $date=date("Y.m.d"); // год.месяц.число $time=date("H:i:s"); // часы:минуты:секунды $vremya=$date.$time; } //finish CHECK THE analyse ARRAY $kurses = $_POST["kurs"]; // сохраним в этой переменной // список выбранных курсов if (!isset($kurses)) { // если не выбран ни один курс } else { // если хотя бы один курс выбран //функция count вычисляет число элементов в массиве for ($i=0;$i<count($kurses);$i++){ // для каждого выбранного курса $k = $kurses[$i]; // запоминаем название курса $lect = $lect . "$k $times[$k]"; // составляем сообщение } $event = $event . $lect . ""; $str .= "$event"; } //start INSERT INTO addanalyse $result=mysql_query("INSERT INTO pd (last,first,pat,birth,doc_id,phone,com,day_time,a1pd)VALUES ('$last','$first','$pat','$birth','$doc_id','$phone','$com','$vremya','$str')");} $res=mysql_query("SELECT last,first,pat,birth,doc_id,phone,com,day_time,a1pd FROM pd"); $myrow=mysql_fetch_array($res); echo "<a href='http://med/add_patient.php'>Вернутся назад</a>"; /* '<b>Ф И О:</b> ', $myrow[last],' '. $myrow[first],' '.$myrow[pat], '</br><b> Год р.: </b> '.$myrow[birth], '</br> <b>Did- </b>'.$myrow[doc_id],' </br><b>Дата: </b>'.$myrow[day_time], '</br>'.$myrow[a1pd]; */ ?>
есть база "med" в ней 2 таблицы (addanalyse и pd) 1 таблице "addanalyse" находится список анализов Код (PHP): CREATE TABLE IF NOT EXISTS `addanalyse` ( `id` int(10) NOT NULL AUTO_INCREMENT, `russ` varchar(50) NOT NULL, `cat` varchar(50) NOT NULL, `a1` text NOT NULL, `emp` text NOT NULL, `price` decimal(20,0) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ; 2 таблице "pd" добавляются данные о пациенте и прикрепляется к ним в эту же таблицу список анализов с помощью чекбоксов которые я вывожу в цикла Код (PHP): CREATE TABLE IF NOT EXISTS `pd` ( `id` int(10) NOT NULL AUTO_INCREMENT, `last` varchar(35) NOT NULL, `first` varchar(35) NOT NULL, `pat` varchar(35) NOT NULL, `birth` date NOT NULL, `doc_id` int(10) NOT NULL, `phone` varchar(30) NOT NULL, `com` varchar(30) NOT NULL, `day_time` datetime NOT NULL, `a1pd` text NOT NULL, `pricepd` bigint(20) NOT NULL, `total` bigint(20) NOT NULL, PRIMARY KEY (`id`), KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=44 ; вывожу список анализов в цикле с чекбоксами Код (PHP): <?php $res = mysql_query ("SELECT * FROM addanalyse"); while ($myrow = mysql_fetch_array ($res)) { echo "<label>$myrow[russ] $myrow[price] $myrow[emp] </label>"; echo "<input name='kurs[]' type='checkbox' value='$myrow[russ] $myrow[price] $myrow[emp] $myrow[a1] ' /></br>"; } ?> Обрабатываю выбранный чекбоксы Код (PHP): $kurses = $_POST["kurs"]; if (!isset($kurses)) { } else { for ($i=0;$i<count($kurses);$i++){ $k = $kurses[$i]; $lect = $lect . "$k $times[$k]"; } $event = $event . $lect . ""; $str .= "$event"; $res=mysql_query("SELECT * FROM `addanalyse` GROUP BY `price`"); } $result=mysql_query("INSERT INTO pd (last,first,pat,birth,doc_id,phone,com,day_time,total,a1pd)VALUES ('$last','$first','$pat','$birth','$doc_id','$phone','$com','$vremya','$str')");} добавление пациентов и список анализов работает супер, вот только нужно чтобы "price" анализов суммировался и тоже одновременно добавлялся в отдельное поле под название "total" помогите пожалуйста очень нужно но не получается у меня?
поправил твои посты — оформил код в [code=php]тралала[/code] впредь, пожалуйста, делай это сам. прояви уважение к тем, на чью помощь расчитываешь. правильно ли я понимаю, что код достался тебе "по наследству" или сделан добыми людьми с других форумов и ты не понимаешь как он работает? Добавлено спустя 7 минут 37 секунд: обновление в SQL выглядит примерно так: Код (PHP): UPDATE tablename SET fieldname=fieldname+xxx WHERE id=yyy Добавлено спустя 6 минут 14 секунд:ДОБАВОЧКА: чувак, я за тобой убирать устал. ты зачем в каждой теме срешь?! или ты бот?
я не бот, просто я только начал учить php. Последний код я с инета просто выучил и скачал, Никто еще не помогал мне что как делать. Впервые пользуюсь форумом извиняюсь если я везде написал просто думал так я могу получить ответы побыстрей и от большинство программистов. Один раз попросил помочь с кодом и то не получилось. У меня не получается все учить с начала и я знаю что это очень плохо и никуда не годится. Думал здесь помогут это сделать и разобраться с этим прайсем. да ладно не закончить мою прогу никогда. (( спасибо все кто писал и не писал.
Я аж прослезился. Не можешь в программирование - оплачивай услуги тех, кто может. В противном случае - страдай дальше.
ЗЛОЙ ГОРЫНЫЧЪЪЪ! Чел учится =) И судя по таким $myrow['russ'] ЕЩЕ И КОПИПАСТ! Сразу сводятся мысли на то, что ему надо отделаться =)
ruslanjonaka, я тебе дам пару советов, но привести к успеху не обещаю ))) 1) важно избавляться от косяков сразу, а не наслаивать одни на другие до полного изнеможения. поэтому: читаешь руководство по отлову ошибок: http://phpfaq.ru/debug , ОЧЕНЬ ВАЖНО включить вывод предупреждений и исправить все мелкие ошибки. 2) $myrow[russ] это неправильно, хотя с натяжкой работает. пиши $myrow['russ'] внутри строк с двойными кавычками такие подстановки работают, советую дополнительно оборачивать в фигурные скобки: Код (PHP): "<label>{$myrow['russ']} {$myrow['price'] {$myrow['emp']} </label>" 3) $str .= "$event"; выдает нуба с головой. зачем здесь кавычки?! не нужны они: $str .= $event; исправь эти мелочи, а потом попробуй сделать добавление к полю total или что там у тебя за вопрос. попробуй, что не получится — пиши, поможем. помогают тем, кто сам себе помогает.
Спасибо artoodetoo за совет и поддержку. Попробую писать как ты сказал. Теперь буду дополнительно оборачивать в фигурные скобки. Ты только отвечай а то тут мало кто хотя бы советы дает. Ты первый кто нормально ответил Благодарю за это. сегодня после работы попробую переписать все как ты поправил посмотрим что получится.
Я только учусь, но хочется побыстрей закончить то что начал а там осталось только добавить в отдельное поле сумму денег и в отдельное поле список выбранных анализов я сейчас читаю foreach и for походу с этими циклами я сделаю то что мне нужно.
Нужна помощь. Все работает. 1. Выбираю из из таблицы addanalyse(russkiy,labname,a1,pricea1,) все данные. 2. Создаю цикл с чекбоксом. 3. Отправляю обработчику php. 4. Обработчик принимает выбранные чекбоксы и заносить их в таблицу pd(a1pd,labnamea1,pricepd) Все супер работает нормально. Проблема в том что мне приходится создавать 2 чекбокса с 2мя "name"ами (1-name для название анализов, 2-name для суммирование цен анализов) обрабатываю с помощью цикла for. А мне нужно еще добавить краткое название для отчета(labname) это чтож мне придется еще один "name" создавать или это можно сделать одним чекбоксом. Помогите пожалуйста как сделать чтобы передавался 1-чекбокс и 1-name, а в обработчике я мог суммировать после суммирование вывод суммы добавлялся в отдельное поле добавлял краткое название для отчета в отдельное поле, и выбранные анализы я мог добавить в отдельное поле. Как осуществить эту операцию в php. Вот сам код: Отправка данных в php. ?php $res = mysql_query ("SELECT * FROM addanalyse"); while ($myrow = mysql_fetch_array ($res)){ echo "<input name='kurs2[]' type='checkbox' value='$myrow[russkiy] $myrow[labname] $myrow[a1]' />"; echo "<input name='kurs[]' type='checkbox' value='$myrow[pricea1]' />"; echo "<label>$myrow[russkiy] $myrow[pricea1] </label> </br>"; } ?> Обработчик php <? $kurses = $_POST["kurs2"]; if (!isset($kurses)) { } else { for ($i=0;$i<count($kurses);$i++){ $k = $kurses[$i]; $lect = $lect . "$k $times[$k]"; } $event = $event . $lect . ""; $str .= $event; } $kurses = $_POST["kurs"]; { foreach($kurses as $key => $value) { $res1 += (int)$value; } } //start INSERT INTO addanalyse $result=mysql_query("INSERT INTO pd (labnamea1,a1pd,pricepd)VALUES ('$labname','$str','$res1')");} ?> Заранее спасибо
Оставьте в чекбоксе только айдишники, а все остальные нужные поля, хоть 2, хоть 22, доставайте из БД в обработчике. if (!isset($kurses)) { } else { for ($i=0;$i<count($kurses);$i++){ $k = $kurses[$i]; $lect = $lect . "$k $times[$k]"; } Этот ужас пишется так: Код (Text): if (isset($kurses)) foreach ($kurses as $k) $lect.="$k $times[$k]";
ruslanjonaka, я ведь тебя по хорошему просил — оформляй свой код в ббкоде [code]. вот увидишь, отношение к тебе сразу улучшится. как ты к другим относишся, так и они к тебе. а будешь лезть в личку со своим "подайте христа ради", только неприязнь будешь вызывать.