|
Передача параметров из формы в запрос
|
|||
---|---|---|---|
#18+
Каким образом, можно передать данные из поля в формы в запрос в качетсве параметра для выборки? Задача: выбрать данные из БД (МуSQL) за определенный промежуток времени. Например 1.03.2004-31.03.2004 В качетсве критерия отбора поле date char(10) not null unique primary key Пишем в поле формы: 06.2004 жмем кнопку и ... Код такой <html> <body> <form method="post" action="<? echo $PHP_SELF ?>"> //???!!! <input type="text" name="date"> //???!!! <input type="submit" name="submit" value="Date"> //???!!! </form> //???!!! <? if($submit) { $db=mysql_connect("localhost","guest"); mysql_select_db("resources",$db); $result=mysql_query("select * from consumption where right(date,7) like $date",$db); //???!!! ?> <table celpadding=0 cellsoacing=0 bordercolor=silver> <tr><th colspan=3>Spinning factory <th colspan=5>Weaving factory <th colspan=3>garment factory <th colspan=3>General <? while($myrow=mysql_fetch_row($result)) { printf("<tr><td>%s<td>%s<td>%s<td>%s<td>%s<td>%s<td>%s <td>%s<td>%s<td>%s<td>%s<td>%s<td>%s<td>%s <td>%s<td>%s<td>%s\n", $myrow[0],$myrow[1],$myrow[2],$myrow[3],$myrow[4],$myrow[5], $myrow[6],$myrow[7],$myrow[8],$myrow[9],$myrow[10],$myrow[11], $myrow[12],$myrow[13],$myrow[14],$myrow[15],$myrow[16]); } } ?> </table> </body> </html> Выдает ошибку: Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in D:\home\energy\www\forms\select.php on line 21 Если "select * from consumption where right(date,7) like $date ",$db поменять на "select * from consumption where date like '%.03.2004' ",$db И в поле ничего не вводить, то все работает. P.S. Не делеть же теперь для каждого запроса отдельную страницу, а если делать то это вандализм какой-то, глумление над PHP и разумом. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2004, 11:02 |
|
Передача параметров из формы в запрос
|
|||
---|---|---|---|
#18+
Уважаемый Andrey. Пожалуйста, почитайте инструкцию по ОСНОВАМ SQL. Там есть такой тип - "Дата", который можно тупо сравнивать с другой датой. Только учтиите, что в MySQL есть одно неудобство - дата хранится в формате "гггг-дд-мм". Именно так, опечатки нет, зато запрос намного проще: select * from <таблица> where поле > '2004-05-01' and поле < '2004-05-31' Вот пример насчет месяца мая. Ну там уж сам... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2004, 14:14 |
|
Передача параметров из формы в запрос
|
|||
---|---|---|---|
#18+
А, насчет твоей ошибки - нельзя переносить в PHP так строчки. Если большое желание передать новую строку в mysql (хотя непонятно, зачем), пиши $result=mysql_query("select * from consumption \n where right(date,7) like $date",$db); ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2004, 14:16 |
|
|
start [/forum/topic.php?fid=23&fpage=508&tid=1479663]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 21ms |
total: | 171ms |
0 / 0 |