Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2] 3 4 5   Вниз
  Печать  
Автор Тема: Скрипт формы записи на прием  (Прочитано 68312 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
INOY
Постоялец

ru
Offline Offline

« Ответ #30 : 18-04-2010 13:15 » 

Создавая форму вместе с Вами, и попутно листая справочник , я понял некоторые принципы работы формы, еще не совсем разобрался с тем как именно скрипт обрабатывает форму, я понимаю что нужно организавать запросы к БД, в которой бы хранилась информация об элементах ввода. О БД знаю немного, т.к. никаких манипуляций, кроме созданияй,импорта и экспорта, с ней не производил.
Готов двигаться дальше. Готов не спать всю ночь, перечитывая справочные материалы. Готов двигаться в любом направлении с Вашего указания, ради достижения поставленных целей, обучения и самосовершенствования..
Записан
Sla
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #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
Постоялец

ru
Offline Offline

« Ответ #32 : 18-04-2010 16:49 » 

Итак...
Нам нужно создать таблицу время приема
create table

с полями

id
дата
время
Сделал таблицу с полями:
полетипдлины
idint5все остальное по умолчанию
dateDATE5все остальное по умолчанию
timeTIME5все остальное по умолчанию


Если ограничиться каким-то периодом выбора, например на три дня

select * from TABLE
where DATA=$_POST[data] and time=$_POST[time]

Что мы получим при таком запросе, сколько записей вернет такой запрос?

Думаю если два запроса, то и записей две?
Ознакомься с функциями php для работы с MySql.
mysql_connect
mysql_query
mysql_fetch
Читаю..
Записан
INOY
Постоялец

ru
Offline 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(&#39;my_db&#39;, $link) or die (&#39;not sucesful&#39;);
?>


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
Постоялец

ru
Offline Offline

« Ответ #34 : 19-04-2010 03:46 » 

Попытался вставить в форму...ниче не получается.. только коннект.. думаю, читаю..
Записан
Sla
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #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
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #36 : 19-04-2010 06:38 » 

Код:
$link = mysql_connect("localhost", "login", "passvord")

где и как у тебя определены
localhost
login
passvord
Не понял
Правильно ли ты их подставляешь?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
INOY
Постоялец

ru
Offline 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
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #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
Постоялец

ru
Offline 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
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #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
Постоялец

ru
Offline 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
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #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
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #43 : 19-04-2010 09:43 » 

+
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
INOY
Постоялец

ru
Offline Offline

« Ответ #44 : 19-04-2010 10:13 » 

Вот что пока получилось..
Код:
<?php
$link 
mysql_connect("localhost""webtob""xxxxx")
or die(
"not connect");
print (
"connect");
mysql_select_db(&#39;script&#39;, $link) or die (&#39;not sucesful&#39;);
$query "select * from script
where DATA=" 
"&#39;$_POST[data]&#39;" " and time=""&#39;$_POST[time]&#39;;";
mysql_close($link);

if (isset(
$_POST[&#39;send&#39;])) {
 // была отправка формы и выводим полученные данные
 
$newLine ="<br />\r\n";
 
$out = &#39;<html>
<head>
<
title>TEST</title>
</
head>
<
body>
&
#39;;
 
$out .= "fio= ".$_POST[&#39;fio&#39;].$newLine;
 
$out .= "data=".$_POST[&#39;data&#39;].$newLine;
 
$out .= "time=".$_POST[&#39;time&#39;].$newLine;
 
$out .= &#39;</body>
 
</html>&#39;; 
} else {
 
// выводим форму

$out =&#39;
<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>&#39;;
}
echo 
$out
?>
что будет следующим шагом? (можно ли сделать так чтобы элементы выбора (дата и время) брались из бд и автоматически удалялись бы оттуда при выборе этих элементов пользователем ? а в бд, эти элементы выбора заносились бы отдельной формой. как это проще организовать?) что значит +?
« Последнее редактирование: 19-04-2010 10:21 от INOY » Записан
Sla
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #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
Постоялец

ru
Offline Offline

« Ответ #46 : 19-04-2010 12:01 » 

Вроде работает! сообщение "Извините, время занято" выводится, т.к. в бд нет записей, правильно?
Код:
<?php
$link 
mysql_connect("localhost""webtob""xxxxx")
or die(
"not connect");
print (
"");
mysql_select_db(&#39;script&#39;, $link) or die (&#39;not sucesful&#39;);
$query "select * from script
where DATA=" 
"&#39;$_POST[data]&#39;" " and time=""&#39;$_POST[time]&#39;;";
$result mysql_query($query);
mysql_close($link);
if (isset(
$_POST[&#39;send&#39;])) {
   
$link mysql_connect("localhost""webtob""xxxxx") or die("not connect");
   
mysql_select_db(&#39;script&#39;, $link) or die (&#39;not sucesful&#39;);
   
$query "select * from script
where DATA=" 
"&#39;$_POST[data]&#39;" " and time=""&#39;$_POST[time]&#39;;";
   
$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[&#39;send&#39;])) {

 // была отправка формы и выводим полученные данные
 
$newLine ="<br />\r\n";
 
$out = &#39;<html>
<head>
<
title>TEST</title>
</
head>
<
body>
&
#39;;
 
$out .= "fio= ".$_POST[&#39;fio&#39;].$newLine;
 
$out .= "data=".$_POST[&#39;data&#39;].$newLine;
 
$out .= "time=".$_POST[&#39;time&#39;].$newLine;
 
$out .= &#39;</body>
 
</html>&#39;; 
} else {
 
// выводим форму

$out =&#39;
<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>&#39;;
}
echo 
$out
?>


А как и к чему привязать fio?
Записан
Sla
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #47 : 19-04-2010 12:05 » 

INOY, Что работает?
Это не должно работать!!!
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
INOY
Постоялец

ru
Offline Offline

« Ответ #48 : 19-04-2010 12:06 » 

 Улыбаюсь 
Код:
if (ЗАПРОС_ВЕРНУЛ_ХОТЯБЫ_ОДНУ_СТРОКУ) {
в скобках нужно поставить какое то условие?
Записан
Sla
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #49 : 19-04-2010 12:07 » 

Да!!!
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
INOY
Постоялец

ru
Offline Offline

« Ответ #50 : 19-04-2010 12:08 » 

пшол рыть литературу..
Записан
INOY
Постоялец

ru
Offline Offline

« Ответ #51 : 19-04-2010 12:51 » 

так вроде работает,меняя знак больше-меньше выводятся правильные результаты.. или не так?
Код:
<?php
$link 
mysql_connect("localhost""webtob""xxxx")
or die(
"not connect");
print (
"");
mysql_select_db(&#39;script&#39;, $link) or die (&#39;not sucesful&#39;);
$query "select * from script
where DATA=" 
"&#39;$_POST[data]&#39;" " and time=""&#39;$_POST[time]&#39;;";
$result mysql_query($query);
mysql_close($link);
if (isset(
$_POST[&#39;send&#39;])) {
   
$link mysql_connect("localhost""webtob""xxxxxx") or die("not connect");
   
mysql_select_db(&#39;script&#39;, $link) or die (&#39;not sucesful&#39;);
   
$query "select * from script
where DATA=" 
"&#39;$_POST[data]&#39;" " and time=""&#39;$_POST[time]&#39;;";
   
$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[&#39;send&#39;])) {

 // была отправка формы и выводим полученные данные
 
$newLine ="<br />\r\n";
 
$out = &#39;<html>
<head>
<
title>TEST</title>
</
head>
<
body>
&
#39;;
 
$out .= "fio= ".$_POST[&#39;fio&#39;].$newLine;
 
$out .= "data=".$_POST[&#39;data&#39;].$newLine;
 
$out .= "time=".$_POST[&#39;time&#39;].$newLine;
 
$out .= &#39;</body>
 
</html>&#39;; 
} else {
 
// выводим форму

$out =&#39;
<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>&#39;;
}
echo 
$out
?>
Записан
Sla
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #52 : 19-04-2010 13:00 » 

а что такое string?
откуда ты его взял?


$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
if ($num_rows >= ......) {
} else {
}
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
INOY
Постоялец

ru
Offline 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
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #54 : 19-04-2010 13:32 » 

INOY, а ты ЭТО подставил в скрипт? (там где у тебя было string?)
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
INOY
Постоялец

ru
Offline Offline

« Ответ #55 : 19-04-2010 13:34 » 

ну да
Записан
Sla
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #56 : 19-04-2010 13:35 » 

$result = mysql_query($query);
print_r($result);
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
INOY
Постоялец

ru
Offline Offline

« Ответ #57 : 19-04-2010 13:42 » 

серавно ниче не получается, бесталковая моя бошка.. Для глухих
Записан
INOY
Постоялец

ru
Offline 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
Постоялец

ru
Offline Offline

« Ответ #59 : 19-04-2010 17:42 » 

Я заметил что у нас везде стоит параметр "data" , а поле у меня имело имя "date"
Заменил data на date  в скрипте, и он стал сафсем както неправильно работать.. хотя ошибки пропали.. и print_r начал чегото показывать..(Resource id #5) думаю дальше..
Записан
Страниц: 1 [2] 3 4 5   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines