Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как редактировать таблицу MySQL при помощи Web-интерфейса
 
 автор: helovek   (23.04.2007 в 11:05)   письмо автору
 
 

<?php
// Устанавливаем соединение с базой данных
require_once("config.php");

// Формируем SQL-запрос на извлечение информации
$query = "SELECT * FROM tblf";
$tbl = mysql_query($query);
print("<table width=100% border=\"1\">\n");

if(!$tbl) exit(mysql_error());
// Если имеется хоть одна запись - выводим
if(mysql_num_rows($tbl))
{
while($table = mysql_fetch_array($tbl))
{

print("<tr>\n");

print("<td>" . $table['name']."</td>\n");
print("<td>" . $table['tel']."</td>\n");
print("<td>" . $table['lech']."</td>\n");
print("<td>" . $table['rek']."</td>\n");
print("</tr>\n");





}
}

print("</table>\n");
?>

Я слышал о редактировании в форме. Но не могу найти об этом подробной информации.
Не подскажете, заранее благодарен!

   
 
 автор: zerocool   (23.04.2007 в 11:43)   письмо автору
 
   для: helovek   (23.04.2007 в 11:05)
 

Вы имеете ввиду визуальный редактор PhpMyadmin ?

   
 
 автор: helovek   (23.04.2007 в 12:56)   письмо автору
 
   для: zerocool   (23.04.2007 в 11:43)
 

Нет.
Чтобы непосвященный в MSQL мог редактивовать таблицу MSQL на WEB странице.

   
 
 автор: zerocool   (23.04.2007 в 13:37)   письмо автору
 
   для: helovek   (23.04.2007 в 12:56)
 

Вообщето PhpMyAdmin реально подходит. Не пойму зачем изобретать колесо если оно уже есть.

   
 
 автор: helovek   (23.04.2007 в 14:04)   письмо автору
 
   для: zerocool   (23.04.2007 в 13:37)
 

Тема такая уже звучала: Редактирование всей футбольной таблицы сразу!!!
Только я в ней не разобрался

   
 
 автор: zerocool   (23.04.2007 в 14:39)   письмо автору
 
   для: helovek   (23.04.2007 в 14:04)
 

Может типа так


<?php
// Устанавливаем соединение с базой данных
require_once("config.php");

if(isset(
$_POST[move])&&($_POST[move]=="update")){
if(isset(
$_POST[id])){
$id=$_POST[id];
$name=$_POST[name];
$tel=$_POST[tel];
$lech=$_POST[lech];
$rek=$_POST[rek];
$con=count($id);
for(
$i=0$i<$con$i++){
$query="UPDATE tblf SET name='$name[$i]', tel='$tel[$i]', lech='$lech[$i]', rek='$rek[$i]' WHERE id='$id[$i]'";
$result=mysql_query($query);
}
}
}


// Формируем SQL-запрос на извлечение информации

$query "SELECT * FROM tblf";
$tbl mysql_query($query);
print(
"<table width=100% border=\"1\">\n");
print 
"<form action=".$_SERVER['PHP_SELF']." method=POST>";
print 
"<input type=hidden name=move value=update>";
if(!
$tbl) exit(mysql_error());
// Если имеется хоть одна запись - выводим
if(mysql_num_rows($tbl))
{
while(
$table mysql_fetch_array($tbl))
{

print(
"<tr>\n");
print(
"<td><input type=hidden name=id[] value=".$table['id']."></td>\n");
print(
"<td><input type=text name=name[] value=".$table['name']."></td>\n");
print(
"<td><input type=text name=tel[] value=".$table['tel']."></td>\n");
print(
"<td><input type=text name=lech[] value=".$table['lech']."></td>\n");
print(
"<td><input type=text name=rek[] value=".$table['rek']."></td>\n");
print(
"</tr>\n");





}
}

print(
"</table></form>\n");
?>

   
 
 автор: helovek   (23.04.2007 в 15:27)   письмо автору
 
   для: zerocool   (23.04.2007 в 14:39)
 

<?php
Error_Reporting(E_ALL & ~E_NOTICE);
// Устанавливаем соединение с базой данных
require_once("config.php");

if(isset($_POST[move])&&($_POST[move]=="update")){
if(isset($_POST[id])){
$id=$_POST[id];
$name=$_POST[name];
$tel=$_POST[tel];
$lech=$_POST[lech];
$rek=$_POST[rek];
$con=count($id);
for($i=0; $i<$con; $i++){
$query="UPDATE tblf SET name='$name[$i]', tel='$tel[$i]', lech='$lech[$i]', rek='$rek[$i]' WHERE id='$id[$i]'";
$result=mysql_query($query);
}
}
}


