За последние 24 часа нас посетил 52441 программист и 1799 роботов. Сейчас ищут 833 программиста ...

помогите пожалуйста кто знает

Тема в разделе "PHP для новичков", создана пользователем ruslanjonaka, 18 июн 2014.

  1. ruslanjonaka

    ruslanjonaka Новичок

    С нами с:
    8 июн 2014
    Сообщения:
    8
    Симпатии:
    0
    помогите пожалуйста кто знает.

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

    сама форма
    Код (PHP):
    1. <form name="" action="blogs/insert_patient_blog.php" method="POST" >
    2.                 <p><h2>Добавление клиента</h2></p>
    3.                 <p>Фамилия: </br> <input type="text" name="last" style='width:200px'></p>
    4.                 <p>Имя: </br><input type="text" name="first" style='width:200px'></p>
    5.                 <p>Отчество: </br><input type="text" name="pat" style='width:200px'></p>
    6.                 <p>Год.р.: </br><input type="text" name="birth" style='width:200px'></p>
    7.                 <p>ID Доктора: </br><input type="text" name="doc_id" style='width:200px'></p>
    8.                 <p>Тел.: </br><input type="text" name="phone" style='width:200px'></p>
    9.                 <p>Коментарий: </br><input type="text" name="com" style='width:200px'></p>
    10.                 <p><input type="submit" name="vremya" value="Добавить пациента" style='background-color:#FFF8DC'></p>
    11.                 <p><input type="submit" name="clear" value="Очистить" /></p>
    12.                 <p>Общая цена: <input type="text" name="" value="" style='width:200px'></p> 
    13.                 
    14. <?php
    15. $res = mysql_query ("SELECT * FROM addanalyse");
    16. while ($myrow = mysql_fetch_array ($res)){
    17.  
    18. echo "<label>$myrow[russ] $myrow[price] $myrow[emp] </label>";
    19. echo "<input name='kurs[]' type='checkbox' value='$myrow[russ] $myrow[price] $myrow[emp] $myrow[a1] ' /> </br>"; 
    20.                    
    21. }
    22.     ?>
    23. </form>



    обработчик формы
    Код (PHP):
    1. <?php
    2.  
    3. include ("db.php");
    4.     
    5.     if (isset($_POST['last']))
    6. {    $last=$_POST['last']; 
    7.             if (isset ($last)) {trim($last);
    8. $last=stripslashes($last);
    9. $last=htmlspecialchars($last);                        
    10.     if(!empty($_POST['last']))
    11.     {
    12.         $last=$last;
    13.     }
    14.     else
    15.     {
    16.         echo 'Вы не ввели фамилию пациента';
    17.         return;
    18.     }}         
    19.                     
    20.  
    21.     if (isset($_POST['first']))
    22. {    $first=$_POST['first'];
    23. }            if (isset ($first)) {trim($first);
    24. $first=stripslashes($first);
    25. $first=htmlspecialchars($first);
    26. } 
    27.                 
    28.  
    29.     if (isset($_POST['pat']))
    30. {    $pat=$_POST['pat'];
    31. }            if (isset ($pat)) {trim($pat);
    32. $pat=stripslashes($pat);
    33. $pat=htmlspecialchars($pat);
    34. } 
    35.  
    36.  
    37.     if (isset($_POST['birth']))
    38. {    $birth=$_POST['birth'];
    39. }            if (isset ($birth)) {trim($birth);
    40. $birth=stripslashes($birth);
    41. $birth=htmlspecialchars($birth);
    42. } 
    43.  
    44.     if (isset($_POST['doc_id']))
    45. {    $doc_id=$_POST['doc_id'];
    46. }            if (isset ($doc_id)) {trim($doc_id);
    47. $doc_id=stripslashes($doc_id);
    48. $doc_id=htmlspecialchars($doc_id);
    49. } 
    50.  
    51.                 
    52.     if (isset($_POST['phone']))
    53. {    $phone=$_POST['phone'];
    54. }            if (isset ($phone)) {trim($phone);
    55. $phone=stripslashes($phone);
    56. $phone=htmlspecialchars($phone);
    57. } 
    58.  
    59.  
    60.     if (isset($_POST['com']))
    61. {    $com=$_POST['com'];
    62. }            if (isset ($com)) {trim($com);
    63. $com=stripslashes($com);
    64. $com=htmlspecialchars($com);
    65. } 
    66.  
    67.  
    68.         if (isset($_POST['vremya']))
    69. {   
    70. $date=date("Y.m.d"); // год.месяц.число
    71. $time=date("H:i:s"); // часы:минуты:секунды 
    72.  
    73. $vremya=$date.$time;
    74.  
    75. } 
    76. //finish CHECK THE analyse ARRAY
    77.  
    78. $kurses = $_POST["kurs"];   // сохраним в этой переменной 
    79.                             // список выбранных курсов
    80. if (!isset($kurses)) { // если не выбран ни один курс 
    81.    } else { // если хотя бы один курс выбран
    82.      //функция count вычисляет число элементов в массиве
    83.     for ($i=0;$i<count($kurses);$i++){ 
    84.                           // для каждого выбранного курса
    85.         $k = $kurses[$i]; // запоминаем название курса
    86.         $lect = $lect . "$k  $times[$k]"; 
    87.     
    88.         // составляем сообщение
    89.                           }
    90.     $event = $event . $lect . "";
    91.     $str .= "$event";
    92.     }
    93.  
    94.  
    95.  
    96.  
    97. //start INSERT INTO addanalyse
    98. $result=mysql_query("INSERT INTO pd (last,first,pat,birth,doc_id,phone,com,day_time,a1pd)VALUES 
    99.     ('$last','$first','$pat','$birth','$doc_id','$phone','$com','$vremya','$str')");}
    100.  
    101.  
    102.         $res=mysql_query("SELECT  last,first,pat,birth,doc_id,phone,com,day_time,a1pd FROM pd");
    103.         $myrow=mysql_fetch_array($res);
    104.         echo "<a href='http://med/add_patient.php'>Вернутся назад</a>";
    105.         /* '<b>Ф И О:</b> ',  $myrow[last],' '. $myrow[first],' '.$myrow[pat],
    106.         '</br><b> Год р.: </b> '.$myrow[birth], '</br> <b>Did- </b>'.$myrow[doc_id],' </br><b>Дата: </b>'.$myrow[day_time],
    107.         '</br>'.$myrow[a1pd];
    108.         */
    109.         ?>
     
  2. maxycwebber

    maxycwebber Новичок

    С нами с:
    25 мар 2014
    Сообщения:
    263
    Симпатии:
    11
    Адрес:
    Gdansk
    много кода. лень изучать
     
  3. ruslanjonaka

    ruslanjonaka Новичок

    С нами с:
    8 июн 2014
    Сообщения:
    8
    Симпатии:
    0
    есть база "med" в ней 2 таблицы (addanalyse и pd)

    1 таблице "addanalyse" находится список анализов
    Код (PHP):
    1. CREATE TABLE IF NOT EXISTS `addanalyse` (
    2.   `id` int(10) NOT NULL AUTO_INCREMENT,
    3.   `russ` varchar(50) NOT NULL,
    4.   `cat` varchar(50) NOT NULL,
    5.   `a1` text NOT NULL,
    6.   `emp` text NOT NULL,
    7.   `price` decimal(20,0) NOT NULL,
    8.   PRIMARY KEY (`id`)
    9. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ; 

    2 таблице "pd" добавляются данные о пациенте и прикрепляется к ним в эту же таблицу список анализов с помощью чекбоксов которые я вывожу в цикла
    Код (PHP):
    1. CREATE TABLE IF NOT EXISTS `pd` (
    2.   `id` int(10) NOT NULL AUTO_INCREMENT,
    3.   `last` varchar(35) NOT NULL,
    4.   `first` varchar(35) NOT NULL,
    5.   `pat` varchar(35) NOT NULL,
    6.   `birth` date NOT NULL,
    7.   `doc_id` int(10) NOT NULL,
    8.   `phone` varchar(30) NOT NULL,
    9.   `com` varchar(30) NOT NULL,
    10.   `day_time` datetime NOT NULL,
    11.   `a1pd` text NOT NULL,
    12.   `pricepd` bigint(20) NOT NULL,
    13.   `total` bigint(20) NOT NULL,
    14.   PRIMARY KEY (`id`),
    15.   KEY `id` (`id`)
    16. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=44 ;
    17.  

    вывожу список анализов в цикле с чекбоксами
    Код (PHP):
    1. <?php
    2. $res = mysql_query ("SELECT * FROM addanalyse");
    3. while ($myrow = mysql_fetch_array ($res))
    4. {
    5. echo "<label>$myrow[russ] $myrow[price] $myrow[emp] </label>";
    6. echo "<input name='kurs[]' type='checkbox' value='$myrow[russ] $myrow[price] $myrow[emp] $myrow[a1] ' /></br>"; 
    7. }
    8. ?>
    Обрабатываю выбранный чекбоксы
    Код (PHP):
    1. $kurses = $_POST["kurs"]; 
    2.  if (!isset($kurses)) { 
    3.     } else { 
    4.        for ($i=0;$i<count($kurses);$i++){ 
    5.         $k = $kurses[$i];
    6.         $lect = $lect . "$k  $times[$k]"; 
    7.     }
    8.     $event = $event . $lect . "";
    9.     $str .= "$event";
    10. $res=mysql_query("SELECT * FROM `addanalyse` GROUP BY `price`");
    11.     }
    12.  
    13. $result=mysql_query("INSERT INTO pd (last,first,pat,birth,doc_id,phone,com,day_time,total,a1pd)VALUES 
    14.     ('$last','$first','$pat','$birth','$doc_id','$phone','$com','$vremya','$str')");}
    15.  
    добавление пациентов и список анализов работает супер, вот только нужно чтобы "price" анализов суммировался и тоже одновременно добавлялся в отдельное поле под название "total" помогите пожалуйста очень нужно но не получается у меня?
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    поправил твои посты — оформил код в [code=php]тралала[/code]
    впредь, пожалуйста, делай это сам. прояви уважение к тем, на чью помощь расчитываешь.

    правильно ли я понимаю, что код достался тебе "по наследству" или сделан добыми людьми с других форумов и ты не понимаешь как он работает?

    Добавлено спустя 7 минут 37 секунд:
    обновление в SQL выглядит примерно так:
    Код (PHP):
    1. UPDATE tablename SET fieldname=fieldname+xxx WHERE id=yyy
    Добавлено спустя 6 минут 14 секунд:ДОБАВОЧКА: чувак, я за тобой убирать устал. ты зачем в каждой теме срешь?! или ты бот?
     
  5. ruslanjonaka

    ruslanjonaka Новичок

    С нами с:
    8 июн 2014
    Сообщения:
    8
    Симпатии:
    0
    я не бот, просто я только начал учить php. Последний код я с инета просто выучил и скачал, Никто еще не помогал мне что как делать. Впервые пользуюсь форумом извиняюсь если я везде написал просто думал так я могу получить ответы побыстрей и от большинство программистов. Один раз попросил помочь с кодом и то не получилось. У меня не получается все учить с начала и я знаю что это очень плохо и никуда не годится. Думал здесь помогут это сделать и разобраться с этим прайсем. да ладно не закончить мою прогу никогда. :((( спасибо все кто писал и не писал.
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Я аж прослезился. Не можешь в программирование - оплачивай услуги тех, кто может. В противном случае - страдай дальше.
     
  7. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    ЗЛОЙ ГОРЫНЫЧЪЪЪ! :D
    Чел учится =)
    И судя по таким $myrow['russ']
    ЕЩЕ И КОПИПАСТ! Сразу сводятся мысли на то, что ему надо отделаться =)
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    ruslanjonaka, я тебе дам пару советов, но привести к успеху не обещаю )))
    1) важно избавляться от косяков сразу, а не наслаивать одни на другие до полного изнеможения. поэтому:
    читаешь руководство по отлову ошибок: http://phpfaq.ru/debug , ОЧЕНЬ ВАЖНО включить вывод предупреждений и исправить все мелкие ошибки.
    2) $myrow[russ] это неправильно, хотя с натяжкой работает. пиши $myrow['russ']
    внутри строк с двойными кавычками такие подстановки работают, советую дополнительно оборачивать в фигурные скобки:
    Код (PHP):
    1. "<label>{$myrow['russ']} {$myrow['price'] {$myrow['emp']} </label>"
    3) $str .= "$event";
    выдает нуба с головой. зачем здесь кавычки?! не нужны они: $str .= $event;

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

    попробуй, что не получится — пиши, поможем. помогают тем, кто сам себе помогает.
     
  9. ruslanjonaka

    ruslanjonaka Новичок

    С нами с:
    8 июн 2014
    Сообщения:
    8
    Симпатии:
    0
    Спасибо artoodetoo за совет и поддержку. Попробую писать как ты сказал. Теперь буду дополнительно оборачивать в фигурные скобки. Ты только отвечай а то тут мало кто хотя бы советы дает. Ты первый кто нормально ответил Благодарю за это. сегодня после работы попробую переписать все как ты поправил посмотрим что получится.
     
  10. maxycwebber

    maxycwebber Новичок

    С нами с:
    25 мар 2014
    Сообщения:
    263
    Симпатии:
    11
    Адрес:
    Gdansk
  11. ruslanjonaka

    ruslanjonaka Новичок

    С нами с:
    8 июн 2014
    Сообщения:
    8
    Симпатии:
    0
    Я только учусь, но хочется побыстрей закончить то что начал а там осталось только добавить в отдельное поле сумму денег и в отдельное поле список выбранных анализов я сейчас читаю foreach и for походу с этими циклами я сделаю то что мне нужно.
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ruslanjonaka
    я думаю своей картинкой он к artoodetoo обращался, ибо всё верно написано.
     
  13. ruslanjonaka

    ruslanjonaka Новичок

    С нами с:
    8 июн 2014
    Сообщения:
    8
    Симпатии:
    0
    Нужна помощь.
    Все работает.
    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')");}
    ?>


    Заранее спасибо
     
  14. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Оставьте в чекбоксе только айдишники, а все остальные нужные поля, хоть 2, хоть 22, доставайте из БД в обработчике.
    if (!isset($kurses)) {
    } else {
    for ($i=0;$i<count($kurses);$i++){
    $k = $kurses[$i];
    $lect = $lect . "$k $times[$k]";
    }
    Этот ужас пишется так:
    Код (Text):
    1. if (isset($kurses))
    2. foreach ($kurses as $k)
    3.     $lect.="$k $times[$k]";
     
  15. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    ruslanjonaka, я ведь тебя по хорошему просил — оформляй свой код в ббкоде [code]. вот увидишь, отношение к тебе сразу улучшится. как ты к другим относишся, так и они к тебе.

    а будешь лезть в личку со своим "подайте христа ради", только неприязнь будешь вызывать.