Intereting Posts
сохранять jquery ui-sortable позиции в DB PHP Игнорирование моего max_execution_time Укажите PHP-код для выбора дат и записей 3 дня Как получить доступ к сессии клиента Magento извне Magento? Какой файл PHP Ini использует моя веб-страница WAMP? как передать скрытый идентификатор с помощью json в jquery ui autocomplete? Как отправить POST для cURL в литии HTML – Изменить \ Обновить содержимое страницы без обновления \ перезагрузки страницы PHP – выпадающее меню (выберите) не работает должным образом во время цикла Анализ HTTP_RANGE заголовка в PHP store_result () и get_result () в mysql возвращает false Создать новый красноречивый экземпляр с отношениями Общая ошибка: 1366 Неверное целочисленное значение с обновлением Doctrine 2.1 и Zend Form Сохранение пользовательского расширения файла в Internet Explorer при использовании PHP для отправки файла? Измените файл конфигурации в скомпилированном установщике Inno Setup (пользовательский файл конфигурации для каждого загружаемого исполняемого файла)

Как выбрать Неизвестное количество столбцов в mysql?

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

SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA` = 'm_college' AND `TABLE_NAME` = 'm_fee' AND COLUMN_NAME NOT IN ('id', 'classid', 'semid') 

Но этот выбор не дает мне значения строк для каждого неизвестного столбца, который я выбираю. Все, что у меня есть, это имена неизвестных столбцов. Можно ли выбрать значения строк, чтобы я мог иметь столбец как ключ и строки как пару значений в моем PHP-скрипте? Мне нужно вставить имена столбцов и значения строк в другую таблицу. Пожалуйста, помогите или предложите.

Ниже приведена очень быстрая попытка показать таблицу пересечений.

Это позволяет вам иметь фиксированную структуру и добавлять типы сборов «на лету».

 CREATE TABLE IF NOT EXISTS `mz_fee222` ( `id` int(11) NOT NULL AUTO_INCREMENT, `classid` int(11) NOT NULL, `semid` int(11) NOT NULL, `batch` year(4) NOT NULL, `session` int(11) NOT NULL ); create table fee_type ( fee_id int auto_increment primary key, description varchar(100) ); insert fee_type (description) values ('exam'),('marksheet'),('admitcard'),('centre'),('practical'); -- etc as you go create table mz_fee_intersect ( -- here is where the fee amount is stored. Flexible. id int auto_increment primary key, mz_id int not null, -- this is the id from my_fee222 table fee_id int not null, -- this is the fee_id from fee_type table fee int not null, -- here is the actual fee, like 100 bucks -- FK's below (not shown): -- unique key (mz_id,fee_id) -- forbids duplicates ); 

SELECT * FROM table_name выбирает все столбцы и их значения из table_name . То, что вы используете, выбирает все имена столбцов из таблицы схемы (которая не содержит информацию в вашем имени table_name ).

Вы можете использовать SELECT * FROM table_name в PHP и просто использовать mysqli_fetch_assoc для получения ассоциативного массива, который в основном представляет собой массив key => value где key – это имя столбца, а value – это значение для этого столбца в данной строке массива ,

Pulled Directory из документов PHP ( http://php.net/manual/en/mysqli-result.fetch-assoc.php ), потому что вам нужен пример:

 <?php $mysqli = new mysqli("localhost", "my_user", "my_password", "world"); /* check connection */ if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } $query = "SELECT * FROM table_name"; if ($result = $mysqli->query($query)) { /* fetch associative array */ while ($row = $result->fetch_assoc()) { printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]); } /* free result set */ $result->free(); } /* close connection */ $mysqli->close(); ?> 

Хорошо, я не могу понять, почему у вас есть таблица, которая получает столбцы, добавленные динамически, кроме очевидного, но вот предложение, которое, я надеюсь, поможет

Если вы запустите DESCRIBE tablename и соберите результаты, вы получите набор результатов примерно так.

 Field Type Null Key Default Extra id int(10) unsigned NO PRI NULL auto_increment parent_id int(11) NO MUL 0 lft int(11) NO MUL 0 rgt int(11) NO 0 level int(10) unsigned NO NULL name varchar(50) NO UNI NULL title varchar(100) NO NULL rules varchar(5120) NO NULL 

Если вы загрузите это в массив и затем отбросьте строки, которые вы не хотите выбирать в более позднем запросе, вы получите их имена столбцов (в столбце «Поле») и даже их типы данных, если хотите.

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

Надеюсь, это поможет.