Соединитесь с сервером, не получая никаких визуальных таблиц
Я делаю простую таблицу получения из запроса к серверу. Но, пробуя это на моей локальной машине, я вообще ничего не вижу. Я проверил, что локальный сервер MySQL работает, как и должно быть, и учетные данные, которые я предоставляю, должны быть правильными. Я не получаю никаких ошибок, но, как я сказал, я ничего не вижу из базы данных, но я вижу другие элементы на странице. Я ценю всю помощь, которую я могу получить, я немного новичок в MySQL.
Вот мой код:
<html>
<style>
table.db-table { border-right:1px solid #ccc; border-bottom:1px solid #ccc; }
table.db-table th { background:#eee; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; }
table.db-table td { padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; }
</style>
</html>
<script>
$connection = mysql_connect('localhost','user','password');
mysql_select_db('my_db',$connection);
/* show tables */
$result = mysql_query('SHOW TABLES',$connection) or die('cannot show tables');
while($tableName = mysql_fetch_row($result)) {
$table = $tableName[0];
echo '<h3>',$table,'</h3>';
$result2 = mysql_query('SHOW COLUMNS FROM '.$table) or die('cannot show columns from '.$table);
if(mysql_num_rows($result2)) {
echo '<table cellpadding="0" cellspacing="0" class="db-table">';
echo '<tr><th>Field</th><th>Type</th><th>Null</th><th>Key</th><th>Default<th>Extra</th></tr>';
while($row2 = mysql_fetch_row($result2)) {
echo '<tr>';
foreach($row2 as $key=>$value) {
echo '<td>',$value,'</td>';
}
echo '</tr>';
}
echo '</table><br />';
}
}
</script>
1 ответ
Я немного разбираюсь в этом, но подозреваю, что вы не видите никаких возвращаемых данных, потому что такие команды, как "SHOW TABLES" и "SHOW COLUMNS" не являются реальными запросами. Это внутренние команды MySQL, поэтому я сомневаюсь, что они будут выполнены mysql_query
,
Вместо этого вам нужно использовать таблицы словаря данных, которые для MySQL являются базой данных INFORMATION_SCHEMA. Итак, ваш первый запрос будет:
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'my_db'
и ваши последующие запросы будут:
SELECT column_name
FROM information_schema.columns
WHERE table_schema = 'my_db'
AND table_name = [table_name]