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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Циклы...
 
 автор: !!Yurchik!!   (04.01.2005 в 21:10)   письмо автору
 
 

Есть вот такой код:

for($i=1;$i<count($field_array);$i++)
   $f_array[$i]=$_REQUEST[$field_array[$i]];
mysql_query("insert into ".$table_name." values(0,'$f_array[1]','$f_array[2]','$f_array[3]')");

В команде Insert в Values мне приходится тупо перечислять элементы массива... А если я не знаю, сколько их там??? 100% можно организовать цикл, но почему-то он мне кажется очень страшным, т.к. его надо организовывать внутри mysql_querry...
Помогите, плиз организовать этот цикл, а то у меня нифига не выходит + ко всему там столько этих кавычек разных, что ни запутаться не возможно...
И еще одно: у меня почему-то интерпритатор выдает ошибку, если я напрямую пишу в запросе $_REQUEST[$field_array[1]], поэтому я и переприсваиваю эти элементы новому массиву. Почему? (Видимо ему не нравятся квадратные скобки в запросе - он подчеркивает мне именно их)
Заранее благодарен!

   
 
 автор: elenaki   (04.01.2005 в 21:21)   письмо автору
 
   для: !!Yurchik!!   (04.01.2005 в 21:10)
 

я бы сделала так:

начало запроса mysql_query("insert into ".$table_name." values(0, вынесла бы за цикл, в цикле формировала бы только поля для вставки, а после цикла - завершающие скобки и кавычки.

я так и делала, когда грузила в базу текстовый файл. скрипт разбивал его на строки, строки на поля, поля в цикле формировали запрос, а потом этот запрос выполнялся...

   
 
 автор: !!Yurchik!!   (04.01.2005 в 21:25)   письмо автору
 
   для: elenaki   (04.01.2005 в 21:21)
 

Хм... я так и пробовал, но повторяю, что из-за многочисленных кавычек ничего не выходит... путаюсь...

   
 
 автор: cheops   (04.01.2005 в 21:24)   письмо автору
 
   для: !!Yurchik!!   (04.01.2005 в 21:10)
 

Хм... но ведь таблица имеет не любое число столбцов и изменять чисто значений в value нельзя... не очень понятно.
Обычно здесь прибегают к следующему приёму - формируют запрос в отдельной строковой переменной, которую потом передают в качестве аргумента функции mysql_query():
<?php
  $query 
"INSERT ...";
  
mysql_query($query);
?>

А уж с переменной можно делать что хочешь
<?
  $query 
"insert into ".$table_name." values(0,";
  for(
$i=1;$i<count($field_array);$i++) 
  {
    
$query .= "'".$_REQUEST[$field_array[$i]]."',";
  }
  
// Удаляем последнюю запятую и завершаем SQL-запрос
  
$query substr($query,0,strlen($query)-1).")";
  
mysql_query($query);
?>

PS $query всё-таки выведите для начала в окно браузера для того, чтобы проконтролировать синтаксис - в слепую формировал - могут быть ошибки.
PPS А вы соединяйте элемент $_REQUEST[$field_array[1]] точками со строкой " text ".$_REQUEST[$field_array[1]]." text " - так должно сработать...

   
 
 автор: !!Yurchik!!   (04.01.2005 в 23:12)   письмо автору
 
   для: cheops   (04.01.2005 в 21:24)
 

Спасибо, получилось!
>Хм... но ведь таблица имеет не любое число столбцов и
>изменять чисто значений в value нельзя... не очень понятно.
Ну так я просто хотел сделать сценарий для таблиц с разным количеством столбцов.
P.S. Я уже закончил свой скрипт и хочу еще несколько вопросов по нему вам задать, но это уже выложу в другой теме

   
Rambler's Top100
вверх

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