Mám funkci, kterou testuji, zda jsou v definovány všechny tabulky, ale je tu problém v tom, že funkce array_search nenajde vždy 1. hodnotu pole $tables, ať už je jeho hodnota jakákoliv, takže nakonec mi kontrolní součet nevyjde.
Děkuji všem za případné rady ;)
$tables[0] = "books";
$tables[1] = "characters";
$tables[2] = "comments";
$tables[3] = "events";
$tables[4] = "images";
$tables[5] = "ips";
$tables[6] = "locations";
$tables[7] = "messages";
$tables[8] = "news";
$tables[9] = "subsection";
$tables[10] = "users";
$checked_tables = 0;
$matching_tables = 0;
$sql = mysql_query('SHOW TABLES FROM ' . $database, $conn);
while (list($table) = mysql_fetch_row($sql)) {
//tady se vypíšou všechny tabulky v databázi
if (array_search($table, $tables)) {
//tady to nevypíše vždy první hodnotu pole tables
echo $table . "<br>";
$matching_tables++;
}
$checked_tables ++;
}
echo $matching_tables;
echo sizeof($tables);
if ($matching_tables != sizeof($tables)) {
die("Database error. Sorry");
}