|
|
|
| Суть такая есть база в которой допустим 100 значений как зделать так чтобы можно было удалить определённое поле типа когда значения выведены стояло бы типа удалить нажимаеш и удаляет. Где то я помнится читал подобное но не помню где и на форуме поискал чё то ничего не видел если кто что видел киньте линки. Спасибо | |
|
|
|
|
|
|
|
для: sata
(22.04.2005 в 18:46)
| | Решение приводится в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=427
PS Если вам не сложно, создавайте темы посвящённые работе MySQL в соответствующем разделе форума http://www.softtime.ru/forum/index.php?id_forum=3 | |
|
|
|
|
|
|
|
для: cheops
(22.04.2005 в 22:05)
| | Да блин фиг поймёш к чему это больше относится к пхп или мускулу они же все рядом ходят вот что я наваял пока ждал ответа но проблема осталась ошибок не выдаёт но зараза строки не удаляет почему то вроде всё работает но ничего не работает всё работает до момента когда нажимая на кнопку удалить по идее передаваясь по цепочке должно удалить ан зараза по ходу 0 передаёт вместо массива
<?
require "config.php";
echo "<form method='post' action='$PHP_SELF'>";
echo "Код ссылки с гифкой<br>";
echo "<textarea name=gif></textarea><br>";
echo "Код простой ссылки<br>";
echo" <textarea name=link></textarea><br>";
echo "<input type=submit name=go value=Добавить>";
echo "</form>";
if (isset($go)){
mysql_query("INSERT INTO links(gif,link) VALUES('$gif', '$link')"); }
function link_bar($page, $pages_count)
{
for ($j=1;$j<=$pages_count;$j++)
{
if ($j==$page) echo ' <a style="color: #808000;" ><b>'.$j.'</b></a> ';
else echo ' <a style="color: #808000;" href='.$_SERVER['PHP_SELF'].'?page='.$j.'>'.$j.'</a> ';
if ($j!=$pages_count) echo ' ';
}
}
$perpage = 10;
if (empty($_GET['page']) or $_GET['page']<=0) $page = 1;
else $page = (int)$_GET['page'];
$count = mysql_numrows(mysql_query('SELECT * FROM links')) or die('Error! Записей не найдено!');
$pages_count = ceil($count / $perpage);
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page-1) * $perpage;
link_bar($page, $pages_count);
$result = mysql_query('SELECT * FROM links LIMIT '.$start_pos.', '.$perpage) or die('Error!');
echo '<br><center><b>Каталог ссылок</b><br><br>';
while ($row = mysql_fetch_array($result)) echo "
<table>
<tr>
<td><center>$row[id_links]</center></td>
<td><center>$row[gif]</center></td>
<td><center>$row[link]</center></td>
<td><form method=post><input type=submit name=$row[id_links] value='Удалить'></form></td>
</tr></table>";
echo "</center>";
//$query = "DELETE FROM links WHERE id_links=".$row['id_links'];
if (isset($row['id_links'])){
mysql_query("DELETE FROM links WHERE id_links='$row[id_links]'");
//mysql_query($query);
}
?>
|
| |
|
|
|
|
|
|
|
для: sata
(22.04.2005 в 23:21)
| | Из-за низкого приорета or строка
<?php
$result = mysql_query('SELECT * FROM links LIMIT '.$start_pos.', '.$perpage) or die('Error!');
?>
|
не срабатывает в случае ошибки - так как она реагирует на результат операции =, а он всегда true, следует заменить её на
<?php
$result = mysql_query('SELECT * FROM links LIMIT '.$start_pos.', '.$perpage);
if(!$result) die('Error!');
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(22.04.2005 в 23:27)
| | А суть осталась та же удаление не работает мне кажется что проблема где то здесь хотя по идее всё правильно написал
while ($row = mysql_fetch_array($result)) echo "
<table>
<tr>
<td><center>$row[id_links]</center></td>
<td><center>$row[gif]</center></td>
<td><center>$row[link]</center></td>
<td><form method=post><input type=submit name=$row[id_links] value='Удалить'></form></td>
</tr></table>";
echo "</center>";
//$query = "DELETE FROM links WHERE id_links=".$row['id_links'];
if (isset($row['id_links'])){
mysql_query("DELETE FROM links WHERE id_links='$row[id_links]'");
//mysql_query($query);
}
|
| |
|
|
|
|
|
|
|
для: sata
(22.04.2005 в 23:32)
| | А вы выведите запрос ($query) в окно браузера и попытайтесь его выполнить в консольном клиенте mysql? Так можно будет опередлить кто виноват: запрос или PHP-код. | |
|
|
|
|
|
|
|
для: cheops
(23.04.2005 в 00:14)
| | Нету консоли или я незнаю как её в денвере запустить | |
|
|
|
|
|
|
|
для: sata
(23.04.2005 в 10:50)
| | А тогда вы можете воспользоваться Web-интефейсом phpMyAdmin (меню SQL) | |
|
|
|
|
|
|
|
для: cheops
(23.04.2005 в 11:35)
| | Заметил ещё одну проблему при нажатии кнопки обновить добавляется ещё одно такое же поле которое было добавлено ранее | |
|
|
|
|
|
|
|
для: sata
(23.04.2005 в 12:13)
| | Со всем разобрался кроме удаления почему то наотрез нехочет удалять блин | |
|
|
|
|
|
|
|
для: sata
(23.04.2005 в 21:40)
| | Уважаемый cheops ткните меня фейсом в эту чёртову багу если вас конечно незатруднит я уже запарился. Обрисовываю картину 1 код это форма отправки и вывода информации 2 код файл приёмщик и удаляльщик из базы определённого поля.
<?
require "config.php";
echo "<form method='post' action='add.php'>";
echo "Код ссылки с гифкой<br>";
echo "<textarea name=gif></textarea><br>";
echo "Код простой ссылки<br>";
echo" <textarea name=link></textarea><br>";
echo "<input type=submit name=go value=Добавить>";
echo "</form>";
function link_bar($page, $pages_count)
{
for ($j=1;$j<=$pages_count;$j++)
{
if ($j==$page) echo ' <a style="color: #808000;" ><b>'.$j.'</b></a> ';
else echo ' <a style="color: #808000;" href='.$_SERVER['PHP_SELF'].'?page='.$j.'>'.$j.'</a> ';
if ($j!=$pages_count) echo ' ';
}
}
$perpage = 10;
if (empty($_GET['page']) or $_GET['page']<=0) $page = 1;
else $page = (int)$_GET['page'];
$count = mysql_numrows(mysql_query('SELECT * FROM link')); if(!$count) die('Error! Записей не найдено!')
$pages_count = ceil($count / $perpage);
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page-1) * $perpage;
link_bar($page, $pages_count);
$result = mysql_query('SELECT * FROM link LIMIT '.$start_pos.', '.$perpage); if(!$result) die('Error!');
echo '<br><center><b>Каталог ссылок</b><br><br>';
while ($row = mysql_fetch_array($result)) echo "
<table>
<tr>
<td><center>$row[id]</center></td>
<td><center>$row[gif]</center></td>
<td><center>$row[link]</center></td>
<td><form method='post' action='del.php'><input type=submit name=$row[id] value='Удалить'></form></td>";//где то либо здесь либо в файле приёмщике ошибка
echo "</tr></table>";
echo "</center>";
?>
|
2 код
<?
include "config.php";
if (isset($row['id'])){
mysql_query("DELETE FROM link WHERE id = $row[id]") or die("ERROR");}
echo "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'></HEAD></HTML>";
?>
|
| |
|
|
|
|
|
|
|
для: sata
(23.04.2005 в 22:37)
| | Так а в чём ошибка? Т.е. где происходит сбой? Не могли бы вы также приложить кусок дампа таблицы link, так как без неё сложно отладить код? | |
|
|
|
|
|
|
|
для: cheops
(24.04.2005 в 13:58)
| | Если бы я знал в чём ошибка наверно бы сам разобрался Навскид могу тока сказать что при нажатии на удалить должно бы отправляться значение массива в del.php и удаляться из базы а на проверке ничего неудаляет и ошибок никаких невыводит дамп и все файлы относящиеся к делу в архив выложил | |
|
|
|
|
|
|
|
для: sata
(24.04.2005 в 14:21)
| | Для передачи значения лучше использовать скрытое поле type=hidden. Посмотрите код в аттаче. | |
|
|
|
|
|
|
|
для: cheops
(24.04.2005 в 15:12)
| | Оогромное человеческое спасибо. | |
|
|
|