Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 4 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Имеем следующий код:

$table_name="video";
require("connection.php");
$query = "select * from $table_name" ;
$result = mysql_query($query) or die("Query failed");

$q=1;
foreach ($HTTP_POST_VARS as $key => $value)
{$name=mysql_field_name($result,$q);
print "$q --- $name , $value , $key <br>";
$q++;
}

Из кода понятно что я пытаюсь автоматизировать добавление данных в таблицу. Данный код подходит к любой таблице в базе данных, но вот как создать SQL запрос чтобы все происходило по принципу

$query=insert into $table_name (имя_поля_1, имя_поля_2, .....имя_поля_n) values ($HTTP_POST_VARS[$key1],$HTTP_POST_VARS[$key1]..........$HTTP_POST_VARS[$keyN]);


Или может я заблуждаюсь и мне нужно идти совсем иным путем?



Партнер
 

Member
Статус: Не в сети
Регистрация: 10.07.2004
Откуда: Омск
Цитата:
Из кода понятно что я пытаюсь автоматизировать добавление данных в таблицу

автоматизировать добавление данных? Нет, не понятно. Помойму ты там нечего не добавляешь.
Напомни функцию foreach и mysql_field_name

Ты чтото выводишь, для того чтобы записать энное кол-во раз? или? поподробнее


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
ничего не понял я честно говоря, что именно ты собираешся автоматизировать?

Цитата:
$query="insert into $table_name (имя_поля_1, имя_поля_2, .....имя_поля_n) values ('$HTTP_POST_VARS[$key1]','$HTTP_POST_VARS[$key1]'..........'$HTTP_POST_VARS[$keyN]')";
Каждое значение бери с одинарные кавычки, длаже если это int и все будет пахать без проблем.


 

Сорри, забыл добавить что все данные добавляются из формы с кодом:


<html>
<head>
<body>
<FORM method="post" action="filtable.php" >
<table>

<?

$table_name="video";
require("connection.php");
$query = "select * from $table_name" ;
$result = mysql_query($query) or die("Query failed");

$i=mysql_num_fields($result);
echo $i;
for ($q=0; $q<$i; $q++) {

$name=mysql_field_name($result, $q);

print "<tr><td>$q --- $name</td>";

print "<td><INPUT type='text' NAME='$name' SIZE=57></td>";
};


?>
</table>
<INPUT type=SUBMIT VALUE=Послать>
</form>

----конец кода -----

Следовательно на выходе из этой формы получаем массив $HTTP_POST_VARS, в котором каждый элемент - переменная с именем поля, а значение - содержимое добавляемое в поле. Следовательно скрипт filtable.php (его код приведен в первом сообщении) должен выполнять следующие функции:

а) считать имена столбцов, перечислить их через запятую в добавление к началу запроса mysql.
б) считать из массива значение которое вставляется в текущей строке таблицы в соответствующий столбец.
в) вывести обновленную таблицу на экран.

как сделать третье - я знаю.

а вот с первым и вторым - загвоздка, загвозка именно в том что заранее имена переменных в массиве не известны, обращение к элементам массива с помощью порядкового номера элемента здесь тоже не проходит, т.к. массив ассоциативный.
Можно конечно пойти другим путем - заранее определить ключевое поле и просто создать новую строку, а потом в каждый шаг цикла - формировать новый sql запрос с изменением определенного поля в этой строке, тогда получится что в цикле будет произведено столько запросов - сколько столбцов в таблице..., но мне кажется это громоздко....


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 4 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan