[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запись в базу
johniek_comp
Ну совсем нубский вопрос, но нигде не нашел, в нете естественно есть, но там я уже редко, хочу сказать опыт пришел, и многому уже научился!
Напишите запрос что бы раз и навсегда мне нигде не лазить а запомнить.
есть данные с формы например
<form action="tel.php?telefon=acsses" method="post">
Представтесь:<input name="name_user" type="text" />
Ваш номер телефона:<input name="tel_user" type="text" />
<
input name="sum" type="submit" />
</
form>


вывести потом я понял как
$sql = "SELECT * FROM `pages` LIMIT 0, 30 ";
а туда запихать?
и запрос я тоже научился делать:

CREATE TABLE IF NOT EXISTS `telefon` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name_user` text NOT NULL,
`tel_user` text NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;


осталось только одно! как данные с формы в базу запихать?



Спустя 8 минут, 37 секунд (22.10.2011 - 20:44) Игорь_Vasinsky написал(а):
INSERT INTO `table` (`cell1`, `cell2`, `cell3`) VALUES ('".$var1."', '".$var2."', '".$var3."')


для (int)$var - одинарные кавачке не нужну

важно соблюдать порядок ячеек в таблице

id auto_increment - не указывать

Спустя 1 час, 28 минут, 2 секунды (22.10.2011 - 22:12) johniek_comp написал(а):
Игорь_Vasinsky
имеешь в виду если цифры заношу но в кавычки не брать?

Спустя 4 минуты, 9 секунд (22.10.2011 - 22:16) XCross написал(а):
Да. Но через SET удобнее!

INSERT INTO `table` SET `cell1` = '".$var1."', `cell2` = '".var2."', `cell3` = '".$var3."'

Спустя 2 минуты, 41 секунда (22.10.2011 - 22:19) johniek_comp написал(а):
Скрипт написал. Все работает.
запрос:
CREATE TABLE IF NOT EXISTS `telefon` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name_user` text NOT NULL,
`tel_user` text NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;

страница
<div class="story">
<
h3><fieldset><legend>Форма заказа звонка</legend>
<
form action="tel.php?telefon=acsses" method="post">
Представтесь:<input name="name_user" type="text" />
Ваш номер телефона:<input name="tel_user" type="text" />
<
input name="sum" type="submit" />
</
form>
</
fieldset></h3>
</
div>
<?php
include 'config.php';
$sql = mysql_query("INSERT INTO `telefon` (name_user, tel_user)
VALUES ('"
.$_POST['name_user']."', '".$_POST['tel_user']."');");
?>

Спустя 1 минута, 53 секунды (22.10.2011 - 22:21) Игорь_Vasinsky написал(а):
нет. только кокатенация вида ".$var."

php работает с числами в прямом виде, это строки закрываются.

после того как в БД записал

редирект на саму эту страницу через header (или JS на худой конец)

тогда POST очистяться

иначе повторное F5 - и запис снова летит в БД

Спустя 3 минуты, 27 секунд (22.10.2011 - 22:24) johniek_comp написал(а):
ага, и вот такую проверочку
<?php
if(isset($_POST['sum'])) {
echo '<center><b>Данные поступили! Мы Вам перезвоним в течении нескольких часов, а может даже сразу!</b></center>';
} else {
echo '';
}
?>

но надо конечно на сами данные ставить, а не на кнопку т.к. даже не при заполнении будет true.
так что я теперь расшареный по полной! даешь мне статус эксперта!

Спустя 2 минуты, 21 секунда (22.10.2011 - 22:27) johniek_comp написал(а):
Игорь_Vasinsky
была такая проблема решил через хедер локатион, иначе данные не обнуляются.

Спустя 2 минуты, 35 секунд (22.10.2011 - 22:29) Игорь_Vasinsky написал(а):
вот и усё.

осталось тока по уму проверку на уникальность логина и emaila сделать

т.е. перед записью в БД - нужно пошуршать в БД - чтобы не было таких же там.

Спустя 48 секунд (22.10.2011 - 22:30) Игорь_Vasinsky написал(а):
Цитата
if(isset($_POST['sum'])) {
echo '<center><b>Данные поступили! Мы Вам перезвоним в течении нескольких часов, а может даже сразу!</b></center>';
} else {
echo '';
}



else то нафига пустую. не надо.

if(isset($_POST['sum'])) 
echo '<center><b>Данные поступили! Мы Вам перезвоним в течении нескольких часов, а может даже сразу!</b></center>';

Спустя 6 минут, 16 секунд (22.10.2011 - 22:36) johniek_comp написал(а):
так, а теперь напиши запрос на вывод с базы с комментариями, как ты можешь laugh.gif

Спустя 1 минута, 5 секунд (22.10.2011 - 22:37) johniek_comp написал(а):
Цитата
т.е. перед записью в БД - нужно пошуршать в БД - чтобы не было таких же там.

название ф-и не подскажешь?

Спустя 6 минут, 31 секунда (22.10.2011 - 22:44) Игорь_Vasinsky написал(а):
$query = mysql_query("SELECT `login`, `email` FROM `table` WHERE `login` = '".mysql_escape_string($_POST['login'])."' 
OR `email` = '"
.mysql_escape_string($_POST['email'])."'") or die(mysql_error());

if(mysql_num_rows($query)) //Если нет совпадений - значит FALSE - !mysql_num_rows($query)\
echo "Такой логин или емайл уже используется";
else
{
//Регистрируешь нового юзера
}

Спустя 11 минут, 32 секунды (22.10.2011 - 22:55) johniek_comp написал(а):
[quote]$query = mysql_query("SELECT `login`, `email` FROM `table` WHERE `login` = '".mysql_escape_string($_POST['login'])."' 
OR `email` = '"
.mysql_escape_string($_POST['email'])."'") or die(mysql_error());[/quote]


так давай разберем...
выбрать поля логин, емейл в таблице таблица, где логин то что пришло с поста, а емейл то что пришло с поста тоже, иначе выводим ошибку мускула.
м?

но я например вывожу данные с базы на абсолютно другой странице, таким образом метод пост здесь не актуален.
пишу запрос
$query = mysql_query("SELECT `name_user`, `tel_user` FROM `telefone`  or die(mysql_error());


только вывести, правильно написал, иль чего не хватает?

Спустя 4 минуты, 35 секунд (22.10.2011 - 23:00) Игорь_Vasinsky написал(а):
ошибка мускула ставиться на время отладки скрипта - чтоб видеть полное описание ошибки
потом убирай это.

Запрос в БД необходим чтобы до регистрации (когда данные с формы приняяты) - мы не зарегили юзера если уже есть такой логин или пароль в БД

Выбираю я в таблице тока логин и емайл - да потому что мне тока их проверить нужно - зачем мне все строки целиком шуршать,

разницу чуешь?
$query = mysql_query("SELECT `name_user`, `tel_user` FROM `telefone`")  or die(mysql_error());


а когда в работу скрипт - то

$query = @mysql_query("SELECT `name_user`, `tel_user` FROM `telefone`") or die("Ошибка MySQL");


@ - поставил - чтоб при ошибке в инете - вся хрень не повылазила - а сработала тока or die()


Спустя 1 минута, 37 секунд (22.10.2011 - 23:02) johniek_comp написал(а):
а вот здесь если я напишу ! перед ф-й, т.е. обратное от ф-и, то смысл сменится?
примерно вот так...
if(!mysql_num_rows($query)) 
//Регистрируешь нового юзера
else
{
echo "Такой логин или емайл уже используется";
}

Спустя 4 минуты, 24 секунды (22.10.2011 - 23:06) Игорь_Vasinsky написал(а):
всё пучком - ты же просто логику перевернул.

мне удобней сразу проверять - если не выполнять - значит не выполнять

Спустя 12 минут (22.10.2011 - 23:18) johniek_comp написал(а):
Игорь_Vasinsky
спасибо за ответы, пойду поглажу тебе карму :)
вот как я вывел в конечном результате
<?php
include 'config.php';
$sql = "SELECT * FROM `telefon`";

$result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);


$table = "<table border=0 width=100% align=center>\n";

while ($row = mysql_fetch_assoc($result))
{


$table .= "<tr>\n";

$table .= "<td>".$row['id']."</td>\n";
$table .= "<td>".$row['name_user']."</td>\n";
$table .= "<td>".$row['tel_user']."</td>\n";

$table .= "</tr>\n";
}

$table .= "</table>\n";

echo $table;
?>


все вышло с первого раза, выводит таблицей, оч красиво, хотя мне на красоту в этом деле далеко все равно!

Спустя 8 минут, 20 секунд (22.10.2011 - 23:26) Игорь_Vasinsky написал(а):
Молодец wink.gif

Спустя 7 часов, 11 минут, 55 секунд (23.10.2011 - 06:38) YVSIK написал(а):
Свернутый текст
Цитата (johniek_comp @ 22.10.2011 - 23:18)
Игорь_Vasinsky
спасибо за ответы, пойду поглажу тебе карму smile.gif
вот как я вывел в конечном результате
<pre class="sh_sourceCode" rel="php"><span class="sh_keyword"><?php</span>
<span class="sh_control">include</span> <span class="sh_string">'config.php'</span><span class="sh_symbol">;</span>
<span class="sh_variable">$sql</span> <span class="sh_symbol">=</span> <span class="sh_string">"SELECT * FROM `telefon`"</span><span class="sh_symbol">;</span>

<span class="sh_variable">$result</span> <span class="sh_symbol">=</span> <span class="sh_function">mysql_query</span><span class="sh_symbol">(</span><span class="sh_variable">$sql</span><span class="sh_symbol">)</span> <span class="sh_keyword">or</span> <span class="sh_function">die</span><span class="sh_symbol">(</span><span class="sh_function">mysql_error</span><span class="sh_symbol">() .</span><span class="sh_string">"<br/>"</span><span class="sh_symbol">.</span> <span class="sh_variable">$sql</span><span class="sh_symbol">);</span>


<span class="sh_variable">$table</span> <span class="sh_symbol">=</span> <span class="sh_string">"<table border=0 width=100% align=center></span><span class="sh_escape">\n</span><span class="sh_string">"</span><span class="sh_symbol">;</span>

<span class="sh_control">while</span> <span class="sh_symbol">(</span><span class="sh_variable">$row</span> <span class="sh_symbol">=</span> <span class="sh_function">mysql_fetch_assoc</span><span class="sh_symbol">(</span><span class="sh_variable">$result</span><span class="sh_symbol">))</span>
<span class="sh_cbracket">{</span>
 
    
     <span class="sh_variable">$table</span> <span class="sh_symbol">.=</span> <span class="sh_string">"<tr></span><span class="sh_escape">\n</span><span class="sh_string">"</span><span class="sh_symbol">;</span>
    
     <span class="sh_variable">$table</span> <span class="sh_symbol">.=</span> <span class="sh_string">"<td>"</span><span class="sh_symbol">.</span><span class="sh_variable">$row</span><span class="sh_symbol">[</span><span class="sh_string">'id'</span><span class="sh_symbol">].</span><span class="sh_string">"</td></span><span class="sh_escape">\n</span><span class="sh_string">"</span><span class="sh_symbol">;</span>
     <span class="sh_variable">$table</span> <span class="sh_symbol">.=</span> <span class="sh_string">"<td>"</span><span class="sh_symbol">.</span><span class="sh_variable">$row</span><span class="sh_symbol">[</span><span class="sh_string">'name_user'</span><span class="sh_symbol">].</span><span class="sh_string">"</td></span><span class="sh_escape">\n</span><span class="sh_string">"</span><span class="sh_symbol">;</span>
     <span class="sh_variable">$table</span> <span class="sh_symbol">.=</span> <span class="sh_string">"<td>"</span><span class="sh_symbol">.</span><span class="sh_variable">$row</span><span class="sh_symbol">[</span><span class="sh_string">'tel_user'</span><span class="sh_symbol">].</span><span class="sh_string">"</td></span><span class="sh_escape">\n</span><span class="sh_string">"</span><span class="sh_symbol">;</span>
    
     <span class="sh_variable">$table</span> <span class="sh_symbol">.=</span> <span class="sh_string">"</tr></span><span class="sh_escape">\n</span><span class="sh_string">"</span><span class="sh_symbol">;</span>
<span class="sh_cbracket">}</span>

<span class="sh_variable">$table</span> <span class="sh_symbol">.=</span> <span class="sh_string">"</table></span><span class="sh_escape">\n</span><span class="sh_string">"</span><span class="sh_symbol">;</span>

<span class="sh_function">echo</span> <span class="sh_variable">$table</span><span class="sh_symbol">;</span>
<span class="sh_keyword">?></span></pre>

все вышло с первого раза, выводит таблицей, оч красиво, хотя мне на красоту в этом деле далеко все равно!

полный плагиат Полный !! biggrin.gif все вот здесь написано !и biggrin.gif


_____________
user posted image
Быстрый ответ:

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