[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с обработчиком
Fredrich
Ребята есть такой скрипт, который обрабатывает строковую переменную
<form action=expa.php>
<br>
<input
type=text name=author size=40>
<br>
<input
type=submit value=Creat>
</form>


expa.php
<?php
$str = $_GET["author"];
$names = explode(":",$str);
// разбиваем строку введенную,
// пользователем с помощью ":"

// создаем список

foreach ($names as $k => $name) {
$s.=$k.$name."<br>";
// добавляем элементы к списку
}
$s .= "<br>";
echo $s;
?>



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

Смысл работы скрипта заключается в том что есть текст разделен специальными символами в данном примере это ":" и после обработки получается много текста кусочками
Вобще так как то



Спустя 6 минут, 55 секунд (18.02.2011 - 14:38) Michael написал(а):
да вот как то не особо понятно, что надо то. Если у тебя есть база, то ее структуру в студию.

p.s. html не валидный, action у формы не указан, переменная $s не объявлена, get-данные не проверяются на существование.

Спустя 2 минуты, 30 секунд (18.02.2011 - 14:41) Fredrich написал(а):
Это наметка база проста id и text

Спустя 23 минуты, 32 секунды (18.02.2011 - 15:04) two написал(а):
Fredrich
foreach ($names as $k => $name) {
mysql_query("INSERT INTO `table` (`text`) VALUES ('". $name ."')");
}

Спустя 1 час, 4 минуты, 46 секунд (18.02.2011 - 16:09) Fredrich написал(а):
Не работает ребята глянте код вот сделал в одном файле



<form action="#" method="post">
<input
name="name" type="text" size="40" maxlength="20">
<input
name="" type="submit" value="submit">

</form>

<?php
$dblocation = "localhost"; // Имя сервера
$dbuser = "admin"; // Имя пользователя
$dbpassword = "123456"; // Пароль
$db=@mysql_connect ($dblocation,$dbuser,$dbpassword);
mysql_query("SET NAMES 'cp1251'");//чтобы не выходили знаки ???
// Символ @ нужен для того, чтобы не выводилась ошибка при неудачном
//подключении

if (!$db) // Если соединение не установлено
{echo "<p>В данный момент соединиться с базой данных не возможно. Напишите об этом администратору.</p>";
exit();
};
mysql_select_db ("serch",$db); //Выбираем базу данных для дальнейшей работы.;

$str = $_POST["author"];
$names = explode(":",$str);
// разбиваем строку введенную,
// пользователем с помощью ":"



foreach ($names as $k => $name) {
mysql_query("INSERT INTO text ('text') VALUES ('$name')");
}

?>



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

Спустя 55 минут, 4 секунды (18.02.2011 - 17:04) YVSIK написал(а):
что у вас в результате то получаеться ?
этого кодиннга
так давай всё с изнова и по проядку
бум решать
первое это надо подключиться к базе как будем это делать
ваш пример сдесь в студию пож..
(потому что ваш не верный даю наводку чегото не хватает)

Спустя 1 час, 48 минут, 25 секунд (18.02.2011 - 18:52) Ulan написал(а):
отправляешь name="name"
а принимаешь $_POST["author"]; tongue.gif

Спустя 1 час, 4 минуты, 35 секунд (18.02.2011 - 19:57) Fredrich написал(а):
Цитата (Ulan @ 18.02.2011 - 15:52)
отправляешь name="name"
а принимаешь $_POST["author"]; tongue.gif

Исправил все равно информация не попадает в базу

Спустя 9 минут, 21 секунда (18.02.2011 - 20:06) Zerstoren написал(а):
Цитата (Fredrich @ 18.02.2011 - 16:57)
Цитата (Ulan @ 18.02.2011 - 15:52)
отправляешь name="name"
а принимаешь $_POST["author"]; tongue.gif

Исправил все равно информация не попадает в базу

Сделайте var_dump($_POST);
увидите что вообще прилетает вам из формы.
Не забывайте про отладчик...

Спустя 7 минут, 17 секунд (18.02.2011 - 20:14) Fredrich написал(а):
Цитата (Zerstoren @ 18.02.2011 - 17:06)
Сделайте var_dump($_POST);
увидите что вообще прилетает вам из формы.
Не забывайте про отладчик...


при вводе в поле
приветик : как : дел

выдает

array(1) { ["name"]=> string(20) "приветик : как : дел" }

Спустя 17 часов, 51 минута, 13 секунд (19.02.2011 - 14:05) Fredrich написал(а):
Ну что ребята кто поможет с этой темой

Спустя 23 минуты, 17 секунд (19.02.2011 - 14:28) dima написал(а):
вы прбовали использовать синтаксис предложеный two ?
и SET NAMES после mysql_select_db

Спустя 7 минут, 47 секунд (19.02.2011 - 14:36) YVSIK написал(а):
давай)))
вот применим твоё решение бум исправлять
для начала
где вы обьявили переменные
так как надо насколько я понял она у вас одна есль больше то для каждой
применяем

$text = !empty($_POST['text'])        ? $_POST['text'] : NULL;

