MySQL:SHOW TABLES只返回第一个表

I am using SHOW TABLES to retrieve a list of tables in the DB. The DB has 19 tables

$db = mysql_connect($dbhost, $dbuser, $dbpassword);
if (!$db)
  {
  die('Could not connect: ' . mysql_error());
  }
$dbselect = mysql_select_db($dbase,$db);
if(!$dbselect) {
  die('Could not connect: ' . mysql_error());
}
$c_query=mysql_query("SHOW TABLES ",$db);
var_dump(mysql_fetch_array($c_query));

The OUTPUT only gives an array with the first table

array(2) { [0]=>  string(5) "tabl1" ["Tables_in_dbase"]=>  string(5) "tabl1" } 

Why? How do I retrieve a list of all tables in the db? Update: Looping seems to be the answer. There does not appear to be a query which returns all the entries in one query.

The result contains multiple rows (each table per row), try something like:

while($row = mysql_fetch_array($c_query)) {
    var_dump($row);
}

See also the result of the query in phpMyAdmin, that also lists multiple rows.

mysql_fetch_array returns the next row of the results as an array. It does not return the full result set as a 2D array.

You need to wrap that line in a loop:

while($row = mysql_fetch_array($c_query)) {
    var_dump($row);
}