Я так понял, что вы выводите страничку, на ней пользователь что-то выбирает из одного списка, и после этого формируется второй.
На событие выбора строки первого списка должно произойти:
1-или вы посылаете это значение на обработку скрипту на сервер, а он вам формирует выходной набор, который будет вторым списклм
2-или варианты заранее хранятся в связанных списках.
Без яваскрипта можно обойтись, перерисовывая всю форму посмле того, как был выбран элемент первого комбобокса (Добавление)
точнее, это не связанные списки будут, а массив массивов (Добавление)
Например так
combo1 = array(val1, val2, val3...)
combo2_variations =
array(combo1[1] => array(val11, val12...),
combo[2] => array(val21, val22...)
)
вот так схематично
mysql_query("CREATE TABLE `".$new_table_name."` (
for ($i = 0; $i <= $number_cols; $i++) {
`".$col_name[$i]."` ".$table_type[$i]."(".$table_value[$i].") ".$table_null[$i].",
}
)") or die ("Ошибка при создании таблицы");
mysql_close();
сформируйте циклом ЧАСТЬ строчки завроса, назовите ее $cols, а потом сделайте
CREATE TABLE `".$new_table_name."` ($cols)") or die ("Ошибка при создании таблицы");
Вы понимаете, что если опреторы php писать в ковычках, они не будут выполняться? Или я не знаю такой возможности php? У Вас после $new_table_name открывается строка... (Добавление)
У меня Ваш код не выдал никаких ошибок о недостающих скобках, но у меня mysql нету, поэтому проверить остальное я не могу.
Зря я попросил привести весь код...
Надо было не весь, а вот проблеммный участок без изменений, а вместо остального поставили бы заглушки, только чтоб ошибка осталась
Если комнпилятор ругается на скобку, часто бывает, что не в ней дело. Если вы хотите, чтоб мы тоже поискали лишнюю скобку, неплохо бы весь код
Так...теперь читаю и вдумываюсь (Добавление)
Вроде ничего в глаза не бросается. А переменные все определены в запросе? Может, опечатка где? (Добавление)
(смотрю на второй кусок кода 18 Сентября, 2008 - 17:59:23
) (Добавление)
А КСТАТИ!! create table зачем в цикле?? (Добавление)
В последнем случае вообще странная конструкция: Вы пользуетесь в запросе функцией get_colls(), которая во-первых не возвращает значения, а только выводит строку на экран, во-вторых, записана в ковычках и не вызыватеся. Или я туго въезжаю (Добавление)
И еще вопрос: а до запроса на создание таблицы дело доходит? (Добавление)
Вам просто в цикле надо строчку с описаниями столбцов формировать. А потом эту строчку не принтить, а ретурнить
такое, в каком порядке они перечислены. Iтое значение Iтому столбуцу (Добавление)
Кроме этого, можешь поэксперементировать: вывести оба массива и искать соответстваия))
<?php
mysql_connect("localhost","root","" ) ;
$sql = mysql_query("show databases" ) ;
if ($all = mysql_fetch_assoc($sql)) {
var_dump ($all);
}
?> (Добавление) Morgan Не ждите, чтоб делали за вас. Взяли бы и посмотрели в мануале, что это за функции такие - var_dump и print_r.
Посмотрите на вывод var_dump, увидите индексы массива - и обращайтесь к нему сколько угодно
ну да, кривовато. Хотя можно передавать и переменную я количеством строк. Есть в пхп такая штука...вот например
$b = 4;
$a = "b";
вот в переменной $$a будет значение 4, т.е. значение переменной b.
Это раз.
Другой способ - for($i = 1; $i <= $kolvo; $i++) $col_name[$i] = $_GET["col_name_$i"];
И еще один способ - я выше написал. Вот есть на форме <input name = inpuname[]><input name = inpuname[]><input name = inpuname[]><input name = inpuname[]>
Данные из них ты можешь получить как из массива с именем inputname