[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: соединить все вместе
dimonise
помогите с таким вопросом:

есть такой вот скрипт, передающий данные в обработчик:
Код

<?php
$column = $_POST['column'];
 
echo "<form action='add_table.php' method='post' enctype='multipart/form-data' name='forma'>";

for($i=0; $i<$column; $i++) {
echo "<input type='text' name='colum' id='colum' value='' size='10'>";
}
echo "<input type='submit' name='subs' value='создать таблицу'></form>";
?>


вот обработчик:
Код

<?php

$form = $_POST['colum'];
echo $form;
?>


как так сделать чтобы в $_POST передать все значения?



Спустя 15 минут, 30 секунд (19.08.2009 - 20:43) kirik написал(а):
name='colum' замени на name='colum[]' - получишь массив $_POST['colum'][]

Спустя 4 минуты, 16 секунд (19.08.2009 - 20:47) dimonise написал(а):
Цитата (kirik @ 19.08.2009 - 17:43)
name='colum' замени на name='colum[]' - получишь массив $_POST['colum'][]

щас попробую..

Спустя 53 секунды (19.08.2009 - 20:48) sergeiss написал(а):
Я делаю в подобных ситуациях так, что полностью могу управлять процессом.

При создании имен сделай их уникальными:
PHP
for($i=0; $i<$column; $i++) 
{
echo "<input type='text' name='colum$i' id='colum$i' value='' size='10'>";
}


На принимающей стороне делаешь цикл для "выдергивания" нужных значений.
Например, если заранее известно, что количество полей не может быть больше 20, пишем цикл:
PHP
$column=array();
for(
 $i=0; $i<20; $i++)
{
  $key='colum'.$i;
  if( isset( $_POST[ $key] ) )
  {
    $column[$key]=$_POST[ $key ];
  }
}

и на выходе получаем массив, содержащий все величины из нужных полей. Да еще при этом в ключе видно, в каком именно поле была введена величина.

Спустя 8 минут, 34 секунды (19.08.2009 - 20:56) dimonise написал(а):
не работает sad.gif
вот что пишет:
Код
Fatal error: Cannot use [] for reading in /var/webpages/h/o/housemade.com.ua/public/test/housemade_test/admin/add_table

Спустя 3 минуты, 36 секунд (19.08.2009 - 21:00) dimonise написал(а):
а откуда берется $_POST[ $key] ?

Спустя 2 минуты, 24 секунды (19.08.2009 - 21:02) dimonise написал(а):
все! сделал!

Спустя 34 секунды (19.08.2009 - 21:03) dimonise написал(а):
всем спасибо!!!

Спустя 48 секунд (19.08.2009 - 21:04) sergeiss написал(а):
dimonise - обрати только внимание, у меня в коде была ошибочка smile.gif При создании создавались поля с одними именами, а читались как бы с другими (лишняя буква 'n' была). Сейчас я там всё исправил.

Спустя 20 минут, 11 секунд (19.08.2009 - 21:24) dimonise написал(а):
да я по другому сделал.
вопрос тут в другом как теперь базу в автомате создать.....
делаю так:
PHP
<?php 
    
    $form 
$_POST['colum'];
    
$name_tb $_POST['name_tb'];
    foreach (
$form as $array) {
    include (
'../blocks/info.inc.php');
 
mysql_query("CREAT TABLE $name_tb ($form)");
    }
    

но естессвенно ничего не работает.....

Спустя 11 минут, 16 секунд (19.08.2009 - 21:35) sergeiss написал(а):
dimonise - мало того, что у тебя заведомо нерабочий код, так по нему даже не понятно, что же ты хотел сделать blink.gif

Спустя 21 минута, 10 секунд (19.08.2009 - 21:56) dimonise написал(а):
это все тот же обработчик - только видоизмененный. я хочу следующее - пользователь вводит количество столбцов это все передается и выводятся столбцы (пустые) в них записывают название таблицы и названия столбцов и передают в этот обработчик, который автоматически (по идее) создает новую таблицу в базе.

Спустя 6 минут, 11 секунд (19.08.2009 - 22:02) sergeiss написал(а):
Посмотри на тот код, который я тебе дал.

В массиве $column будет перечень всех полей. Используй функцию implode() для создания списка из массива!

И я не понял, что там за include, что он делает.

Спустя 1 минута, 32 секунды (19.08.2009 - 22:04) dimonise написал(а):
с базой соединяет

Спустя 3 минуты, 23 секунды (19.08.2009 - 22:07) sergeiss написал(а):
Цитата (dimonise @ 19.08.2009 - 23:04)
с базой соединяет

В цикле???????????????????? Зачем? Это достаточно сделать один раз за время жизни скрипта.

Да и по-любому в цикле создавать одну и ту же таблицу не получится smile.gif Получишь отказ уже на втором шаге цикла.

Спустя 9 минут, 52 секунды (19.08.2009 - 22:17) dimonise написал(а):
все. схожу с ума. я в тупике. объясните мне возможно ли вообще такое сделать?

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

может есть другой выход

Спустя 5 минут, 21 секунда (19.08.2009 - 22:23) sergeiss написал(а):
Конечно, по-другому!!! Не надо делать 450 таблиц с разными типами товаров. Надо сделать ОДНУ таблицу, и для типа товара сделать отдельное поле. Целое или символьное. Чаще целое используют.

А 450 таблиц... Это будет "китайский кодинг" smile.gif

Спустя 3 минуты, 3 секунды (19.08.2009 - 22:26) dimonise написал(а):
отож шо китайский. но дело в том что товар разбит по подкатегориям и отличается друг от друга кардинально. но это полбеды, если бы мне нужен был магазин. нет мне нужен сайт для сравнения товаров. и если их все забивать в одну таблицу то она достигнет канадской границы. и еще - вообще есть границы количества колонок в MySQL ?

Спустя 3 минуты, 40 секунд (19.08.2009 - 22:29) sergeiss написал(а):
Предел количества колонок есть. Скока - я лично не знаю.

Далее думаем... Если тебе нужно сравнивать товары, то для этого нужны одинаковые поля. Ты же не будешь сравнивать по разным полям? Тогда получаем, что таблицы должны быть одинаковые. То есть, можно всё в одну поместить.

Вот насчет размера таблицы (количества записей) можешь даже не париться ни секунды. Проблем не будет, при правильной организации БД и правильной работе с ней.

PS. Насчет "китайского кодинга"... Вот тут глянь smile.gif Примеры того, что есть "китайский кодинг" находятся где-то в середине страницы.

Спустя 10 минут, 40 секунд (19.08.2009 - 22:40) dimonise написал(а):
мдя, прикольно.

теперь по нашим баранам. сравнивать то как сравнивать - тупо выводиться описалово по одинаковым продуктам разных фирм и стран. заморочка в другом - для одного продукта 5 колонок для другого 10 и т.д. понятно что можно просто пустые колонки оставлять но все же табла огроменная получиться, не повесится ли сервак?

Спустя 33 минуты, 33 секунды (19.08.2009 - 23:14) sergeiss написал(а):
Цитата (dimonise @ 19.08.2009 - 23:40)
но все же табла огроменная получиться, не повесится ли сервак?

Скока записей ты планируешь иметь в базе? 100 миллионов, и все сразу выбирать?

Другой вопрос: а что, если в разных таблицах данные разместить, то их будет меньше? blink.gif

Спустя 7 минут, 7 секунд (19.08.2009 - 23:21) dimonise написал(а):
тоже верно.

тогда остается последний вопрос - ввод данных в базу будет осуществляться из CSV или TXT файла - как же определить что куда пихать? для каждой подкатегории отдельный скрипт писать?

Спустя 25 минут, 49 секунд (19.08.2009 - 23:46) sergeiss написал(а):
Цитата (dimonise @ 20.08.2009 - 00:21)
тогда остается последний вопрос - ввод данных в базу будет осуществляться из CSV или TXT файла - как же определить что куда пихать? для каждой подкатегории отдельный скрипт писать?

А зачем????
В первой строке указываем заголовки, которые как раз являются названиями полей в БД. И спокойно грузим. А те, что не будут загружены, изначально пусть будут, например, нулевыми (при создании таблицы укажи это).
И делаешь один-единственный универсальный скрипт. Он, если надо, проверяет названия колонок, и грузит данные в БД. Сразу весь файл одной пачкой через LOAD DATA INFILE.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.