Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как получить имена столбцов таблице?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
DeMonyan
Отправлено: 12 Ноября, 2011 - 00:37:31
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Собственно хочется скрипт написать универсальный, ему передаются данные из формы, и имя таблицы, а он уже сам разбирается какие данные в какой столбец затолкать. Ну и собственно стоит ли так париться, вообще реализуемо?
 
 Top
caballero
Отправлено: 12 Ноября, 2011 - 01:13:49
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




для получения списка столбцой есть специальная БД в nydql - information_schema

но даже если знать какие столцы в БД как определить куда какой толкать?
а если поля формы и бд совпаают то зачем их узнавать


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
OrmaJever Модератор
Отправлено: 12 Ноября, 2011 - 02:40:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)






-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DeMonyan
Отправлено: 12 Ноября, 2011 - 13:23:59
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




caballero пишет:
для получения списка столбцой есть специальная БД в nydql - information_schema

но даже если знать какие столцы в БД как определить куда какой толкать?
а если поля формы и бд совпаают то зачем их узнавать


Определить какой куда толкать - это уже задача форму правильно расположить. А если поля формы совпадают с полями бд, то обращаться то к ним всё раво как-то надо... Если элементы формы я могу например назвать data_1, data_2 ... data_n, и потом их спокойно перебирать по очереди, ибо количество столбцов то узнать можно в таблице. Но в запрос на добавление данных нужно же вносить названия столбцов... Поэтому мне кажется проще использовать название столбцов для имён инпутов и перебирать их по именам столбцов а не по номерам.
 
 Top
DeMonyan
Отправлено: 12 Ноября, 2011 - 15:44:39
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Собственно решение своего вопроса я нашёл, может кому пригодится:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.  
  4. $server="localhost";
  5. $user="user";
  6. $pass="password";
  7. $db="database";
  8.  
  9. $connection = mysql_connect($server,$user,$pass) or die("Access denide");
  10.  
  11. if ($connection) $msg="Connection access";
  12. echo $msg;
  13.  
  14. $db="virta";
  15.  
  16. $select_db=mysql_select_db($db,$connection) or die("Base not choose");
  17.  
  18. $table="table";
  19.  
  20. if ($select_db) {
  21.     $query="Select * from ".$table;
  22.     $result=@mysql_query($query,$connection) or die("ЖОПА!");
  23.     if ($result) echo ' Ok';
  24. };
  25.  
  26. $fields = mysql_list_fields("$db", $table);
  27. $columns = mysql_num_fields($fields);
  28.  
  29. echo "<br /><hr /><br />Таблица: ".$table."
  30.  
  31. <FORM ACTION=\"add_user.php\" METHOD=\"POST\">
  32. <table>
  33. <th height=41>Поля базы</th>
  34. <th height=41><b>Данные</th></tr>";
  35.  
  36. for ($i = 0; $i < $columns; $i++) {
  37. $col_name = mysql_field_name($fields, $i) . "\n";
  38.  
  39. echo "<tr><td>".$col_name."</td><td><input type=text name=".$col_name." size=20></td></tr>";
  40. }
  41.  
  42. echo "</table>";
  43. ?>


Теперь возник вопрос в продолжение: как считать тип данных столбца?
 
 Top
OrmaJever Модератор
Отправлено: 12 Ноября, 2011 - 16:24:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




DeMonyan а прочитать то что я выше написал?

вернёт всё что нужно


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DeMonyan
Отправлено: 12 Ноября, 2011 - 18:05:25
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Я уже тоже самое нашёл на нормальном языке. ))) Тобишь на русском. Хоть знаний и хватит для прочтения и на инглише, но любой язык исключая родной считаю не нормальным и использую только в случае невозможности найти информацию на "нормальном" языке. За ссылку спасибо большое, стало понятно что искать на русском. )))

А подскажите пожалуйста как теперь для таблицы узнать: foreign key?

(Отредактировано автором: 12 Ноября, 2011 - 19:50:13)

 
 Top
