За последние 24 часа нас посетили 18622 программиста и 1658 роботов. Сейчас ищут 982 программиста ...

С формы в БД

Тема в разделе "Прочие вопросы по PHP", создана пользователем ilarwar, 14 июл 2013.

  1. ilarwar

    ilarwar Новичок

    С нами с:
    14 июл 2013
    Сообщения:
    3
    Симпатии:
    0
    Помогите!
    скрипт должен записывать значение в бд mysql
    <?php
    include ('connect_mysql.php');
    $name = '1';
    $address = '1';
    $current = '0';
    $priority = '1';
    $last_update = '0';
    $status = '0';
    $interval = '1';

    $sql_xx = 'SELECT * FROM list_sens_light';
    $res = mysql_query($sql_xx);
    $num_rows_xx = mysql_num_rows($res);
    $num_rows_xx++;


    $sql = 'INSERT INTO list_sens_light(id, name, address, current_value, priority, last_update, status,interval)
    VALUES("'.$num_rows_xx.'","'.$name.'","'.$address.'","'.$current.'","'.$priority.'","'.$last_update.'","'.$status.'", '".$interval.'")';


    if(!mysql_query($sql))
    {
    echo '<center><p><b>Ошибка при добавлении данных! Ошибка </b></p></center> ';
    echo mysql_errno() . ": " . mysql_error() . "\n";
    }
    else
    {
    echo '<center><p><b>Данные добавлены!</b></p></center>';
    }
    ?>

    пишет что где-то ошибка с интервалами! перепробывал все!
    заранее спасибо!
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    для начала в кавычки возьми названия полей. в обратные.
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    и еще:
    $sql = 'INSERT INTO list_sens_light(id, name, address, current_value, priority, last_update, status,interval)
    VALUES("'.$num_rows_xx.'","'.$name.'","'.$address.'","'.$current.'","'.$priority.'","'.$last_update.'","'.$status.'", '".$interval.'")';
     
  4. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    игорь не понял =(
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    "'.$status.'"
    '".$interval.'" - еще ' " . $ляля . ' "

    вобщем такие мелочи и так банально (
     
  6. ilarwar

    ilarwar Новичок

    С нами с:
    14 июл 2013
    Сообщения:
    3
    Симпатии:
    0
    <?php
    include ('connect_mysql.php');

    // Принятие данных о типе нового датчика

    $sens_type = $_POST['sens_type'];

    // Принятие данных о новом датчике и занесение их в таблицу БД
    $name = $_POST['sens_name'];
    $address = $_POST['sens_address'];
    $current = '0' ;
    $priority = $_POST['sens_priority'];
    $last_update = '0' ;
    $status = '0' ;
    $interval = $_POST['update_interval'];

    if ($sens_type = 'temp_out')
    {
    $table_name = 'list_sens_temp_out';
    }
    else if ($sens_type = 'temp_in_1')
    {
    $table_name = 'list_sens_temp_in_1';
    }
    else if ($sens_type = 'temp_in_2')
    {
    $table_name = 'list_sens_temp_in_2';
    }
    else if ($sens_type = 'sens_light_out')
    {
    $table_name = 'list_sens_light_out';
    }
    else if ($sens_type = 'sens_light_1')
    {
    $table_name = 'list_sens_light_in_1';
    }
    else if ($sens_type = 'sens_light_2')
    {
    $table_name = 'list_sens_light_in_2';
    }
    else 'FUCK!!!';









    $sql = 'INSERT INTO "'.$sens_type.'"(`id`,`name`,`address`,`current_value`,`priority`,`last_update`,`status`,`update_interval`)
    VALUES(_,"'.$name.'","'.$address.'","'.$current.'","'.$priority.'","'.$last_update.'","'.$status.'", "'.$interval.'")';

    if(!mysql_query($sql))
    {
    echo '<center><p><b>Ошибка при добавлении данных! Ошибка </b></p></center> ';
    echo mysql_errno() . ": " . mysql_error() . "\n";
    }
    else
    {
    echo '<center><p><b>Данные добавлены!</b></p></center>';
    }
    ?>



    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Документ без названия</title>
    </head><table width="800" border="1">
    <form method='post' action='get_data.php'>
    <tr>
    <td width=20% align=center><img src="images/img_06.png"></td>
    <td width=40% align=center>Тип датчика</td>
    <td width=40% align=left><p>
    <label>
    <input type="radio" name="sens_type" value="temp_out" id="sens_type_0">
    Термометр наружний</label>
    <br>
    <label>
    <input type="radio" name="sens_type" value="temp_in_1" id="sens_type_1">
    Термометр внутренний (1 этаж)</label>
    <br>
    <label>
    <input type="radio" name="sens_type" value="temp_in_2" id="sens_type_2">
    Термометр внутренний (2 этаж)</label>
    <br>
    <label>
    <input type="radio" name="sens_type" value="sens_light_out" id="sens_type_2">
    Датчик освещения наружний</label>
    <br>
    <label>
    <input type="radio" name="sens_type" value="sens_light_1" id="sens_type_2">
    Датчик освещения (1 этаж)</label>
    <br>
    <label>
    <input type="radio" name="sens_type" value="sens_light_2" id="sens_type_2">
    Датчик освещения (2 этаж)</label>
    <br>
    </p></td>
    <tr>
    <td width=20% align=center><img src="images/img_06.png"></td>
    <td width=40% align=center>Название Датчика</td>
    <td width=40% align=center><input type="text" size='30' name='sens_name'></td>
    </tr>
    <tr>
    <td width=20% align=center><img src="images/img_06.png"></td>
    <td width=40% align=center> Адресс Датчика</td>
    <td width=40% align=center><input type="text" size='30' name='sens_address'></td>
    </tr>
    <tr>
    <td width=20% align=center><img src="images/img_06.png"></td>
    <td width=40% align=center>Приоритет датчикат</td>
    <td width=40% align=center><input type="number" size='30' name='sens_priority'></td>
    </tr>
    <tr>
    <td width=20% align=center><img src="images/img_06.png"></td>
    <td width=40% align=center>Интервал обновления</td>
    <td width=40% align=center><input type="number" size='30' name='update_interval'></td>
    </tr>
    </table>
    <input type='submit' value='Добавить запись' />
    <input type="reset">
    <body>
    </body>
    </html>

    никак не пойму в чём ошибся?
     
  7. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    а это что такое?
    и еще было сперва
    внезапно стало
    какая-то необычайная легкость в выборе имен. на самом деле какое там поле?
    так что за ошибку пишет, буквально?
     
  8. ilarwar

    ilarwar Новичок

    С нами с:
    14 июл 2013
    Сообщения:
    3
    Симпатии:
    0
    1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"temp_out"(`id`,`name`,`address`,`current_value`,`priority`,`last_update`,`statu' at line 1

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

    НЕ пойму как сделать так чтобы в поле Id ничего не записывалось т.к. у него стоит auto asign. такой выбор имен не случаен т.к. потом будет некоторые добавы и так будет понятнее..
     
  9. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    ликбез:
    1. если поле автоматически получает значение и тебя это устраивает, какого болта ты в него что-то пишешь?! просто не трогай его.
    2. имена таблиц и полей бери в косые кавычки. у тебя есть двойные
    3. строковые значения пиши в одинарных кавычках. у тебя опять б* двойные
    4. ну ты понял, двойные кавычки нигде в запросе не используются. значит [ барабанная дробь ] в них можно взять саму строку с запросом. особенно приятно, что строку не придется рвать чтобы вставить переменную: "ололо {$var} пыщпыщ" -- удобно!

    получается что-то такое:
    Код (PHP):
    1. $sql = "INSERT INTO `{$sens_type}`(`name`,`address`,`current_value`,`priority`,`last_update`,`status`,`update_interval`)
    2. VALUES('{$name}','{$address}','{$current}','{$priority}','{$last_update}','{$status}','{$interval}')";
    здесь можно было обойтись без фигурных скобок, но лучше используй их всегда. здоровее будешь.