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

Форум MySQL

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

 

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

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

тема: Удаление определённого поля из базы
 
 автор: sata   (22.04.2005 в 18:46)   письмо автору
 
 

Суть такая есть база в которой допустим 100 значений как зделать так чтобы можно было удалить определённое поле типа когда значения выведены стояло бы типа удалить нажимаеш и удаляет. Где то я помнится читал подобное но не помню где и на форуме поискал чё то ничего не видел если кто что видел киньте линки. Спасибо

   
 
 автор: cheops   (22.04.2005 в 22:05)   письмо автору
 
   для: 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

   
 
 автор: sata   (22.04.2005 в 23:21)   письмо автору
 
   для: 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);
}
?>

   
 
 автор: cheops   (22.04.2005 в 23:27)   письмо автору
 
   для: 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!');
?>

   
 
 автор: sata   (22.04.2005 в 23:32)   письмо автору
 
   для: 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);
}

   
 
 автор: cheops   (23.04.2005 в 00:14)   письмо автору
 
   для: sata   (22.04.2005 в 23:32)
 

А вы выведите запрос ($query) в окно браузера и попытайтесь его выполнить в консольном клиенте mysql? Так можно будет опередлить кто виноват: запрос или PHP-код.

   
 
 автор: sata   (23.04.2005 в 10:50)   письмо автору
 
   для: cheops   (23.04.2005 в 00:14)
 

Нету консоли или я незнаю как её в денвере запустить

   
 
 автор: cheops   (23.04.2005 в 11:35)   письмо автору
 
   для: sata   (23.04.2005 в 10:50)
 

А тогда вы можете воспользоваться Web-интефейсом phpMyAdmin (меню SQL)

   
 
 автор: sata   (23.04.2005 в 12:13)   письмо автору
 
   для: cheops   (23.04.2005 в 11:35)
 

Заметил ещё одну проблему при нажатии кнопки обновить добавляется ещё одно такое же поле которое было добавлено ранее

   
 
 автор: sata   (23.04.2005 в 21:40)   письмо автору
 
   для: sata   (23.04.2005 в 12:13)
 

Со всем разобрался кроме удаления почему то наотрез нехочет удалять блин

   
 
 автор: sata   (23.04.2005 в 22:37)   письмо автору
 
   для: 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>"
?>

   
 
 автор: cheops   (24.04.2005 в 13:58)   письмо автору
 
   для: sata   (23.04.2005 в 22:37)
 

Так а в чём ошибка? Т.е. где происходит сбой? Не могли бы вы также приложить кусок дампа таблицы link, так как без неё сложно отладить код?

   
 
 автор: sata   (24.04.2005 в 14:21)   письмо автору
 
   для: cheops   (24.04.2005 в 13:58)
 

Если бы я знал в чём ошибка наверно бы сам разобрался Навскид могу тока сказать что при нажатии на удалить должно бы отправляться значение массива в del.php и удаляться из базы а на проверке ничего неудаляет и ошибок никаких невыводит дамп и все файлы относящиеся к делу в архив выложил

   
 
 автор: cheops   (24.04.2005 в 15:12)   письмо автору
 
   для: sata   (24.04.2005 в 14:21)
 

Для передачи значения лучше использовать скрытое поле type=hidden. Посмотрите код в аттаче.

   
 
 автор: sata   (24.04.2005 в 15:27)   письмо автору
 
   для: cheops   (24.04.2005 в 15:12)
 

Оогромное человеческое спасибо.

   
Rambler's Top100
вверх

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