]> git.joonet.de Git - adminer.git/commitdiff
Support same name fields in CSV export
authorJakub Vrana <jakub@vrana.cz>
Thu, 9 Aug 2012 15:57:45 +0000 (08:57 -0700)
committerJakub Vrana <jakub@vrana.cz>
Thu, 9 Aug 2012 15:57:45 +0000 (08:57 -0700)
adminer/include/adminer.inc.php
changes.txt

index 791170f82f77252d6d5c316d277a08c933f173cf..a6e4e8a4078a78fc5734c38eff012d1e7228acb0 100644 (file)
@@ -672,25 +672,32 @@ DROP PROCEDURE adminer_alter;
                        if ($result) {
                                $insert = "";
                                $buffer = "";
-                               while ($row = $result->fetch_assoc()) {
+                               $keys = array();
+                               while ($row = $result->fetch_row()) {
+                                       if (!$keys) {
+                                               foreach ($row as $val) {
+                                                       $field = $result->fetch_field();
+                                                       $keys[] = $field->name;
+                                               }
+                                       }
                                        if ($_POST["format"] != "sql") {
                                                if ($style == "table") {
-                                                       dump_csv(array_keys($row));
+                                                       dump_csv($keys);
                                                        $style = "INSERT";
                                                }
                                                dump_csv($row);
                                        } else {
                                                if (!$insert) {
-                                                       $insert = "INSERT INTO " . table($table) . " (" . implode(", ", array_map('idf_escape', array_keys($row))) . ") VALUES";
+                                                       $insert = "INSERT INTO " . table($table) . " (" . implode(", ", array_map('idf_escape', $keys)) . ") VALUES";
                                                }
                                                foreach ($row as $key => $val) {
-                                                       $row[$key] = ($val !== null ? (ereg('int|float|double|decimal|bit', $fields[$key]["type"]) ? $val : q($val)) : "NULL"); //! columns looking like functions
+                                                       $row[$key] = ($val !== null ? (ereg('int|float|double|decimal|bit', $fields[$keys[$key]]["type"]) ? $val : q($val)) : "NULL"); //! columns looking like functions
                                                }
                                                $s = implode(",\t", $row);
                                                if ($style == "INSERT+UPDATE") {
                                                        $set = array();
                                                        foreach ($row as $key => $val) {
-                                                               $set[] = idf_escape($key) . " = $val";
+                                                               $set[] = idf_escape($keys[$key]) . " = $val";
                                                        }
                                                        echo "$insert ($s) ON DUPLICATE KEY UPDATE " . implode(", ", $set) . ";\n";
                                                } else {
index 5a07dbf9f10f8e0f6041bd46ec8088378f200aab..300678b4613802ea3b161bf20844446c0d3ace6b 100644 (file)
@@ -1,4 +1,6 @@
 Adminer 3.5.1-dev:
+Support same name fields in CSV export
+Support Shift+click in export
 
 Adminer 3.5.0 (released 2012-08-05):
 Links for column search in select