За последние 24 часа нас посетили 21495 программистов и 1695 роботов. Сейчас ищет 1851 программист ...

Мускул не принимает данные

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

  1. cyberfuntik

    cyberfuntik Новичок

    С нами с:
    30 июн 2016
    Сообщения:
    8
    Симпатии:
    0
    Есть небольшой скрипт для добавления телефонов в бд.

    сама форма
    Код (Text):
    1. <html>
    2.     <head>
    3.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    4.         <title>index</title>
    5.     </head>
    6.     <body>
    7.         <form action="add.php" method="post">
    8.             <p>
    9.                 Телефон                 <textarea name="phone" cols="40" rows="1"></textarea>
    10.                 <br>
    11.                 <br>
    12.                 <select size="5" name="gender">
    13.                     <option selected disabled>Выберите пол</option>
    14.                     <option value="female">Ж</option>
    15.                     <option value="male">М</option>
    16.                     <option value="hz">ХЗ</option>
    17.                 </select>
    18.                 <select size="5" name="city">
    19.                     <option selected disabled>Выберите город</option>
    20.                     <option value="Moscow">Москва</option>
    21.                     <option value="Zheleznodorozhniy">Железнодорожный</option>
    22.                 </select>
    23.             </p>
    24.             <p>
    25.                 <input type="submit" value="Отправить">
    26.             </p>
    27.         </form>
    28.     </body>
    29. </html>
    add.php

    Код (Text):
    1. <?php
    2. $host = "localhost";
    3. $user = "root";
    4. $password = "";
    5. $database = "avito";
    6. $table = "phones";
    7. $connect = mysql_connect($host, $user, $password);
    8. $select = mysql_select_db($database);
    9. $str = $_POST['phone'];
    10. $contact = array();
    11. for ($i = 0; $i < strlen($str); $i++) {
    12.     if (preg_match('/[0-9]/i', $str[$i])) {
    13.         $contact[] = $str[$i];
    14.     }
    15. }
    16. $contact = implode($contact);
    17. $phone = $_POST['phone'];
    18. $gender = $_POST['gender'];
    19. $city = $_POST['city'];
    20. if (!empty($contact) && !empty($phone)) {
    21.     $operation = mysql_query("INSERT INTO $table VALUES ('$contact', '$phone', '$gender', '$city')") or die("Error, insert query failed");
    22.     echo 'Добавлено. <button onclick="goBack()">Go Back</button><script>function goBack() {window.history.back();}</script>';
    23. } else
    24.     echo 'OOPS! Произошла ошибка...';
    25. mysql_close($connect);
    26. ?>
    таблица с мускула

    Код (Text):
    1. -- phpMyAdmin SQL Dump
    2. -- version 3.5.1
    3. -- http://www.phpmyadmin.net
    4. --
    5. -- Хост: 127.0.0.1
    6. -- Время создания: Июл 10 2016 г., 18:08
    7. -- Версия сервера: 5.5.25
    8. -- Версия PHP: 5.3.13
    9.  
    10. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
    11. SET time_zone = "+00:00";
    12.  
    13.  
    14. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    15. /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    16. /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    17. /*!40101 SET NAMES utf8 */;
    18.  
    19. --
    20. -- База данных: `avito`
    21. --
    22.  
    23. -- --------------------------------------------------------
    24.  
    25. --
    26. -- Структура таблицы `phones`
    27. --
    28.  
    29. CREATE TABLE IF NOT EXISTS `phones` (
    30.   `id` mediumint(3) NOT NULL AUTO_INCREMENT,
    31.   `contact` int(11) NOT NULL,
    32.   `phone` text NOT NULL,
    33.   `gender` text NOT NULL,
    34.   `city` text NOT NULL,
    35.   PRIMARY KEY (`id`)
    36. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    37.  
    38. /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    39. /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    40. /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    сначала все работало, до некоторых доработок. были только телефон и город. и не было id

    где я накосячил?
    --- Добавлено ---
    Денвер

    5.5.25 - MySQL Community Server (GPL)
    Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13
     
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  3. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Ох, как минимум накосячил ты в этом
    Честно, на такие вопросы мало кто отвечает, потому что при одном слове "денвер" идут мурашки. ним проблема может быть где угодно.
     
  4. cyberfuntik

    cyberfuntik Новичок

    С нами с:
    30 июн 2016
    Сообщения:
    8
    Симпатии:
    0
    на wampserver так же было, но тот еще ругался типа переходи на mysqli либо PDO
     
  5. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    правильно делает, лучше взять хостинг, там всё обычно настроено правильно и тех. поддержка поможет.

    попробуй denwer заменить на open-server.ru может произойдёт чудо и всё заработает
     
  6. Хыиуду

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

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Вот зачем демонизировать-то? Сколько лет под ним работаю, никогда не было проблем из-за того, что это именно Денвер, а не какой-то другой вебсервер. За исключением той. что он дальше РНР 5.3 не стал обновляться. Может, Котерову просто надоело.
    По теме: попробуйте вместо
    INSERT INTO $table VALUES ('$contact', '$phone', '$gender', '$city')
    поставить
    INSERT INTO $table (contact, phone, gender, city) VALUES ('$contact', '$phone', '$gender', '$city')
    А вообще неплохо бы текст ошибки вывести.