Спустя 26 минут, 7 секунд (19.02.2011 - 15:02) Fredrich написал(а):
Спасибо завтра буду дома попробую это сделать, но я думаю где то ошибка именно в цикле Foreach так как данные с формы мриходят в переменнуб Name.

Спустя 36 минут, 27 секунд (19.02.2011 - 15:38) YVSIK написал(а):
и н-не н-надо ничего пробовать тем боле завьтри
надо сесть в инет и найти с кем вы будете это решать
а не так задал (?) потом посмотрел через сутки или двое
ага есть ответ так и никто и от вечать и не будет
ваша тема вы её и ведите
нечего пропадать так часа на три или боле
я вот попыталься с вами этот вопрос вам-же решить
с вами-же так вас на месте инет
что мне терь вас вылавливать? ДА?
чтоб вам ответить?

Спустя 6 часов, 46 минут, 57 секунд (19.02.2011 - 22:25) Fredrich написал(а):
Изменяюсь за то что не могу оперативно работать, так как когда создавал тему был перед компом целый день и имел возможность оперативно работать!

Спустя 11 минут, 13 секунд (19.02.2011 - 22:37) SerginhoLD написал(а):

mysql_select_db ("serch",$db); //Выбираем базу данных для дальнейшей работы.;

// по моему в слове "поиск" не хватает буквы, может из-за этого?))




и вот так попробуй:
mysql_query("INSERT INTO `text` (`text`) VALUES ('".$name."')");

Спустя 23 минуты, 9 секунд (19.02.2011 - 23:00) YVSIK написал(а):
mysql_query("INSERT INTO `text` (`text`) VALUES ('".$name."')");

а зачем собст.. кавычки и зачем прицеплять, просто;
и ещё вот такая ошибка применяется сравнением с аналогом

mysql_query("INSERT INTO `text` (`text`) VALUES ('$text')");

Спустя 3 часа, 1 минута, 1 секунда (20.02.2011 - 02:01) Игорь_Vasinsky написал(а):
Вы вообще тут о чём? один-другого круче....

Спустя 15 часов, 11 минут, 39 секунд (20.02.2011 - 17:12) Fredrich написал(а):
Спасибо ребята всё работает в таком виде



$dblocation = "localhost"; // Имя сервера
$dbuser = "admin"; // Имя пользователя
$dbpassword = "123456"; // Пароль
$db=@mysql_connect ($dblocation,$dbuser,$dbpassword);
mysql_query("SET NAMES 'cp1251'");//чтобы не выходили знаки ???
// Символ @ нужен для того, чтобы не выводилась ошибка при неудачном
//подключении

if (!$db) // Если соединение не установлено
{echo "<p>В данный момент соединиться с базой данных не возможно. Напишите об этом администратору.</p>";
exit();
};
mysql_select_db ("serch",$db); //Выбираем базу данных для дальнейшей работы.
?>
<form action="" method="post">
<
input name="name" type="text" size="256" maxlength="20">
<
input name="" type="submit" value="submit">
</
form>
<?php


$name = !empty($_POST['name'])? $_POST['name'] : NULL;
$str = $name;
$names = explode(":",$str);
// разбиваем строку введенную,
// пользователем с помощью ":"


foreach ($names as $k => $name) {
mysql_query("INSERT INTO `text` (`text`) VALUES ('".$name."')");
}


Может кто то видет ошибки, то подскажите в чем!!!


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

Спустя 17 минут, 5 секунд (20.02.2011 - 17:30) Fredrich написал(а):
столкнулся вот еще с одной проблемой если человек нажал на кнопку а в поле ничего не было - то в базу записывается еще одно пустое поле.
Как это предовратить

Спустя 3 часа, 15 минут, 31 секунда (20.02.2011 - 20:45) YVSIK написал(а):
проверкой заполненности поля
через if
так примерно
if ($text='')   //есль переменная не заполнена 
unset($text);
echo 'ЗАПОЛНИТЕ ПОЛЕ!!!! <br >';

ПОТОМ елсе поле получилось пустое
то предотвращаем занесение в базу
и предлагаем заполнить
а читать надо подробно тут
по поводу ошибки с изначала
так кодируй строчка Форматтер кода
потом и ошибки сам увидишь быстрей
извини твой код каша сам не так давно тож так писал код :D :D

Спустя 1 час, 58 минут, 11 секунд (20.02.2011 - 22:43) Fredrich написал(а):
как именно предотвратить занесение в базу?

Спустя 54 минуты, 22 секунды (20.02.2011 - 23:38) YVSIK написал(а):
переходом на страницу регистрации то есть пере-направлением
надобно точь знать
инструкции
оператора if
потом мона двигаться дале
читай ссылки про регистрацию на ирбис
там слоган ну очень хорош
без лишнего флуда
словами это выглядит
так
если, то да
или
есле, то нет
вот и это два условия и есть
свойства if
по другому ну мона так
пускать ;
есле не пускать; то пере-направлять

Спустя 15 часов, 46 минут, 5 секунд (21.02.2011 - 15:24) Fredrich написал(а):
Спасибо, я поставил так-
если поле не заполнено то
exit ('Поля не заполнены');

Всё работает.
А как мне сделать что бы данные выводились в xml файл?


_____________
Видео уроки по Yii
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.