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

Форум MySQL

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

 

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

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

тема: Как программно сформировать запрос?

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

 
 автор: Loki   (20.02.2009 в 10:19)   письмо автору
 
   для: Zilog   (20.02.2009 в 01:36)
 

Ну собственно чуда не произошло. Вы только что начали писать "внешний модуль" для работы с БД.

  Ответить  
 
 автор: Zilog   (20.02.2009 в 01:52)   письмо автору
 
   для: а-я   (20.02.2009 в 01:47)
 

Ну вот, ещё одна реализация. Как хорошо :)

А в чём минус моего варианта? Не то, что бы я от него в восторге - хочу слабые места понять.

  Ответить  
 
 автор: а-я   (20.02.2009 в 01:47)   письмо автору
 
   для: Zilog   (20.02.2009 в 01:36)
 

ну не знаю стоит ли так вообще делать.


<?
$fields 
= array('field1','field2','fieldN'); 

for(
$a=0$b=sizeof($fields), $_R=array(); 
    
$a<$b
    
$_R[] = '`'.$fields[$a].'`="'.$_POST[$fields[$a]].'"',$a++
    );

$sql "UPDATE table  SET ".implode(',',$_R)." WHERE id = ".$this->data->id;
?>

  Ответить  
 
 автор: Zilog   (20.02.2009 в 01:36)   письмо автору
 
   для: Loki   (19.02.2009 в 23:35)
 

        
$fields = array('field1','field2','fieldN');
foreach ($fields as $field) $d = $d.$field.'= "'.$_POST[$field].'", ';
$d = substr($d,0,(strlen($d)-2));
$sql = "UPDATE table  SET ".$d." WHERE id = ".$this->data->id;


нехватает только вставиить в цикл проверку на содержимое передаваемых переменных.
но это к теме уже не относится.

  Ответить  
 
 автор: Loki   (19.02.2009 в 23:35)   письмо автору
 
   для: Zilog   (19.02.2009 в 22:53)
 

показывайте

  Ответить  
 
 автор: Zilog   (19.02.2009 в 22:53)   письмо автору
 
   для: Loki   (19.02.2009 в 22:38)
 

>Без обращения к, как Вы их называете, "внешним модулям" - нет.

Да? А я вот сделал. Код не красавец, но работает без изъянов.

  Ответить  
 
 автор: Loki   (19.02.2009 в 22:38)   письмо автору
 
   для: Zilog   (19.02.2009 в 19:26)
 

Без обращения к, как Вы их называете, "внешним модулям" - нет.

  Ответить  
 
 автор: Zilog   (19.02.2009 в 19:26)   письмо автору
 
 

Идея следующая: задавать массив, где перечислены имена полей из формы, они же - поля в БД, и формировать на основе данных из формы один SQL запрос.

Я вытащил некий код из книжки, но он не работает, т.к. юзает непонятную мне функцию какого то внешнего модуля: $db->prepare

$fields = array('field1','field2','field3','field4');
$updateFields = array();
$updateValues = array();
foreach ($fields as $field)
{
       $updateFields[] = "$filed=?";
       $updateValues[] = $_POST[$field];
}
$st = $db->prepare('UPDATE vega_pages_data SET '.implode(',',$updateFields).' WHERE id = '.$this->data->id.');


Кто нибудь делал такое? Может есть нормальное решение без обращений к внешним модулям?

  Ответить  

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

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

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