// Формируем SQL-запрос на извлечение информации

$query = "SELECT * FROM tblf";
$tbl = mysql_query($query);
print("<table width=100% border=\"1\">\n");
print "<form action=".$_SERVER['PHP_SELF']." method=POST>";
print "<input type=hidden name=move value=update>";
if(!$tbl) exit(mysql_error());
// Если имеется хоть одна запись - выводим
if(mysql_num_rows($tbl))
{
while($table = mysql_fetch_array($tbl))
{

print("<tr>\n");
print("<td><input type=hidden name=id[] value=".$table['id']."></td>\n");
print("<td><input type=text name=name[] value=".$table['name']."></td>\n");
print("<td><input type=text name=tel[] value=".$table['tel']."></td>\n");
print("<td><input type=text name=lech[] value=".$table['lech']."></td>\n");
print("<td><input type=text name=rek[] value=".$table['rek']."></td>\n");


print("</tr>\n");





}
}

print("</table>\n");
print ("<input type=submit name=sabmit value=Отправить>\n");
print "</form>";

$query="UPDATE tblf SET name = '".$_POST['name']."', tel = '".$_POST['tel']."', lech = '".$_POST['lech']."', rek = '".$_POST['rek']."', WHERE id = ".$_POST['id'];

$mysql_query=mysql_query($query);
if(!$mysql_query) {exit("Ошибка");}

echo"<Meta Http-equiv=\"Refresh\" Content=\"0; Url=otchet.php\">";



?>

Где тут может быть ошибка?

   
 
 автор: zerocool   (23.04.2007 в 15:37)   письмо автору
 
   для: helovek   (23.04.2007 в 15:27)
 

А эти строки для чего нужны?

$query="UPDATE tblf SET name = '".$_POST['name']."', tel = '".$_POST['tel']."', lech = '".$_POST['lech']."', rek = '".$_POST['rek']."', WHERE id = ".$_POST['id'];

$mysql_query=mysql_query($query);
if(!$mysql_query) {exit("Ошибка");}

echo"<Meta Http-equiv=\"Refresh\" Content=\"0; Url=otchet.php\">";

   
 
 автор: helovek   (23.04.2007 в 16:08)   письмо автору
 
   для: zerocool   (23.04.2007 в 15:37)
 

Да, это я погорячился. Но обработать и перезаписать все равно не выходит
нажимаю submit всё на место. и в базе тоже самое.
Кроме того в форму поступает не вся информация , а только одно первое слово.
С чем бы это могло быть связано?

   
 
 автор: zerocool   (23.04.2007 в 16:17)   письмо автору
 
   для: helovek   (23.04.2007 в 16:08)
 

Замените на этот блок


print("<td><input type=hidden name=id[] value='".$table['id']."'></td>\n"); 
print("<td><input type=text name=name[] value='".$table['name']."'></td>\n"); 
print("<td><input type=text name=tel[] value='".$table['tel']."'></td>\n"); 
print("<td><input type=text name=lech[] value='".$table['lech']."'></td>\n"); 
print("<td><input type=text name=rek[] value='".$table['rek']."'></td>\n");


И у Вас интендификатор строк id есть?

   
 
 автор: Trianon   (23.04.2007 в 16:25)   письмо автору
 
   для: zerocool   (23.04.2007 в 16:17)
 

Здесь погорячились Вы. Потому что менять придется на что-то вроде
print('<td><input type=text name=rek[] value="'.htmlspecialchars($table['rek']).'"></td>'."\r\n"); 
и т.п.

   
 
 автор: helovek   (23.04.2007 в 18:17)   письмо автору
 
   для: zerocool   (23.04.2007 в 16:17)
 

CREATE TABLE tblf (
name text NOT NULL,
tel text NOT NULL,
lech text NOT NULL,
rek text NOT NULL
) TYPE=MyISAM;

   
 
 автор: Trianon   (23.04.2007 в 18:26)   письмо автору
 
   для: helovek   (23.04.2007 в 18:17)
 

первичный ключ у таблицы какой?

   
 
 автор: helovek   (23.04.2007 в 18:41)   письмо автору
 
   для: Trianon   (23.04.2007 в 18:26)
 

