PHP 4.0 Bug #2460 Updated: Broken array_push? Or seriously misbehaving multidimensional arrays???

From: 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 "&nbsp&nbsp&nbsp|____ 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 "&nbsp&nbsp&nbsp|&nbsp&nbsp&nbsp|____ 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

« previous php.dev (#11635) next »