caballero
Отправлено: 12 Ноября, 2011 - 18:22:30
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




все типы данных столбцов в таблице information_schema.columns - какие проблеммы


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
DeMonyan
Отправлено: 12 Ноября, 2011 - 20:07:33
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




caballero пишет:
все типы данных столбцов в таблице information_schema.columns - какие проблеммы


Не понял...
 
 Top
snikers987
Отправлено: 12 Ноября, 2011 - 20:11:27
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




DeMonyan пишет:
caballero пишет:
все типы данных столбцов в таблице information_schema.columns - какие проблеммы


Не понял...


Есть база information_schema в ней есть таблица columns в ней хранятся все типы данных столбцов, что не понятно?


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Данил_123
Отправлено: 12 Ноября, 2011 - 21:04:37
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


Помог: 9 раз(а)




DeMonyan очень внимательно вчитывался в первый пост.. И понял(но это сильно опровергает посты остальных..).. Т.ч не уверен.. У вас есть форма с нее данные уходят в обработчик, и вы хотите понять как они пихаются в столбцы? В запросе на запись указывать в той же последованости(передал 'имя' и "пароль") и в той же порядке прописываете в запросе на запись.. Ну или вторым способом, но писать лень..

ЗЫ:походу не то написал.. Как понял..


-----
http://mysitecost.ru
 
 Top
DeMonyan
Отправлено: 12 Ноября, 2011 - 22:10:41
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Данил_123 пишет:
DeMonyan очень внимательно вчитывался в первый пост.. И понял(но это сильно опровергает посты остальных..).. Т.ч не уверен.. У вас есть форма с нее данные уходят в обработчик, и вы хотите понять как они пихаются в столбцы? В запросе на запись указывать в той же последованости(передал 'имя' и "пароль") и в той же порядке прописываете в запросе на запись.. Ну или вторым способом, но писать лень..

ЗЫ:походу не то написал.. Как понял..


Мне нужно сформировать форму на основе типа данных в столбцах, передать её обработчику который по имени таблицы создаст запрос на добавление введённых данных.

На данный момент я не могу обработать колонку корректно, если в неё нужно ввести данные выбрав одно из значений колонки другой таблицы, foreign key нужен...
 
 Top
DeMonyan
Отправлено: 13 Ноября, 2011 - 00:42:44
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Вот такой запрос в MySQL в принципе выдаёт нужные данные: SHOW CREATE TABLE 'имя таблицы', но не могу понять как его использовать в PHP?! В идеале хочется создавать форму для конкретной таблицы на основе метаданных о ней. Если тип int или varchar, то поле ввода, если set то select , если int и foreign key то тоже select. Как сделать селект на основе данных из запроса в принципе понимаю, не сложно. На основе set тут сложнее, но тоже думаю решаемо, мне сложно потому что операторов работы со строкой не знаю в PHP.

(Отредактировано автором: 13 Ноября, 2011 - 00:48:01)

 
 Top
DeepVarvar Супермодератор
Отправлено: 13 Ноября, 2011 - 00:46:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




DeMonyan пишет:
SHOW CREATE TABLE
нахрена так грозно?
 
 Top
DeMonyan
Отправлено: 13 Ноября, 2011 - 00:50:45
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




DeepVarvar пишет:
DeMonyan пишет:
SHOW CREATE TABLE
нахрена так грозно?


А можете дать пример кода как результат этого запроса обработать? Или статью где это прочесть? Яндексом нарыл только SHOW CREATE TABLE...
(Добавление)
Ваш запрос не даст информацию о том откуда считать возможные данные для ввода в столбец.

А в SHOW CREATE TABLE есть вот такие данные

KEY `region` (`Region`),
CONSTRAINT `cities_ibfk_1` FOREIGN KEY (`region`) REFERENCES `regions` (`idReg
ion`)

Если есть более изящный способ определить откуда брать данные для ввода то подскажите пожалуйста.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB