Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Обработка формы!

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Нужен совет
Virgin
Отправлено: 19 Августа, 2008 - 09:44:33
Post Id


Частый гость


Покинул форум
Сообщений всего: 130
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Доброго времени суток!

1) у меня есть форма которая пере дает методом пост данные в обработчик
$from=$_POST['FROM'];
$to=$_POST['TO'];
$m=$_POST['M'];
$v=$_POST['V'];

2) есть обработчик:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $tr->query="
  4. SELECT
  5. `FROM` as 'Отправка',
  6. `TO` as 'Прибытие',
  7. `KM` as 'КМ',
  8. `STAVKA` as 'Ставка',
  9. `GRUZ_NAME` as 'Груз',
  10. `M` as 'Вес',
  11. `V` as 'Объем',
  12. `USLOVIA` as 'Особые условия',
  13. `FROM_NAME` as 'Заказчик',
  14. `ID_MANAGER` as 'Ответственный',
  15. `FROM_KONTAKT` as 'Контакт'
  16. FROM st_to  WHERE `FROM`='".trim($from)."'  AND `TO`='".trim($to)."' AND `M`='".trim($m)."' AND `V`='".trim($v)."'";
  17.  
  18.  



3) Все работает если вводить ВСЕ 4 параметра...ВОПРОС в том как сделать, чтобы работала выборка если задан например 3 параметра или 2, т.е чтобы работало если заданы все 4 параметра + эти поля должны быть не обязательны для заполнения???

Не понял
 
 Top
Вездеход
Отправлено: 19 Августа, 2008 - 09:53:19
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




сделайте обработку данных ДО того как используете их в запросе.
кактотак:
PHP:
скопировать код в буфер обмена
  1.  
  2. $fq=""; // тут будем формировать условия для запроса
  3. if(isset($_POST['from']) and !empty($_POST['from']))
  4. {
  5. $fq.=" `FROM`='".trim($_POST['from'])."' ";
  6. }
  7.  
  8. if(isset($_POST['to']) and !empty($_POST['to']))
  9. {
  10. if(!empty($fq)) { $fq.=" AND "; }
  11. $fq.=" `FROM`='".trim($_POST['to'])."' ";
  12. }
  13.  
  14. if(isset($_POST['m']) and !empty($_POST['m']))
  15. {
  16. if(!empty($fq)) { $fq.=" AND "; }
  17. $fq.=" `FROM`='".trim($_POST['m'])."' ";
  18. }
  19.  
  20. // ... ваш код
  21.  
  22. if(!empty($fq)) { $fq="WHERE ".$fq; } //
  23. $tr->query="SELECT * FROM st_to ".$fq;
  24.  



это набросок для примера. его можно облегчить намного =)

(Отредактировано автором: 19 Августа, 2008 - 09:57:48)



-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Virgin
Отправлено: 19 Августа, 2008 - 13:08:48
Post Id


Частый гость


Покинул форум
Сообщений всего: 130
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Да еслиб я знал как это сделать, я бы не спросил)) спасибо, что откликнулись Подмигивание

Насчет работы скрипта:

После добавление вышенаписанного, скрипт работает только по первому полю формы, т.е если ввести туда информацию, при этом все остальные поля должны быть пустыми, а также если ничего не вводить выдает полное содержание таблицы А?!

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

(Отредактировано автором: 19 Августа, 2008 - 15:20:59)

 
 Top
Virgin
Отправлено: 19 Августа, 2008 - 15:20:07
Post Id


Частый гость


Покинул форум
Сообщений всего: 130
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Вот весь скрипт обработчика

CODE (text):
скопировать код в буфер обмена
  1. $from=$_POST['FROM'];
  2. $to=$_POST['TO'];
  3. $m=$_POST['M'];
  4. $v=$_POST['V'];
  5. $fq="";
  6. if(isset($_POST['FROM']) and !empty($_POST['FROM']))
  7. {
  8. $fq.=" `FROM`='".trim($_POST['FROM'])."' ";
  9. }
  10.  
  11. if(isset($_POST['TO']) and !empty($_POST['TO']))
  12. {
  13. if(!empty($fq)) { $fq.=" AND "; }
  14. $fq.=" `FROM`='".trim($_POST['TO'])."' ";
  15. }
  16.  
  17. if(isset($_POST['M']) and !empty($_POST['M']))
  18. {
  19. if(!empty($fq)) { $fq.=" AND "; }
  20. $fq.=" `FROM`='".trim($_POST['M'])."' ";
  21. }
  22.  
  23. if(isset($_POST['V']) and !empty($_POST['V']))
  24. {
  25. if(!empty($fq)) { $fq.=" AND "; }
  26. $fq.=" `FROM`='".trim($_POST['V'])."' ";
  27. }
  28.  
  29. echo "<br><center><h2>Ваш запрос следования груза: </h2></center><br><center><h3> ".$_POST['FROM']. " - ".$_POST['TO']." </h3></center><br><br>";
  30. if(!empty($fq)) { $fq="WHERE ".$fq; }
  31. $tr=new TabReport();
  32.  $tr->query="
  33. SELECT
  34. `FROM` as 'Отправка',
  35. `TO` as 'Прибытие',
  36. `KM` as 'КМ',
  37. `STAVKA` as 'Ставка',
  38. `GRUZ_NAME` as 'Груз',
  39. `M` as 'Вес',
  40. `V` as 'Объем',
  41. `USLOVIA` as 'Особые условия',
  42. `FROM_NAME` as 'Заказчик',
  43. `ID_MANAGER` as 'Ответственный',
  44. `FROM_KONTAKT` as 'Контакт'
  45.  
  46. FROM st_to  ".$fq ;
  47. //FROM st_to  WHERE `FROM`='".trim($from)."' AND`TO`='".trim($to)."' AND `M`='".trim($m)."' AND `V`='".trim($v)."'";
  48.  
  49.  $tr->update="yes";
  50.  $tr->notck="yes";
  51.  $tr->perstol="no";
  52.  $tr->exexcel="no";
  53.  
  54.  
  55.  $tr->runAll();
  56. echo "
  57. <br><br>
  58.   <table  class='data_form' width='100%' id='table1' bgcolor='' cellpadding='3'>
  59.         <tr class='shead'><td align='left' colspan='2'>Новый поиск</td></tr>
  60.                         <tr class='info'>
  61.                         <td align='right'>Отправка</td>
  62.              <form  action='".$PHP_SELF."' method=post>
  63.                         <td align='left' ><input type='text'   id='FROM' name='FROM' value='' size=30   >
  64.                 </td>
  65.                 </tr>
  66.                         <tr class='info'>
  67.                         <td align='right'>Прибытие</td>
  68.                         <td align='left' ><input type='text'   id='TO' name='TO' value='' size=30   >
  69.                 </td>
  70.                 </tr>
  71.                  <tr class='info'>
  72.                         <td align='right'>Объём</td>
  73.  
  74.                         <td align='left' ><input type='text'   id='V' name='V' value='' size=10   >
  75.                 </td>
  76.                 </tr>
  77.                         <tr class='info'>
  78.                         <td align='right'>Вес</td>
  79.                         <td align='left' ><input type='text'   id='M' name='M' value='' size=10   >
  80.                 </td>
  81.                 </tr>
  82.                 <tr><td align='right'><input id='formkey'  type='submit' value='Искать' ></td><td></td></tr>
  83.           </form>
  84.  
  85. </table>
  86.  
  87.  


";
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB