Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Запрос к базе из формы.

Сообщения:  [1-9] 

 
 автор: Gandzas   (31.10.2006 в 17:05)   письмо автору
 
   для: elenaki   (31.10.2006 в 15:31)
 

Кхм... Бывает... :) Спасибо.

   
 
 автор: elenaki   (31.10.2006 в 15:31)   письмо автору
 
   для: Gandzas   (31.10.2006 в 15:28)
 

у селекта нет имени, надо так:


<select name=tip>
<option value="">Выберите</option>  

....

</select>

   
 
 автор: Gandzas   (31.10.2006 в 15:28)   письмо автору
 
   для: Gandzas   (31.10.2006 в 14:13)
 


<form name="form" method="post" action="1.php">  
    <select>  
<option value="">Выберите</option> 
      <?

$res
=mysql_query("SELECT DISTINCT tip FROM baza");

  if(
$res)
{
  
  while(
$baza mysql_fetch_array($res))


    {

 
    echo 
"<option value='".$baza['tip']."'>".$baza['tip']."<br></option>";
    

    }
}
else
{
  echo 
"<p><b>Error: ".mysql_error()."<br>";
  exit();
}
?>
   </select>  

<input type="submit" value="Искать">  
</form>


Что я делаю неправильно? Переменная не передается.

   
 
 автор: Gandzas   (31.10.2006 в 14:13)   письмо автору
 
   для: elenaki   (30.10.2006 в 19:16)
 

Спасибо! Сейчас буду пробовать.

   
 
 автор: elenaki   (30.10.2006 в 19:16)   письмо автору
 
   для: Gandzas   (30.10.2006 в 18:06)
 

во-первых, надо дать какое-то значение опции, а то что же юзер будет выбирать?
echo "<option value='".$baza['tip']."'>".$baza['tip']."<br></option>"; 


кроме того, надо сделать самой первой (вне цикла) пустую опцию. вдруг он не захочет ничего выбирать:
<option value="">=============</option> 
вместо ======== можно написать "Выберите ..." что вы там выбираете.

теперь можно и в запрос подставлять:
where tip='".$_POST["tip"]."'

кстати, условия в запросе пишутся не через запятую, а присоединяются словом OR или AND

SELECT * FROM baza where data='".$_POST["data"]."' AND tip='".$_POST["tip"]."'  AND  region='".$_POST["region"]."'");

   
 
 автор: Gandzas   (30.10.2006 в 18:06)   письмо автору
 
   для: cheops   (30.10.2006 в 16:04)
 

>>$res=mysql_query("SELECT * FROM baza where data='не знаю, что писать', tip='не знаю что
>>писать', region='не знаю что писать'");
>А вы что хотите сделать? Какая у вас структура таблицы и что должен делать приведённый выше скрипт?

в селект я вывожу все значения, которые есть в базе, мне нужно передать значение, которое выберет пользователь сюда tip='не знаю, что писать'

   
 
 автор: elenaki   (30.10.2006 в 16:13)   письмо автору
 
   для: cheops   (30.10.2006 в 16:04)
 

скорее всего, нужен поиск по множеству критериев. это называется динамичское построение
запроса. алгоритм такой - проверяете, заполнено ли поле (лучше проверку делать в том же
порядке, что и поля в форме, а то запутаетесь, если много полей будет) tip, если да, то в
переменную, например, cond пишете " where tip=$tip ". потом делаете проверку на след .поле.
если и оно выбрано и переменная cond не пуста, то прибавляете к ней " and region=$region",
если cond пуста, то вместо and, надо писать where. потом третье условие - дата. тут могут
быть проблемы, потому что дата должна быть в определенном формате. лучше всего дать
пользователю выбрать дату из календарика, преобразовать ее к виду timestamp и потом уже
вычислять... не знаю что - чтоб поле data было равно введеной дате, меньше, больше - сами
решаете.

   
 
 автор: cheops   (30.10.2006 в 16:04)   письмо автору
 
   для: Gandzas   (30.10.2006 в 15:53)
 

>$res=mysql_query("SELECT * FROM baza where data='не знаю, что писать', tip='не знаю что
>писать', region='не знаю что писать'");
А вы что хотите сделать? Какая у вас структура таблицы и что должен делать приведённый выше скрипт?

   
 
 автор: Gandzas   (30.10.2006 в 15:53)   письмо автору
 
 

Пыталась написать, используя информация, которую нашла, но кое в чем так и не разобралась и не уверена, что все правильно.

Вот содержимое файла с формой:


<?php
require("globals.php");
$link=mysql_connect($sqlhost,$sqluser,$sqlpass);
mysql_select_db($dbname,$link); 
?>

<form name="form" method="post" action="1.php">  
    <select name="1">  

      <?

$res
=mysql_query("SELECT DISTINCT tip FROM baza");

  if(
$res)
{
  
  while(
$baza mysql_fetch_array($res))


    {

 
    echo 
"<option value=''>".$baza['tip']."<br></option>";
    

    }
}
else
{
  echo 
"<p><b>Error: ".mysql_error()."<br>";
  exit();
}
?>
   </select>  

<select name="2">  

      <?

$res
=mysql_query("SELECT DISTINCT region FROM baza");

  if(
$res)
{
  
  while(
$baza mysql_fetch_array($res))


    {

 
    echo 
"<option value=''>".$baza['region']."<br></option>";
    

    }
}
else
{
  echo 
"<p><b>Error: ".mysql_error()."<br>";
  exit();
}
?>
   </select> 

<input type="text" name="3" value="Введите дату">
   
<input type="submit" value="Искать">  
</form>




И содержимое файла 1.php


<?php
require("globals.php");
$link=mysql_connect($sqlhost,$sqluser,$sqlpass);
mysql_select_db($dbname,$link); 


$res=mysql_query("SELECT * FROM baza where data='не знаю, что писать', tip='не знаю что писать', region='не знаю что писать'");

  if(
$res)
{
  
  while(
$baza mysql_fetch_array($res))


    {

 
    echo 
" <tr><td NOWRAP>".$baza['data']."</td><td NOWRAP>".$baza['tip']."</td><td NOWRAP>".$baza['kk']."</td><td NOWRAP>".$baza['cena']."</td><td NOWRAP>".$baza['vpered']."</td><td NOWRAP>".$baza['region']."</td><td NOWRAP>".$baza['street']."</td><td NOWRAP>".$baza['dom']."</td><td NOWRAP>".$baza['ob']."</td><td NOWRAP>".$baza['jil']."</td><td NOWRAP>".$baza['kyx']."</td><td NOWRAP>".$baza['et']."</td><td NOWRAP>".$baza['etj']."</td><td NOWRAP>".$baza['tel']."</td><td NOWRAP>".$baza['tv']."</td><td NOWRAP>".$baza['xol']."</td><td NOWRAP>".$baza['meb']."</td><td NOWRAP>".$baza['plan']."</td><td NOWRAP>".$baza['ktel']."</td><td NOWRAP>".$baza['konttel']."</td><td NOWRAP>".$baza['info']."</td></tr>";
    

    }
}
else
{
  echo 
"<p><b>Error: ".mysql_error()."</b></p>";
  exit();
}
?>


Помогите, плиз.

   

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования