За последние 24 часа нас посетили 20317 программистов и 1562 робота. Сейчас ищут 1937 программистов ...

Добавление данных

Тема в разделе "PHP и базы данных", создана пользователем lor08, 27 сен 2010.

  1. lor08

    lor08 Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    98
    Симпатии:
    0
    Есть форма :

    Код (Text):
    1. <div class="cblock">
    2.     <div class="radius rtop"><div> </div></div>
    3.     <div class="maincont">
    4. <form action="add.php" method="post">
    5.         <h1 class="heading2">Добавить результат</h1>
    6.         <table class="tableform"><tbody>
    7.             <tr class="fieldtr">
    8.                 <td class="label">Категорния:<span class="impot">*</span></td>
    9.                 <td><select sourceindex="460" size="1" name="cat"><option value="0">&nbsp;</option><option value="1">Товарка</option><option value="2">АПЛ</option></select></td>
    10.             </tr>
    11.  
    12.             <tr class="fieldtr">
    13.                 <td class="label"><input name="homeT" value="Home team" maxlength="15" class="f_input" type="text"> :</td>
    14.                 <td><input name="awayT" value="Away team" maxlength="15" class="f_input" type="text"></td>
    15.             </tr>
    16.            
    17.             <tr class="fieldtr">
    18.                 <td class="label"><input name="homeG" value="" maxlength="2" class="f_input" type="text"> :</td>
    19.                 <td><input name="awayG" value="" maxlength="2" class="f_input" type="text"></td>
    20.             </tr>
    21.  
    22.             <tr class="fieldtr">
    23.                 <td class="label">Ник соперника:</td>
    24.                 <td><input name="sopnik" value="" maxlength="150" class="f_input" type="text"></td>
    25.             </tr>
    26.  
    27.             <tr class="fieldtr">
    28.                 <td class="label">ID соперника:</td>
    29.                 <td><input name="sopid" value="" maxlength="150" class="f_input" type="text"></td>
    30.             </tr>
    31.  
    32.             <tr class="fieldtr">
    33.                 <td class="label">Где играли:</td>
    34.                 <td><select sourceindex="613" size="1" id="bdF20" class="manFlFlt3" name="filter3"><option value="0" style="color: rgb(163, 163, 163);">- выбрать -</option><option value="1">Дома</option><option value="2">В гостях</option></select></td>
    35.             </tr>
    36.                    
    37.             <tr class="fieldtr">
    38.                 <td colspan="2"></td>
    39.             </tr>
    40.             <tr class="fieldtr flast">
    41.                 <td colspan="2" align="center">
    42.                     <input name="add" class="fbutton" value="Отправить" title="Отправить" type="submit">
    43.                     <input name="nview" onclick="preview()" class="fbutton" value="Просмотр" title="Просмотр" type="submit">
    44.                 </td>
    45.             </tr>
    46.         </tbody></table>
    47.     </div>
    48.     <div class="radius rbtm"><div> </div></div>
    49. </div>
    50. </form>
    С этой формы данные отправляются в этот скрипт:

    Код (Text):
    1. <?php
    2.     $link = mysql_connect("localhost", "root", "") or die("Could not connect: " . mysql_error());
    3.     mysql_select_db("test") or die(mysql_error());
    4.  
    5. $cat  = isset($_POST['cat'])?(int)$_POST['cat']:0;
    6. $homeT = isset($_POST['homeT'])?(int)$_POST['homeT']:0;
    7. $homeG  = isset($_POST['homeG'])?(int)$_POST['homeG']:0;
    8. $awayT  = isset($_POST['awayT'])?(int)$_POST['awayT']:0;
    9. $awayG  = isset($_POST['awayG'])?(int)$_POST['awayG']:0;
    10. $sopnik  = isset($_POST['sopnik'])?(int)$_POST['sopnik']:0;
    11. $sopid  = isset($_POST['sopid'])?(int)$_POST['sopid']:0;
    12. $filter3  = isset($_POST['filter3'])?(int)$_POST['filter3']:0;
    13.  
    14. if($cat || $homeT || $homeG || $awayT|| $awayG || $sopnik || $sopid || $filter3) {  
    15.  
    16.    $query = "INSERT IGNORE INTO dle_results (`id`, `cat`, `user`, `homeT`, `awayT`, `homeG`, `awayG`, `sopnik`, `sopid`, `filter3`, `date`) VALUES
    17. (0, $cat, 'Admin', $homeT, $awayT, $homeG, $awayG, $sopnik, $sopid, $filter3, 0)";
    18.  
    19.     $result = mysql_query($query); }
    20.  
    21. if(!$result) { echo ("<font color=red>Mатериал не добавлен</font>");} else echo "Новость успешно добавлена<br>";
    22.  
    23.    mysql_close($link);
    24. ?>

    когда в любом из полей формы данные состоят из цифр то всё нормально отправляться,а когда данные из букв то в БД отправляются только цифра 1 или 0 в чём может быть дело?
     
  2. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    $cat = isset($_POST['cat'])?(int)$_POST['cat']:0;
    все переменные сводятся к числу. убери (int) там где это тебе не нужно
     
  3. lor08

    lor08 Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    98
    Симпатии:
    0
    Апельсин
    во,спс.
    а ещё вот такой вопрос как можно вставить значение текущий даты при отправлении?
     
  4. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    $query = "INSERT IGNORE INTO dle_results (`id`, `cat`, `user`, `homeT`, `awayT`, `homeG`, `awayG`, `sopnik`, `sopid`, `filter3`, `date`) VALUES
    (0, $cat, 'Admin', $homeT, $awayT, $homeG, $awayG, $sopnik, $sopid, $filter3, NOW())";


    Поле date должно быть типа DATETIME
     
  5. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    INSERT INTO `table1` (`name`, `date`) VALUES ('any', NOW())
    or
    $date = date("Y-m-d G:i:s");
    INSERT INTO `table1` (`name`, `date`) VALUES ('any', '".$date."')

    ну, об этом можно и поспорить. int(10) можно приспособить.
     
  6. lor08

    lor08 Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    98
    Симпатии:
    0
    а отправляться в этом случае будет серверное время или время того кто отправляет?
     
  7. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    время не отправляется, его скрипт получает в процессе обработки твоего скрипта от сервера.
     
  8. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Апельсин

    =)
    Имхо datetime более универсально, с int отработает такой запрос?

    [sql]SET date = DATE_ADD(date, INTERVAL +1 MONTH)[/sql] ? (я не проверял))))
     
  9. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    lor08

    Чтобы получить время того, кто отправляет, javascriptом получай время и заполняй поле на форме
     
  10. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    оно не более универсально. нужно смотреть по обстоятельствам.

    в пхп посчитать и подставить
     
  11. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Апельсин
    Согласен. Всё от задач зависит. Насколько я понимаю автору нужны дата и время для статистики, не для спец преобразований.

    Ессно, но мы ж про мускуль вроде=)) ИМХО, всё что можно делать на уровне базы нужно делать именно там))
     
  12. lor08

    lor08 Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    98
    Симпатии:
    0
    ну всё тогда нормально,мне кокрас и надо чтобы серверное время было,всё тип топ тогда ))