INOY
Постоялец
Offline
|
|
« Ответ #30 : 18-04-2010 13:15 » |
|
Создавая форму вместе с Вами, и попутно листая справочник , я понял некоторые принципы работы формы, еще не совсем разобрался с тем как именно скрипт обрабатывает форму, я понимаю что нужно организавать запросы к БД, в которой бы хранилась информация об элементах ввода. О БД знаю немного, т.к. никаких манипуляций, кроме созданияй,импорта и экспорта, с ней не производил. Готов двигаться дальше. Готов не спать всю ночь, перечитывая справочные материалы. Готов двигаться в любом направлении с Вашего указания, ради достижения поставленных целей, обучения и самосовершенствования..
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #31 : 18-04-2010 13:41 » |
|
Итак... Нам нужно создать таблицу время приема create table
с полями
id дата время
Эта таблица нам нужна, чтоб хранить уже введенные данные.
После ввода данных необходимо проверить их в базе
Если ограничиться каким-то периодом выбора, например на три дня
select * from TABLE where DATA=$_POST[data] and time=$_POST[time]
Что мы получим при таком запросе, сколько записей вернет такой запрос?
Ознакомься с функциями php для работы с MySql. mysql_connect mysql_query mysql_fetch
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #32 : 18-04-2010 16:49 » |
|
Итак... Нам нужно создать таблицу время приема create table
с полями
id дата время
Сделал таблицу с полями: поле | тип | длины | id | int | 5 | все остальное по умолчанию | date | DATE | 5 | все остальное по умолчанию | time | TIME | 5 | все остальное по умолчанию |
Если ограничиться каким-то периодом выбора, например на три дня
select * from TABLE where DATA=$_POST[data] and time=$_POST[time]
Что мы получим при таком запросе, сколько записей вернет такой запрос?
Думаю если два запроса, то и записей две? Ознакомься с функциями php для работы с MySql. mysql_connect mysql_query mysql_fetch
Читаю..
|
|
|
Записан
|
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #33 : 19-04-2010 03:29 » |
|
mysql_connect <?php $link = mysql_connect("localhost", "login", "passvord") or die("not connect"); print ("connect"); mysql_close($link); mysql_select_db('my_db', $link) or die ('not sucesful'); ?>
mysql_query and mysql_fetch $query = "select * from TABLE"; where DATA=$_POST[data] and time=$_POST[time] $result = mysql_query($query); while($r=mysql_fetch_array($result)) { echo "$r[time] - $r[data]"; mysql_close($link);
Не уверен что правильно, но общие принципы понятны вроде..
|
|
|
Записан
|
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #34 : 19-04-2010 03:46 » |
|
Попытался вставить в форму...ниче не получается.. только коннект.. думаю, читаю..
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #35 : 19-04-2010 06:36 » |
|
ну да, ну да $query = "select * from TABLE"; where DATA=$_POST[data] and time=$_POST[time]
TABLE подразумевалось имя таблицы где ты хранишь уже занятые промежутки правильно написать запрос $query = "select * from TABLE where DATA=" . "'$_POST[data]'" . " and time=". "'$_POST[time]';";
Если у тебя время уже занято, то ты получишь одну строку. Если свободно, ты не получишь ничего.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Sla
|
|
« Ответ #36 : 19-04-2010 06:38 » |
|
$link = mysql_connect("localhost", "login", "passvord")
где и как у тебя определены localhost login passvord Правильно ли ты их подставляешь?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #37 : 19-04-2010 07:31 » |
|
Я может чтото не туда подставляю..? Вот это работает, сверху формы появляется "connect", значит к БД подключились. <?php $link = mysql_connect("localhost", "webtob", "XXXXX") or die("not connect"); print ("connect"); mysql_select_db('script', $link) or die ('not sucesful');
if (isset($_POST['send'])) { // была отправка формы и выводим полученные данные $newLine ="<br />\r\n"; $out = '<html> <head> <title>TEST</title> </head> <body> '; $out .= "fio= ".$_POST['fio'].$newLine; $out .= "data=".$_POST['data'].$newLine; $out .= "time=".$_POST['time'].$newLine; $out .= '</body> </html>'; } else { // выводим форму
$out =' <html> <head> <title>TEST</title> </head> <body> <form action="" method="post"> <label>Ваше имя</label> <input name="fio" id="fio" type="text" size="24" /><br /> <label>Выберите день</label> <select name="data" id="data"> <option>01/01/2010</option> <option>01/01/2010</option> <option>02/01/2010</option> <option>03/01/2010</option> </select> <br /> <label>Выберите время</label> <select name="time" id="time"> <option>08:00:00</option> <option>09:00:00</option> <option>13:00:00</option> <option>14:00:00</option> </select> <br/> <input type="submit" id="send" name="send" value="Отправить"><INPUT type="reset" value="Сбросить"> </form> </body>'; } echo $out; ?>
|
А здесь ошибка в 60, последней строке.. <?php $link = mysql_connect("localhost", "webtob", "XXXXX") or die("not connect"); print ("connect"); mysql_select_db('script', $link) or die ('not sucesful'); $query = "select * from script where DATA=" . "'$_POST[data]'" . " and time=". "'$_POST[time]';"; $result = mysql_query($query); while($r=mysql_fetch_array($result)) { echo "$r[time] - $r[data]"; mysql_close($link); if (isset($_POST['send'])) { // была отправка формы и выводим полученные данные $newLine ="<br />\r\n"; $out = '<html> <head> <title>TEST</title> </head> <body> '; $out .= "fio= ".$_POST['fio'].$newLine; $out .= "data=".$_POST['data'].$newLine; $out .= "time=".$_POST['time'].$newLine; $out .= '</body> </html>'; } else { // выводим форму
$out =' <html> <head> <title>TEST</title> </head> <body> <form action="" method="post"> <label>Ваше имя</label> <input name="fio" id="fio" type="text" size="24" /><br /> <label>Выберите день</label> <select name="data" id="data"> <option>01/01/2010</option> <option>01/01/2010</option> <option>02/01/2010</option> <option>03/01/2010</option> </select> <br /> <label>Выберите время</label> <select name="time" id="time"> <option>08:00:00</option> <option>09:00:00</option> <option>13:00:00</option> <option>14:00:00</option> </select> <br/> <input type="submit" id="send" name="send" value="Отправить"><INPUT type="reset" value="Сбросить"> </form> </body>'; } echo $out; ?>
|
БД с именем-script, таблица с именем- script. Чет я всетаки не доганяю...
|
|
« Последнее редактирование: 19-04-2010 07:55 от INOY »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #38 : 19-04-2010 08:01 » |
|
здесь $link = mysql_connect("localhost", "webtob", "XXXXX") or die("not connect"); print ("connect");
я протупил, привычка не писать константы в коде. вот это не правильно $query = "select * from script"; where DATA=" . "'$_POST[data]'" . " and time=". "'$_POST[time]';";
Это просто ГРУБЕЙШАЯ ошибка. сформированная строка запроса должна приблизительно выглядеть вот так select * from script where DATA='01/01/2010' and time='08:00:00';
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #39 : 19-04-2010 08:51 » |
|
вот это не правильно $query = "select * from script"; where DATA=" . "'$_POST[data]'" . " and time=". "'$_POST[time]';";
Это просто ГРУБЕЙШАЯ ошибка. сформированная строка запроса должна приблизительно выглядеть вот так select * from script where DATA='01/01/2010' and time='08:00:00';
Я в СТУПОРЕ..
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #40 : 19-04-2010 09:01 » |
|
это называется "горе от ума", т.е. за два дня столько незнакомой инфы, которую нужно обработать При отправке запроса методом post, данные запроса попадают в массив $_POST таким образом, в $_POST[data] будет выбранная тобой дата $_POST[time] будет выбранное тобой время Строим запрос, я тебе его показывал $query = "select * from TABLE where DATA=" . "'$_POST[data]'" . " and time=". "'$_POST[time]';";
Чтобы увидеть запрос в базу, а не результат, делаем $query = "select * from TABLE where DATA=" . "'$_POST[data]'" . " and time=". "'$_POST[time]';"; echo $query;
Выходи из ступора.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #41 : 19-04-2010 09:27 » |
|
Тоесть , когда я выбираю элемент ввода с именем "date" и "time", нажимаю "Отправить" то в базу данных отправляется запрос $query = "select * from TABLE where DATA=" . "'$_POST[data]'" . " and time=". "'$_POST[time]';"; , который можно увидеть подставив элемент "echo $query;" Если не выбрано одно из полей,(" . ")-пустая строка, выбрано('$_POST[data]')- строка с выбранным значением. Правильно понял?
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #42 : 19-04-2010 09:36 » |
|
INOY, нет после отправить в массив $_POST попадает твой http-запрос из браузера серверный скрипт подставляет данные из массива в строку SQL-запроса $query = "select * from TABLE where DATA=" . "'$_POST[data]'" . " and time=". "'$_POST[time]';";
а сам sql-запрос будет выполне в этой строке $result = mysql_query($query);
Результат будет лежать в $result
|
|
« Последнее редактирование: 19-04-2010 09:42 от Sla »
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Sla
|
|
« Ответ #43 : 19-04-2010 09:43 » |
|
+
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #44 : 19-04-2010 10:13 » |
|
Вот что пока получилось.. <?php $link = mysql_connect("localhost", "webtob", "xxxxx") or die("not connect"); print ("connect"); mysql_select_db('script', $link) or die ('not sucesful'); $query = "select * from script where DATA=" . "'$_POST[data]'" . " and time=". "'$_POST[time]';"; mysql_close($link);
if (isset($_POST['send'])) { // была отправка формы и выводим полученные данные $newLine ="<br />\r\n"; $out = '<html> <head> <title>TEST</title> </head> <body> '; $out .= "fio= ".$_POST['fio'].$newLine; $out .= "data=".$_POST['data'].$newLine; $out .= "time=".$_POST['time'].$newLine; $out .= '</body> </html>'; } else { // выводим форму
$out =' <html> <head> <title>TEST</title> </head> <body> <form action="" method="post"> <label>Ваше имя</label> <input name="fio" id="fio" type="text" size="24" /><br /> <label>Выберите день</label> <select name="data" id="data"> <option>01/01/2010</option> <option>01/01/2010</option> <option>02/01/2010</option> <option>03/01/2010</option> </select> <br /> <label>Выберите время</label> <select name="time" id="time"> <option>08:00:00</option> <option>09:00:00</option> <option>13:00:00</option> <option>14:00:00</option> </select> <br/> <input type="submit" id="send" name="send" value="Отправить"><INPUT type="reset" value="Сбросить"> </form> </body>'; } echo $out; ?> что будет следующим шагом? (можно ли сделать так чтобы элементы выбора (дата и время) брались из бд и автоматически удалялись бы оттуда при выборе этих элементов пользователем ? а в бд, эти элементы выбора заносились бы отдельной формой. как это проще организовать?) что значит +?
|
|
« Последнее редактирование: 19-04-2010 10:21 от INOY »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #45 : 19-04-2010 10:55 » |
|
не торопись $query = "select * from script where DATA=" . "'$_POST[data]'" . " and time=". "'$_POST[time]';";
а где сам запрос в базу? вот он $result = mysql_query($query);
Если запрос вернул 1-ну строку, то это время уже занято и мы должны предупредить пользователя if (isset($_POST['send'])) { $link = mysql_connect("localhost", "webtob", "xxxxx") or die("not connect"); mysql_select_db('script', $link) or die ('not sucesful'); $query = "select * from script where DATA=" . "'$_POST[data]'" . " and time=". "'$_POST[time]';"; $result = mysql_query($query); if (ЗАПРОС_ВЕРНУЛ_ХОТЯБЫ_ОДНУ_СТРОКУ) { // выводим сообщение что время занято } else { // время не занято $query ="insert into script (DATA, time) values (".$_POST[data]. "," . $_POST[time]. ");"; $result = mysql_query($query); // сообщаем пользователю что его зафиксировали
} }
Кстати, а где ты привязываешь ФИО ко времени?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #46 : 19-04-2010 12:01 » |
|
Вроде работает! сообщение "Извините, время занято" выводится, т.к. в бд нет записей, правильно? <?php $link = mysql_connect("localhost", "webtob", "xxxxx") or die("not connect"); print (""); mysql_select_db('script', $link) or die ('not sucesful'); $query = "select * from script where DATA=" . "'$_POST[data]'" . " and time=". "'$_POST[time]';"; $result = mysql_query($query); mysql_close($link); if (isset($_POST['send'])) { $link = mysql_connect("localhost", "webtob", "xxxxx") or die("not connect"); mysql_select_db('script', $link) or die ('not sucesful'); $query = "select * from script where DATA=" . "'$_POST[data]'" . " and time=". "'$_POST[time]';"; $result = mysql_query($query); if (ЗАПРОС_ВЕРНУЛ_ХОТЯБЫ_ОДНУ_СТРОКУ) { echo "Извините, время занято";// выводим сообщение что время занято } else { // время не занято $query ="insert into script (DATA, time) values (".$_POST[data]. "," . $_POST[time]. ");"; $result = mysql_query($query); echo "Вы записаны";// сообщаем пользователю что его зафиксировали
} }
if (isset($_POST['send'])) {
// была отправка формы и выводим полученные данные $newLine ="<br />\r\n"; $out = '<html> <head> <title>TEST</title> </head> <body> '; $out .= "fio= ".$_POST['fio'].$newLine; $out .= "data=".$_POST['data'].$newLine; $out .= "time=".$_POST['time'].$newLine; $out .= '</body> </html>'; } else { // выводим форму
$out =' <html> <head> <title>TEST</title> </head> <body> <form action="" method="post"> <label>Ваше имя</label> <input name="fio" id="fio" type="text" size="24" /><br /> <label>Выберите день</label> <select name="data" id="data"> <option>01/01/2010</option> <option>01/01/2010</option> <option>02/01/2010</option> <option>03/01/2010</option> </select> <br /> <label>Выберите время</label> <select name="time" id="time"> <option>08:00:00</option> <option>09:00:00</option> <option>13:00:00</option> <option>14:00:00</option> </select> <br/> <input type="submit" id="send" name="send" value="Отправить"><INPUT type="reset" value="Сбросить"> </form> </body>'; } echo $out; ?> А как и к чему привязать fio?
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #47 : 19-04-2010 12:05 » |
|
INOY, Что работает? Это не должно работать!!!
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
|
Sla
|
|
« Ответ #49 : 19-04-2010 12:07 » |
|
Да!!!
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #50 : 19-04-2010 12:08 » |
|
пшол рыть литературу..
|
|
|
Записан
|
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #51 : 19-04-2010 12:51 » |
|
так вроде работает,меняя знак больше-меньше выводятся правильные результаты.. или не так? <?php $link = mysql_connect("localhost", "webtob", "xxxx") or die("not connect"); print (""); mysql_select_db('script', $link) or die ('not sucesful'); $query = "select * from script where DATA=" . "'$_POST[data]'" . " and time=". "'$_POST[time]';"; $result = mysql_query($query); mysql_close($link); if (isset($_POST['send'])) { $link = mysql_connect("localhost", "webtob", "xxxxxx") or die("not connect"); mysql_select_db('script', $link) or die ('not sucesful'); $query = "select * from script where DATA=" . "'$_POST[data]'" . " and time=". "'$_POST[time]';"; $result = mysql_query($query); if (string>null) { echo "Извините, время занято";// выводим сообщение что время занято } else { // время не занято $query ="insert into script (DATA, time) values (".$_POST[data]. "," . $_POST[time]. ");"; $result = mysql_query($query); echo "Вы записаны";// сообщаем пользователю что его зафиксировали
} }
if (isset($_POST['send'])) {
// была отправка формы и выводим полученные данные $newLine ="<br />\r\n"; $out = '<html> <head> <title>TEST</title> </head> <body> '; $out .= "fio= ".$_POST['fio'].$newLine; $out .= "data=".$_POST['data'].$newLine; $out .= "time=".$_POST['time'].$newLine; $out .= '</body> </html>'; } else { // выводим форму
$out =' <html> <head> <title>TEST</title> </head> <body> <form action="" method="post"> <label>Ваше имя</label> <input name="fio" id="fio" type="text" size="24" /><br /> <label>Выберите день</label> <select name="data" id="data"> <option>01/01/2010</option> <option>01/01/2010</option> <option>02/01/2010</option> <option>03/01/2010</option> </select> <br /> <label>Выберите время</label> <select name="time" id="time"> <option>08:00:00</option> <option>09:00:00</option> <option>13:00:00</option> <option>14:00:00</option> </select> <br/> <input type="submit" id="send" name="send" value="Отправить"><INPUT type="reset" value="Сбросить"> </form> </body>'; } echo $out; ?>
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #52 : 19-04-2010 13:00 » |
|
а что такое string? откуда ты его взял?
$result = mysql_query($query); $num_rows = mysql_num_rows($result); if ($num_rows >= ......) { } else { }
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #53 : 19-04-2010 13:23 » |
|
string-строка.. почемуж зараза работала?? А с этим ошибку выдает.. $result = mysql_query($query); $num_rows = mysql_num_rows($result);- ошибка в этой строке гварит..Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Y:\home\localhost\www\webtob\test\1.php on line 16 if ($num_rows >= Сюда число ставится? null тоже пробвал..) { } else { }
|
|
« Последнее редактирование: 19-04-2010 13:25 от INOY »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #54 : 19-04-2010 13:32 » |
|
INOY, а ты ЭТО подставил в скрипт? (там где у тебя было string?)
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #55 : 19-04-2010 13:34 » |
|
ну да
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #56 : 19-04-2010 13:35 » |
|
$result = mysql_query($query); print_r($result);
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #58 : 19-04-2010 13:45 » |
|
$result = mysql_query($query); print_r($result); $num_rows = mysql_num_rows($result); if ($num_rows>null) { echo "Извините, время занято";// выводим сообщение что время занято } else { // время не занято $query ="insert into script (DATA, time) values (".$_POST[data]. "," . $_POST[time]. ");"; $result = mysql_query($query); echo "Вы записаны";// сообщаем пользователю что его зафиксировали
} }
Где накосячил?
|
|
|
Записан
|
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #59 : 19-04-2010 17:42 » |
|
Я заметил что у нас везде стоит параметр "data" , а поле у меня имело имя "date" Заменил data на date в скрипте, и он стал сафсем както неправильно работать.. хотя ошибки пропали.. и print_r начал чегото показывать..(Resource id #5) думаю дальше..
|
|
|
Записан
|
|
|
|
|