PHP 4.0 Bug #2460 Updated: Broken array_push? Or seriously misbehaving multidimensional arrays???
| From: | Bug Database | Date: | Sat, 09 Oct 1999 01:28:58 +0000 |
| Subject: | PHP 4.0 Bug #2460 Updated: Broken array_push? Or seriously misbehaving multidimensional arrays??? | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-11635@lists.php.net to get a copy of this message | ||
ID: 2460
User Update by: trevorl@discovermusic.com
Status: Closed
Bug Type: Other
Description: Broken array_push? Or seriously misbehaving multidimensional arrays???
If anyone is interested, below is the finished script. It can map out a mysql database, and throw
the results into a multidimensional array, without any information about the database except for a
connect string.
Enjoy...
<?php
/* make a connection and find out what databases are available... */
$dbi = mysql_connect("localhost","trevorl","");
$dblist_results = mysql_query("show databases") or die ("SHOW DATABASE: Query
Failed\n<br>\n");
$numdbs = mysql_numrows($dblist_results);
$dbtables = 0;
/* run through the databases */
while ($counter < $numdbs) {
/* take a database, query to find out it's table names... */
$database[$counter] = mysql_result($dblist_results, $counter,
mysql_field_name($dblist_results,0));
$sec_result = mysql_db_query($database[$counter], "show tables", $dbi);
$numtables = mysql_numrows($sec_result);
$tablecounter = 0;
print "Current Database [";
print $counter+1;
print "/$numdbs]: $database[$counter]\n<br>";
/* run through the tables */
while ($tablecounter < $numtables) {
/* grab a table */
$cur_tablename = mysql_result($sec_result, $tablecounter,
mysql_field_name($sec_result,0));
print "   |____ Current Table [";
print $tablecounter+1;
print "/$numtables]: $cur_tablename\n<br>\n";
/* now query the table for it's column structure ... */
$col_result = mysql_db_query($database[$counter], "show columns from
$cur_tablename", $dbi);
$numcols = mysql_numrows($col_result);
$colcounter = 0;
while ($colcounter < $numcols) {
$cur_colname = mysql_result($col_result, $colcounter, mysql_field_name($col_result,0));
print "   |   |____ Current Column
[";
print $colcounter+1;
print "/$numcols]: $cur_colname\n<br>\n";
$columns[$colcounter] = $cur_colname;
$colcounter++;
}
$tables["$cur_tablename"] = $columns;
unset($columns);
$dbtables++;
$tablecounter++;
}
$databases["$database[$counter]"] = $tables;
unset($tables);
mysql_free_result($sec_result);
$counter++;
}
mysql_free_result($dblist_results);
print "<br>\n";
while (list($dbname,$table) = each($databases)) {
if ($table) {
while (list($tablename,$column) = each($table)) {
while ($columnname = each($column)) {
print "Database $dbname contains Table $tablename which contains Column
$columnname[1]\n<br>\n";
}
}
}
}
?>
Full Bug description available at: http://bugs.php.net/version4/?id=2460