У меня есть несколько таблиц в одной базе данных MySQL. Мне нужно сохранить имя таблицы в переменной и выполнить код для каждого имени таблицы.
Как я могу это сделать?
Вот как это сделать.
<?php $mysqli = new MySQLi (..); //add ur account details here $result = $mysqli -> query ("SHOW TABLES"); $tables = array(); while ($row = $result -> fetch_assoc()){ $tables[] = $row[0]; } foreach ( $tables as $table ){ // do your processing on tables. }
Подробнее о show tables: MySQL :: MySQL 5.5 Справочное руководство :: 12.4.5.38 ПОКАЗАТЬ ТАБЛИЦЫ Синтаксис
show tables
Использование SHOW TABLES:
SHOW TABLES
$pdo = new PDO('mysql:dbname=mydb', 'myuser', 'mypass'); $stmt = $pdo->query('SHOW TABLES;'); if ($stmt->rowCount() > 0) { $tables = $stmt->fetchAll(PDO::FETCH_NUM); foreach ($tables as $table) { $table_name = $table[0]; // do something } }
Вы можете получить список таблиц с помощью следующего запроса SHOW TABLES FROM db_name.См. Например http://dev.mysql.com/doc/refman/5.5/en/show-tables.html.
SHOW TABLES FROM db_name
Использование этого даст вам непосредственно массив таблиц, без необходимости циклически повторять результат:
$pdo = new PDO('mysql:dbname=mydb', 'myuser', 'mypass'); $tables = $pdo->query('SHOW TABLES')->fetchAll(PDO::FETCH_COLUMN, 0);