А разве он сам по себе создаётся?
Таблица без id
Не подскажете как создать таблицу c id?
Может у вас найдётся время?Извините, туго
до завтра

   
 
 автор: Trianon   (23.04.2007 в 19:49)   письмо автору
 
   для: helovek   (23.04.2007 в 18:41)
 

Сам он не создается.
типичная MySQL-таблица с автонаращиваемым первичным ключом выглядит так
CREATE TABLE tblf (
id int(11) NOT NULL AUTO_INCREMENT,
name text NOT NULL,
tel text NOT NULL,
lech text NOT NULL,
rek text NOT NULL,
PRIMARY KEY(id)
) TYPE=MyISAM;

Добавить ключ можно таким запросом:
ALTER TABLE `таблица` 
  ADD `id` 
        INT( 11 ) 
        NOT NULL 
        AUTO_INCREMENT 
        PRIMARY KEY 
        FIRST 
;

   
 
 автор: helovek   (24.04.2007 в 12:21)   письмо автору
 
   для: Trianon   (23.04.2007 в 19:49)
 

ID добавился, а создать изначально с ID не получается
А так всё хорошо, большое спасибо!

   
 
 автор: Trianon   (24.04.2007 в 13:02)   письмо автору
 
   для: helovek   (24.04.2007 в 12:21)
 

То есть как не получается?

CREATE TABLE `tab1` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`fld1` VARCHAR( 20 ) NOT NULL ,
`fld2` VARCHAR( 20 ) NOT NULL 
) ENGINE = MYISAM ;

   
 
 автор: helovek   (24.04.2007 в 13:42)   письмо автору
 
   для: Trianon   (24.04.2007 в 13:02)
 

А так получается

   
 
 автор: zerocool   (24.04.2007 в 13:52)   письмо автору
 
   для: helovek   (24.04.2007 в 13:42)
 

Все правильно, чтобы поле id стало auto_increment нужно задать ему первичный ключ

   
 
 автор: Trianon   (24.04.2007 в 13:57)   письмо автору
 
   для: helovek   (24.04.2007 в 13:42)
 

Так как раньше тоже получается, если запятую поставить в конце строки (после слова auto_increment).

   
 
 автор: helovek   (24.04.2007 в 14:07)   письмо автору
 
   для: Trianon   (24.04.2007 в 13:57)
 

<?php
Error_Reporting(E_ALL & ~E_NOTICE);
// Устанавливаем соединение с базой данных
require_once("config.php");

if(isset($_POST[move])&&($_POST[move]=="update")){
if(isset($_POST[id])){
$id=$_POST[id];
$name=$_POST[name];
$tel=$_POST[tel];
$lech=$_POST[lech];
$rek=$_POST[rek];
$con=count($id);
for($i=0; $i<$con; $i++){
$query="UPDATE tblf SET name='$name[$i]', tel='$tel[$i]', lech='$lech[$i]', rek='$rek[$i]' WHERE id='$id[$i]'";
$result=mysql_query($query);
}
}
}


// Формируем SQL-запрос на извлечение информации

$query = "SELECT * FROM tblf";
$tbl = mysql_query($query);
print("<table width=100% border=\"1\">\n");
print "<form action=".$_SERVER['PHP_SELF']." method=POST>";
print "<input type=hidden name=move value=update>";
if(!$tbl) exit(mysql_error());
// Если имеется хоть одна запись - выводим
if(mysql_num_rows($tbl))
{
while($table = mysql_fetch_array($tbl))
{

print("<tr>\n");
print("<td><input type=hidden name=id[] value=".$table['id']."></td>\n");
print("<td><input type=text name=name[] value=".$table['name']."></td>\n");
print("<td><input type=text name=tel[] value=".$table['tel']."></td>\n");
print("<td><input type=text name=lech[] value=".$table['lech']."></td>\n");
print("<td><input type=text name=rek[] value=".$table['rek']."></td>\n");


print("</tr>\n");





}
}

print("</table>\n");
print ("<input type=submit name=sabmit value=Отправить>\n");
print "</form>";






?>
Почему же эта форма выводит только первое слово таблицы, хотя меняет данные, если к этому слову или данным дописать что либо?

   
 
 автор: Trianon   (24.04.2007 в 14:42)   письмо автору
 
   для: helovek   (24.04.2007 в 14:07)
 

Потому что Вы не учли замечание в посте (23.04.2007 в 16:25)

   
 
 автор: helovek   (24.04.2007 в 16:35)   письмо автору
 
   для: Trianon   (24.04.2007 в 14:42)
 

Все учел и большое спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования