За последние 24 часа нас посетили 19443 программиста и 1604 робота. Сейчас ищут 1013 программистов ...

Ввод в БД.

Тема в разделе "PHP для новичков", создана пользователем AccessDenied, 30 дек 2009.

  1. AccessDenied

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

    С нами с:
    27 янв 2008
    Сообщения:
    58
    Симпатии:
    0
    Адрес:
    Беларусь
    HTML:
    1.     <form action="add_description.php" method="post" class="p_table">
    2.       <label>Твое имя:<br>
    3.       <input type="text" name="name">
    4.       </label>
    5.       <br>
    6.       <label>Класс персонажа:<br>
    7.       <input type="text" name="class_name">
    8.       </label>
    9.       <br>
    10.       <label>Краткое описание:<br>
    11.       <textarea name="mini_text" cols="70" rows="10"></textarea>
    12.       </label>
    13.       <br>
    14.       <label>Полное описание:<br>
    15.       <textarea name="old_text" cols="70" rows="10"></textarea>
    16.       </label>
    17.       <br>
    18.       <br>
    19.       <input name="Input" type="submit" value="Отправить">
    20.     </form>
    Делаем маленькую страничку с формой, заполняем, жмем отправить, и.. и она выдает, что не добавлено.
    PHP:
    1. <?
    2. $connect = mysql_connect("localhost","root","root");
    3. mysql_query(db,$connect);
    4. if (isset($_POST['name'])) {$name = $_POST['name'];}
    5. if (isset($_POST['class_name'])) {$class_name = $_POST['class_name'];}
    6. if (isset($_POST['mini_text'])) {$mini_text = $_POST['mini_text'];}
    7. if (isset($_POST['old_text'])) {$old_text = $_POST['old_text'];}
    8. ?>
    9. <?
    10. if (isset($name) && isset($class_name) && isset($mini_text) && isset($old_text))
    11. {
    12.   $result = mysql_query("INSERT INTO description (name,class_name,mini_text,old_text) VALUES ('$name,$class_name,$mini_text,$old_text')");
    13.   if($result == 'true') {echo "Сообщение было успешно добавлено, теперь можно с чистой душой возвращаться куда-нибудь.";}
    14.   else {echo "Странно, вроде все должно работать, но сообщение не добавлено!";}
    15. }
    16. else
    17. {
    18.   echo "<p>Все бы было хорошо, если бы ты заполнил все поля.</p>";
    19. }
    20.  
    21.  
    22. ?>
     
  2. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    if($result == 'true')

    есть какие-то причины, по которым mysql_query может вернуть строку 'true' ?

    почему не просто if ($result) ?
     
  3. bFree

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

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    это вроде попов
     
  4. AccessDenied

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

    С нами с:
    27 янв 2008
    Сообщения:
    58
    Симпатии:
    0
    Адрес:
    Беларусь
    это попов, но несколько переделанный. (обидно что спалился :))

    короче, мне возвращает 14 строчку, независимо от того, if($result == 'true') или if ($result)
     
  5. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    и вообще
    $result = mysql_query("INSERT INTO description (name,class_name,mini_text,old_text) VALUES ('$name,$class_name,$mini_text,$old_text')") || die("Oops!!! - ".mysql_error());

    И внимательно читай сообщение об ошибке.
     
  6. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    и я даже догадываюсь что оно скажет... оно кагбэ намекнет, что то что у тебя написано в values нормальный mysql понять не может... точнее понять может, но запихать в твой insert не в состоянии
     
  7. AccessDenied

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

    С нами с:
    27 янв 2008
    Сообщения:
    58
    Симпатии:
    0
    Адрес:
    Беларусь
    не понимаю, вверху я сделал выборку базы, в инсерт таблица description, чето мозги совершенно не варят.
     
  8. AccessDenied

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

    С нами с:
    27 янв 2008
    Сообщения:
    58
    Симпатии:
    0
    Адрес:
    Беларусь
    и почему оно пишет, что нет такой базы?
     
  9. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    потому что попов
     
  10. AccessDenied

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

    С нами с:
    27 янв 2008
    Сообщения:
    58
    Симпатии:
    0
    Адрес:
    Беларусь
    Внятное объяснение. И главное, полностью понятно, и все стало на свои места и заработало.
     
  11. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
  12. VItalijs

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

    С нами с:
    17 дек 2008
    Сообщения:
    244
    Симпатии:
    0
    Адрес:
    Рига, Латвия
    PHP:
    1.  
    2. <?$sql_str = "INSERT INTO description (name,class_name,mini_text,old_text) VALUES ('$name,$class_name,$mini_text,$old_text')";
    3. echo $sql_str;
    4. ?>
    и попробуйте вбить это в БД. а вообще есть замечательная функция mysql_error();
     
  13. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    интересно, что делает mysql_query(db,$connect); в третьей строке? Пытается заменить собой mysql_select_db? Видимо, да - попов это диагноз. Надо лечиться.
     
  14. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Ну и что?
    Я всегда пишу
    PHP:
    1. <?
    2. mysql_query("SELECT LAST_INSERT_ID()");
    3. ?>
    а не вызываю функцию mysql_insert_id