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

Форум MySQL

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

 

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

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

тема: Обновление таблицы
 
 автор: include   (31.07.2008 в 16:40)   письмо автору
 
 

-edit.php
<?php

require_once 'config.php';
$query "SELECT * FROM `table` ORDER BY `id`"
$res mysql_query($query) or die(mysql_error()); 
$number mysql_num_rows($res);
echo 
"<center><table border=1 align=center><form action=upd.php method=post enctype=multipart/form-data name=submit>";
while (
$row=mysql_fetch_array($res)) { 
echo 
"
<tr><td><input type=text name=id size=12 value="
.$row['id']."></td>
<td><input type=text name=1 size=12 value="
.$row['1']."></td>
<td><input type=text name=2 size=12 value="
.$row['2']."></td>
</tr>"
;
}
echo 
"<tr><td colspan=8><center><input type=submit class=button value=Обновить></center></td></tr></table></form>";

?>



-upd.php
<?php
require_once 'config.php';
$query "SELECT * FROM `table` ORDER BY `id`"
$res mysql_query($query) or die(mysql_error()); 
$number mysql_num_rows($res);

while (
$row=mysql_fetch_array($res)) { 
mysql_query("UPDATE table SET 1='$1, 2='$2' WHERE `id` = '$id' LIMIT 1") or die(mysql_error());

?>


Как сделать обновление, что-то мой вариант не действует.

  Ответить  
 
 автор: sim5   (31.07.2008 в 16:53)   письмо автору
 
   для: include   (31.07.2008 в 16:40)
 

А почему не работает? И что, даже и не ругается?

  Ответить  
 
 автор: include   (31.07.2008 в 16:55)   письмо автору
 
   для: sim5   (31.07.2008 в 16:53)
 

Нет, просто не обновляет. Скорее всего ошибка в коде.

  Ответить  
 
 автор: Roma   (31.07.2008 в 17:01)   письмо автору
 
   для: include   (31.07.2008 в 16:55)
 

uery = "SELECT * FROM `table` ORDER BY `id`";  
$res = mysql_query($query) or die(mysql_error());  
$number = mysql_num_rows($res); 
echo "<center><table border=1 align=center><form action=upd.php method=post enctype=multipart/form-data name=submit>"; 
while ($row=mysql_fetch_array($res)) {  
echo " 
<tr><td><input type=text name=id size=12 value=".$row['id']."></td> 
<td><input type=text name=1 size=12 value=".$row['1']."></td> 
<td><input type=text name=2 size=12 value=".$row['2']."></td> 
</tr>"; 


?>

здесь у вас возможно будут input-ы с одинаковыми именами.
надо передать и id записи. Ставьте в запросе limit 1(чтобы редактировать только одну запись) или используйте массивы(если много записей)
<input type=text name=1[] size=12 value=".$row['1'].">

  Ответить  
 
 автор: levsha   (31.07.2008 в 17:03)   письмо автору
 
   для: include   (31.07.2008 в 16:40)
 

Еще бы оно работало. Вот смотрите:

while ($row=mysql_fetch_array($res)) {  
echo " 
<tr><td><input type=text name=id size=12 value=".$row['id']."></td> 
<td><input type=text name=1 size=12 value=".$row['1']."></td> 
<td><input type=text name=2 size=12 value=".$row['2']."></td> 
</tr>"; 
}

Здесь вы генерируете форму, ага, сгенерированный документ смотрели?
Допустим у вас 10 записей в БД, на форме у вас будет тоже 10 записей, но имена то полей формы одинаковые, реально на сервер у вас будут переданы значения последней записи, так как везде name=id, name=1, name=2.
Надо сделать так.

while ($row=mysql_fetch_array($res)) {  
echo " 
<tr><td><input type=text name=id_".$row['id']." size=12 value=".$row['id']."></td> 
<td><input type=text name=1_".$row['id']." size=12 value=".$row['1']."></td> 
<td><input type=text name=2_".$row['id']." size=12 value=".$row['2']."></td> 
</tr>"; 
}


Соответственно в upd.php надо перебирать поля формы.

  Ответить  
 
 автор: include   (01.08.2008 в 09:16)   письмо автору
 
   для: levsha   (31.07.2008 в 17:03)
 

Понял ошибку. Спасибо.

  Ответить  
 
 автор: serjinio   (01.08.2008 в 10:08)   письмо автору
 
   для: levsha   (31.07.2008 в 17:03)
 

<input name="id_h" type="hidden" value="<?=$row['id']?>">
<?php
$r 
mysql_query ("UPDATE `table`  
SET 
`1`='"
.$_POST['1']."', 
`2`='"
.$_POST['2']."'
WHERE `id`='"
.$_POST['id_h']."'  ",$db);

if (
$r == 'true'){
echo 
'Обновлено!!!';
}
?>

  Ответить  
 
 автор: AcidTrash   (01.08.2008 в 09:51)   письмо автору
 
   для: include   (31.07.2008 в 16:40)
 

UPDATE table SET 1='$1, 2='$2' WHERE `id` = '$id' LIMIT 1

  Ответить  
 
 автор: Рома   (27.10.2008 в 21:20)   письмо автору
1.8 Кб
 
   для: AcidTrash   (01.08.2008 в 09:51)
 

вечер добрый, программисты
у меня при редактировании сообщения не выполняется запрос, пишет эту ошибку

Error:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 10' at line 1

дело либо в форме, либо в sql запросе на обновление данных.
ткните пожалуйста носом в косяк.

прикрепляю архив с двумя файлами

а может редактировать можно только одно за раз сообщение, или все-таки можно по 10

  Ответить  
 
 автор: Рома   (27.10.2008 в 23:24)   письмо автору
 
   для: Рома   (27.10.2008 в 21:20)
 

пробовал использовать цикл
foreach($msg as $key => $value)
{
}
ничего не вышло, не могу корректно внести необходимую информацию в форму, чтоб хоть от чего-то отталкиваться в sql запросе.
ну что еще можно попробовать?

  Ответить  
 
 автор: Trianon   (28.10.2008 в 00:01)   письмо автору
 
   для: Рома   (27.10.2008 в 23:24)
 

у Вас переменные неопределенные в скрипте.
Для начала стоит попробовать исправить это.

А уж совсем для начала стоило бы создать собственную тему, а не продолжать чужую.

  Ответить  
Rambler's Top100
вверх

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