From: <wa...@us...> - 2009-11-24 11:50:32
|
Revision: 52 http://phpsqliteadmin.svn.sourceforge.net/phpsqliteadmin/?rev=52&view=rev Author: warddr Date: 2009-11-24 11:50:25 +0000 (Tue, 24 Nov 2009) Log Message: ----------- Removed a coupe of bugs from row_edit.php added a "null?" column to row_edit.php (if you check null the primary key will be auto assigned by sqlite, if you don't do so an empty string will be sent as primary key, that will result in an error). Modified Paths: -------------- trunk/phpsqliteadmin2/row_edit.php trunk/phpsqliteadmin2/todo.txt Modified: trunk/phpsqliteadmin2/row_edit.php =================================================================== --- trunk/phpsqliteadmin2/row_edit.php 2009-11-22 22:14:05 UTC (rev 51) +++ trunk/phpsqliteadmin2/row_edit.php 2009-11-24 11:50:25 UTC (rev 52) @@ -1,183 +1,193 @@ -<?php - -require_once('include.php'); - -// Query (form submitted) portion -if ($_POST['type'] == "edit") { - - if (!$_GET['primary_key']) { - print "Table needs a primary key identifier."; - exit(); - } - - //print "<h3>Edit Row</h3>"; - - foreach (array_keys($_POST) as $column) { - // Only do columns, not $_POST['type'] and so on... - if (strstr($column, "column__") !== false) { - $columns .= ", " .str_replace("column__", "", $column). " = '" .$_POST[$column]. "'"; - } - //echo $column. "<br>"; - - } - // Clean up columns: - $columns = "randomkeytoberemoved" .$columns; - $columns = str_replace("randomkeytoberemoved, ", "", $columns); - //print $columns; - - $userdbh->query("UPDATE " .$_POST['object']. " SET " .$columns. " WHERE " .$_POST['primary_key']. " = '" .$_POST['row']. "'"); - $_SESSION['phpSQLiteAdmin_currentdb'] = ''; - header("Location: table_browse.php?object=" .$_POST['object']. ""); - exit(); - -} else if ($_POST['type'] == "add") { - - //print "<h3>Add Row</h3>"; - - foreach (array_keys($_POST) as $column) { - // Only do columns, not $_POST['type'] and so on... - if (strstr($column, "column__") !== false) { - $columns .= str_replace("column__", "", $column). ", "; - $values .= "'" .$_POST[$column]. "', "; - } - //echo $column. "<br>"; - - } - // Clean up columns/values: - $columns = $columns. "randomkeytoberemoved"; - $columns = str_replace(", randomkeytoberemoved", "", $columns); - $values = $values. "randomkeytoberemoved"; - $values = str_replace(", randomkeytoberemoved", "", $values); - //print $columns. "<br>"; - //print $values; - - $userdbh->query("INSERT INTO " .$_POST['object']. "(" .$columns. ") VALUES(" .$values. ")"); - header("Location: table_browse.php?object=" .$_POST['object']. ""); - exit(); - -} -if ($_GET['type'] == "delete") { - if (!$_GET['primary_key']) { - print "Table needs a primary key identifier."; - exit(); - } - - $userdbh->query("delete from ".$_GET['object']. " where " .$_GET['primary_key']. " = '" .$_GET['row']. "'"); - header("Location: table_browse.php?object=" .$_GET['object']. ""); - exit(); -} - -?> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - <title>phpSQLiteAdmin</title> - <meta http-equiv="expires" content="0"> - <script language="Javascript" src="javascript.txt" type="text/javascript"></script> - <link href="phpsla.css" rel="stylesheet" type="text/css"> -</head> -<body class="right"> -<?php - -print_top_links($_GET['object']); - -// Show main content: add or edit a row form. -if (!$_GET['row']) { - $type = "add"; -} else { - $type = "edit"; -} - -if (!$_GET['object']) { - print "Error: No table selected."; -} - -if ($type == "edit") { - print "<h3>Edit Row from Table '{$_GET['object']}'</h3>\n"; -} else { - print "<h3>Add Row to Table '{$_GET['object']}'</h3>\n"; -} - -print "<form action=\"row_edit.php\" method=\"post\">"; -print "<table border=\"1\">\n"; -print "<tr><th>Column</th><th>Type</th><th>Value</th></tr>\n"; -$userdbh->_setTableInfo($_GET['object']); -$cols = $userdbh->getColsType(); -$k = 0; -while (list($key,$value) = each($cols)) { - $col_name[$k] = $key; - $col_value[$k] = strtolower($value); - - // Clean up col_value to only display databtype. - if ($col_value[$k] == "") { $col_value[$k] = "typeless"; } - //if (strpos(strtolower(" " .$col_value[$k]. " "), "text")) { $col_value[$k] = "text"; } - $col_value[$k] = str_replace("not null", "", $col_value[$k]); - $col_value[$k] = str_replace("null", "", $col_value[$k]); - $col_value[$k] = str_replace("primary key", "", $col_value[$k]); - $col_value[$k] = str_replace("default", "", $col_value[$k]); - $col_value[$k] = preg_replace("/\'[^>]*\'/iU", "", $col_value[$k]); - $col_value[$k] = preg_replace("/\"[^>]*\"/iU", "", $col_value[$k]); - - $k++; -} - -if ($type == "edit") { - $userdbh->query("select * from ".$_GET['object']. " where " .$_GET['primary_key']. " = '" .$_GET['row']. "'"); - //$userdbh->query('select * from '.$_GET['object']); - while($row = $userdbh->fetchArray()) { - $nr_fields = count($row); - for ($i=0; $i<$nr_fields; $i++) { - print "<tr>\n"; - print "<td>" .$col_name[$i]. "</td>\n"; - print "<td>" .$col_value[$i]. "</td>\n"; - if (strpos(" " .$col_value[$i]. " ", "text")) { - print "<td><textarea name=\"column__" .$col_name[$i]. "\">" .$row[$i]. "</textarea></td>\n"; - } else { - print "<td><input type=\"text\" name=\"column__" .$col_name[$i]. "\" value=\"" .$row[$i]. "\" /></td>\n"; - } - print "</tr>\n"; - } - } -} else { - $nr_fields = count($col_name); - for ($i=0; $i<$nr_fields; $i++) { - print "<tr>\n"; - print "<td>" .$col_name[$i]. "</td>\n"; - print "<td>" .$col_value[$i]. "</td>\n"; - if (strpos(" " .$col_value[$i]. " ", "text")) { - print "<td><textarea name=\"column__" .$col_name[$i]. "\"></textarea></td>\n"; - } else { - print "<td><input type=\"text\" name=\"column__" .$col_name[$i]. "\" value=\"\" /></td>\n"; - } - print "</tr>\n"; - } -} -print "<tr>\n<th></th>\n<th></th>\n<th>"; -print "<input type=\"hidden\" name=\"row\" value=\"" .$_GET['row']. "\" />\n"; -print "<input type=\"hidden\" name=\"primary_key\" value=\"" .$_GET['primary_key']. "\" />\n"; -print "<input type=\"hidden\" name=\"object\" value=\"" .$_GET['object']. "\" />\n"; -print "<input type=\"hidden\" name=\"type\" value=\"" .$type. "\" />\n"; -print "<input type=\"submit\" name=\"\" value=\"Save\" />\n"; -print "<input type=button value=\"Cancel\" onclick=\"history.back();\">"; -print "</th>\n</table>\n"; -print "</form>"; - -/* -print "<table border=1>\n"; -print "<tr><th>Column</th><th>Type</th></tr>\n"; -$userdbh->_setTableInfo($_GET['object']); -$cols = $userdbh->getColsType(); -while (list($key,$value) = each($cols)) { - print "<tr><td>$key</td><td>$value</td></tr>\n"; -} -print "</table>\n"; - -print "<p>Rows in table: ".$userdbh->numRows($_GET['object'])."</p>\n"; -*/ - -print "</body>\n"; -print "</html>\n"; - - -?> +<?php + +require_once('include.php'); + +// Query (form submitted) portion +if ($_POST['type'] == "edit") { + + if (!isset($_POST['primary_key']) || ($_POST['primary_key'] == "")) { + print "Table needs a primary key identifier."; + exit(); + } + + //print "<h3>Edit Row</h3>"; + + foreach (array_keys($_POST) as $column) { + // Only do columns, not $_POST['type'] and so on... + if (strstr($column, "column__") !== false) { + $columns .= ", " .str_replace("column__", "", $column). " = '" .$_POST[$column]. "'"; + } + //echo $column. "<br>"; + + } + // Clean up columns: + $columns = "randomkeytoberemoved" .$columns; + $columns = str_replace("randomkeytoberemoved, ", "", $columns); + //print $columns; + + $userdbh->query("UPDATE " .$_POST['object']. " SET " .$columns. " WHERE " .$_POST['primary_key']. " = '" .$_POST['row']. "'"); + $_SESSION['phpSQLiteAdmin_currentdb'] = ''; + header("Location: table_browse.php?object=" .$_POST['object']. ""); + exit(); + +} else if ($_POST['type'] == "add") { + + //print "<h3>Add Row</h3>"; + + foreach (array_keys($_POST) as $column) { + // Only do columns, not $_POST['type'] and so on... + if (strstr($column, "column__") !== false) { + if (!isset($_POST["null_".str_replace("column__", "", $column)])){ + $columns .= str_replace("column__", "", $column). ", "; + $values .= "'" .$_POST[$column]. "', "; + } + } + //echo $column. "<br>"; + + } + // Clean up columns/values: + $columns = $columns. "randomkeytoberemoved"; + $columns = str_replace(", randomkeytoberemoved", "", $columns); + $values = $values. "randomkeytoberemoved"; + $values = str_replace(", randomkeytoberemoved", "", $values); + //print $columns. "<br>"; + //print $values; + + $userdbh->query("INSERT INTO " .$_POST['object']. "(" .$columns. ") VALUES(" .$values. ")"); + header("Location: table_browse.php?object=" .$_POST['object']. ""); + exit(); + +} +if ($_GET['type'] == "delete") { + if (!$_GET['primary_key']) { + print "Table needs a primary key identifier."; + exit(); + } + + $userdbh->query("delete from ".$_GET['object']. " where " .$_GET['primary_key']. " = '" .$_GET['row']. "'"); + header("Location: table_browse.php?object=" .$_GET['object']. ""); + exit(); +} + +?> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <title>phpSQLiteAdmin</title> + <meta http-equiv="expires" content="0"> + <script language="Javascript" src="javascript.txt" type="text/javascript"></script> + <link href="phpsla.css" rel="stylesheet" type="text/css"> +</head> +<body class="right"> +<?php + +print_top_links($_GET['object']); + +// Show main content: add or edit a row form. +if (!isset($_GET['row'])) { + $type = "add"; +} else { + $type = "edit"; +} + +if (!$_GET['object']) { + print "Error: No table selected."; +} + +if ($type == "edit") { + if (!isset($_GET['primary_key']) || ($_GET['primary_key'] == "")) { + print "<h3>Table needs a primary key identifier.</h3>"; + exit(); + } + print "<h3>Edit Row from Table '{$_GET['object']}'</h3>\n"; +} else { + print "<h3>Add Row to Table '{$_GET['object']}'</h3>\n"; +} + +print "<form action=\"row_edit.php\" method=\"post\">"; +print "<table border=\"1\">\n"; +$userdbh->_setTableInfo($_GET['object']); +$cols = $userdbh->getColsType(); +$k = 0; +while (list($key,$value) = each($cols)) { + $col_name[$k] = $key; + $col_value[$k] = strtolower($value); + + // Clean up col_value to only display databtype. + if ($col_value[$k] == "") { $col_value[$k] = "typeless"; } + //if (strpos(strtolower(" " .$col_value[$k]. " "), "text")) { $col_value[$k] = "text"; } + $col_value[$k] = str_replace("not null", "", $col_value[$k]); + $col_value[$k] = str_replace("null", "", $col_value[$k]); + $col_value[$k] = str_replace("unique", "", $col_value[$k]); + $col_value[$k] = str_replace("primary key", "", $col_value[$k]); + $col_value[$k] = str_replace("default", "", $col_value[$k]); + $col_value[$k] = preg_replace("/\'[^>]*\'/iU", "", $col_value[$k]); + $col_value[$k] = preg_replace("/\"[^>]*\"/iU", "", $col_value[$k]); + + $k++; +} + +if ($type == "edit") { + print "<tr><th>Column</th><th>Type</th><th>Value</th></tr>\n"; + $userdbh->query("select * from ".$_GET['object']. " where " .$_GET['primary_key']. " = '" .$_GET['row']. "'"); + //$userdbh->query('select * from '.$_GET['object']); + while($row = $userdbh->fetchArray()) { + $nr_fields = count($row); + for ($i=0; $i<$nr_fields; $i++) { + print "<tr>\n"; + print "<td>" .$col_name[$i]. "</td>\n"; + print "<td>" .$col_value[$i]. "</td>\n"; + if (strpos(" " .$col_value[$i]. " ", "text")) { + print "<td><textarea name=\"column__" .$col_name[$i]. "\">" .$row[$i]. "</textarea></td>\n"; + } else { + print "<td><input type=\"text\" name=\"column__" .$col_name[$i]. "\" value=\"" .$row[$i]. "\" /></td>\n"; + } + print "</tr>\n"; + } + } +} else { + print "<tr><th>Column</th><th>Type</th><th>Value</th><th>null?</th></tr>\n"; + $nr_fields = count($col_name); + for ($i=0; $i<$nr_fields; $i++) { + print "<tr>\n"; + print "<td>" .$col_name[$i]. "</td>\n"; + print "<td>" .$col_value[$i]. "</td>\n"; + if (strpos(" " .$col_value[$i]. " ", "text")) { + print "<td><textarea name=\"column__" .$col_name[$i]. "\"></textarea></td>\n"; + } else { + print "<td><input type=\"text\" name=\"column__" .$col_name[$i]. "\" value=\"\" /></td>\n"; + } + print "<td><input type=\"checkbox\" name=\"null__" .$col_name[$i]. "\" value=\"\" onclick=\"column__".$col_name[$i].".disabled = this.checked ? true : false\" /></td>\n"; + print "</tr>\n"; + } +} +print "<tr>\n<th></th>\n<th></th>\n<th>"; +print "<input type=\"hidden\" name=\"row\" value=\"" .$_GET['row']. "\" />\n"; +print "<input type=\"hidden\" name=\"primary_key\" value=\"" .$_GET['primary_key']. "\" />\n"; +print "<input type=\"hidden\" name=\"object\" value=\"" .$_GET['object']. "\" />\n"; +print "<input type=\"hidden\" name=\"type\" value=\"" .$type. "\" />\n"; +print "<input type=\"submit\" name=\"\" value=\"Save\" />\n"; +print "<input type=button value=\"Cancel\" onclick=\"history.back();\">"; +if ($type == "add") (print "</th>\n<th>\n"); +print "</th>\n</table>\n"; +print "</form>"; + +/* +print "<table border=1>\n"; +print "<tr><th>Column</th><th>Type</th></tr>\n"; +$userdbh->_setTableInfo($_GET['object']); +$cols = $userdbh->getColsType(); +while (list($key,$value) = each($cols)) { + print "<tr><td>$key</td><td>$value</td></tr>\n"; +} +print "</table>\n"; + +print "<p>Rows in table: ".$userdbh->numRows($_GET['object'])."</p>\n"; +*/ + +print "</body>\n"; +print "</html>\n"; + + +?> Modified: trunk/phpsqliteadmin2/todo.txt =================================================================== --- trunk/phpsqliteadmin2/todo.txt 2009-11-22 22:14:05 UTC (rev 51) +++ trunk/phpsqliteadmin2/todo.txt 2009-11-24 11:50:25 UTC (rev 52) @@ -16,11 +16,7 @@ - Privilege checks for databases? -COMPLETED BY WARDDR (November 22, 2009): - - - Fix "Table needs a primary key identifier." error, and try to find a way that the id isn't needed - - Row adding: make autoincrement possible - + Old Todo: - "browse" should have navigation buttons This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |