Potřebujete-li zjistit informace o databázi, kterou využíváte, zkuste se inspirovat následujícím postupem. Umožní vám pomocí internetového prohlížeče zjistit ke kolika databázím máte přístup, jaké tabulky obsahuje zvolená databáze, jakého typu jsou a jaké příznaky mají sloupce, kolik záznamů obsahuje tabulka apod.

Výpis všech databází ke kterým máme přístup, nám zobrazí tento cyklus:

for( $i=0; $i<mysql_num_rows(mysql_list_dbs());$i++){
echo „-„.mysql_tablename(mysql_list_dbs(), $i).“<br>“;
$dat=mysql_tablename(mysql_list_dbs(), $i);
}

Příkaz mysql_num_rows(mysql_list_dbs()) zjistí počet dostupných databází. Druhý řádek vypisuje jejich názvy. Proměnnou $dat použijeme v dalších příkazech jako odkaz na databázi, se kterou pracujeme.

Tabulky v jednotlivých databázích vypíše tento cyklus:

for( $a=0; $a<mysql_num_rows(mysql_list_tables($dat));$a++){
echo „-„.mysql_tablename(mysql_list_tables($dat), $a).“<br>“;
$tab=mysql_tablename(mysql_list_tables($dat), $a);
}

Příkaz mysql_num_rows(mysql_list_tables($dat)) zjišťuje počet tabulek v aktuální databázi. Druhý řádek vypisuje názvy tabulek v databázi. Proměnnou $tab budeme odkazovat na aktuální tabulku.

Nyní zjistíme parametry jednotlivých tabulek:

$result=mysql(„$dat“, „select * from $tab“);
for($b=0; $b < mysql_num_fields($result); $b++) {
echo „-„.mysql_field_name($result,$b).“<br>“;
echo „-„.mysql_field_type($result,$b).“ [„.mysql_field_len($result,$b).“]<br>“;
echo „-„.mysql_field_flags($result, $b).“<br>“;
}

Po vyvolání SQL dotazu získáme tyto údaje:

  • mysql_num_fields($result) – počet sloupců v tabulce
  • mysql_field_name($result,$b) – název sloupce
  • mysql_field_type($result,$b) – datový typ sloupce
  • mysql_field_len($result,$b) – omezení (počet znaků atd.)
  • mysql_field_flags($result, $b) – příznak (primary_key, not_null atd.)

Počet záznamů v tabulce získáme příkazem:

$pocet_zaz = mysql_num_rows($result);
echo „Tabulka $tab obsahuje $pocet_zaz záznamů“;

Pokud z výše uvedených tří cyklů vytvoříme vnořené cykly, získáme kompletní výpis parametrů celé databáze:

for( $i=0; $i<mysql_num_rows(mysql_list_dbs());$i++){
echo „-„.mysql_tablename(mysql_list_dbs(), $i).“<br>“;
$dat=mysql_tablename(mysql_list_dbs(), $i);
for( $a=0; $a<mysql_num_rows(mysql_list_tables($dat));$a++){
echo „-„.mysql_tablename(mysql_list_tables($dat), $a).“<br>“;
$tab=mysql_tablename(mysql_list_tables($dat), $a);
$result=mysql(„$dat“, „select * from $tab“);
for($b=0; $b<mysql_num_fields($result); $b++) {
echo („-„.mysql_field_name($result,$b).“ „.
mysql_field_type($result,$b).“ [„.mysql_field_len($result,$b).“] „.
mysql_field_flags($result, $b).“<br>“);
}
}
}

Jestliže si chcete tento návod vyzkoušet v praxi, můžete si stáhnou tři ukázky použití tohoto kódu. Do stránek je třeba doplnit vaše přístupové údaje k MySQL (server, login, heslo). Najdete zde například ukázku výpisu s použitím CSS:

Textový výpis celé databáze a textový výpis jednotlivých databází pomocí ‚selectu‘ je vhodnější pro rozsáhlé databáze:

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět