1

Тема: Видалення запису з БД по id

Як видалити запис з БД. Наприклад у мене є таблиця `news` у ній `id, title, text, time`, і кожна новина має ідентифікатор по id /full_news.php?id=1 .. якщо перейти у повний опис статті то видаляти ту статтю на якій було натиснуто кнопку "Видалити", тобто по id...у мене видаляє статтю яка не відповідає тій на якій я нажав кнопку тобто найперший id, а не поточний.. Надіюся зрозуміли мене :-) ...

2

Re: Видалення запису з БД по id

Трохи зроуміли а що ви хочете від нас?
Ось варіант як я видаляю дані):

$id = 1;
$pdo->execute('Delete from news where id = ? limit 1', array($id));

Фактично треша шукати глюк і дивитись який у вас код а то можна через ОРМ  з базою працювати або ще якось) Так що тут варіантів видалення може бути багато. Покажіть код підскажемо краще ;)

3

Re: Видалення запису з БД по id

А чого це в розділ PHP?
Бази даних можуть бути і на основі текстових файлів, тоді виділяєте рядок з записом і нажимаєте делете)

4

Re: Видалення запису з БД по id

А чого це в розділ PHP?

Бак скоріше в PHP коді а не в mysql ;)

5

Re: Видалення запису з БД по id

Я мав на увазі, що по його вхідним даним я можу сказати, що крокодили зелені. Якось не цікаво шукати чорного кота в темній кімнаті, якого там нема.

6

Re: Видалення запису з БД по id

Код повної статті:

<?php
$resultat1 = mysql_query("SELECT * FROM news WHERE id='$_GET[id]'");
$array1 = mysql_fetch_array($resultat1);
if($array1 == '0'){
echo "<div class='alert alert-info'>Немає новин :-(</div>";
}else{
printf("<blockquote>");
printf("<span class='label'>$array1[id]</span> ");
printf("<span class='label'>$array1[title]</span> <span class='label label-info'>$array1[time]</span>");
printf("</blockquote>");
printf("<div class='well'>$array1[text]</div>");
printf("<br/>");
}    
?>

Код видалення:

<?php include_once("bd.php");?>
<?php
if(isset($login) AND isset($password)){
if($id_user <= '50')
    {
$resultat1 = mysql_query("SELECT FROM news");
$array1 = mysql_fetch_array($resultat1);
mysql_query("DELETE FROM news WHERE id=$array[id]");
header('Location: /news.php'); 
exit;
}
}
?>

тобто видаляти статтю з якої було натиснуто кнопку Видалити .... Наприклад: /full_news.php?id=1   то видалити статтю з id = 1 ..../full_news.php?id=34  .... аналогічно з id = 34 ......

7 Востаннє редагувалося DictatoR (15.01.2013 21:12:46)

Re: Видалення запису з БД по id

Зараз допоможу!

8 Востаннє редагувалося DictatoR (15.01.2013 21:39:45)

Re: Видалення запису з БД по id

На сторінці повної статті прикручуєм таку кнопку

<a href="delete.php?id=$array1[id]">Видалити</a>

Припустим новина видаляється у нас в файлі delete.php, і там пишим наступнмй код

<?php include_once("bd.php");
mysql_query("DELETE * FROM `news` WHERE `id`='$_GET[id]'");
?>

9

Re: Видалення запису з БД по id

Нічого не відбувається після кліку, стаття не видаляється.

10

Re: Видалення запису з БД по id

Альо, а провірку вхідних параметрів хто буде робити? WHERE id='$_GET[id]' - цим ви відкриваєте свою базу даних всьому світу.

11

Re: Видалення запису з БД по id

ihorhol написав:

Нічого не відбувається після кліку, стаття не видаляється.

...е а можна виложити ці 2 файла?!
Спочатку потрібно зробити так щоб код працював, а потом провірку, якщо уж так придиратись до коду то код ihorhol взагалі кращи спалити!

12

Re: Видалення запису з БД по id

<a href="delete.php?id=$array1[id]">Видалити</a>

Воно по перше так і передасть id=$array1[id] - html пехапешні змінні не підставляє), а  id=$array1[id] немає в базі.

13 Востаннє редагувалося Vo_Vik (15.01.2013 21:53:48)

Re: Видалення запису з БД по id

printf("<span class='label'>$array1[id]</span> ");

після оцього з вашого файлу вставте ту кнопку

printf("<a href='delete.php?id=$array1[id]'>Видалити</a>");

замість delete.php - поставте назву файлу де у вас код видаленя

Поставте дебаги

echo $_GET['id'];

Щоб бачити що у вас скрипт приходить.
А взагалі де ви той код взяли? Самі писали?

14

Re: Видалення запису з БД по id

Vo_Vik написав:
<a href="delete.php?id=$array1[id]">Видалити</a>

Воно по перше так і передасть id=$array1[id] - html пехапешні змінні не підставляє), а  id=$array1[id] немає в базі.

з GET я чот протупив забув, там потрібно printf переробити, але нехай дасть повний код!

15

Re: Видалення запису з БД по id

Весь код потрібно взяти в один printf

16

Re: Видалення запису з БД по id

DictatoR написав:
Vo_Vik написав:
<a href="delete.php?id=$array1[id]">Видалити</a>

Воно по перше так і передасть id=$array1[id] - html пехапешні змінні не підставляє), а  id=$array1[id] немає в базі.

з GET я чот протупив забув, там потрібно printf переробити, але нехай дасть повний код!

Повний код сторінки де відображається повна стаття ?

17

Re: Видалення запису з БД по id

<?php
include_once("bd.php");

$resultat = mysql_query("SELECT * FROM news WHERE id='$_GET[id]'");
$array = mysql_fetch_array($resultat);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
   <title>title</title>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   <meta name="keywords" content="">
   <meta name="description" content="">
   <link rel="stylesheet" href="/css/bootstrap.css">
   <link rel="stylesheet" href="/css/bootstrap-responsive.css">
   <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <!-- Le styles -->
    <style type="text/css">
      body {
        padding-top: 60px;
        padding-bottom: 40px;
      }
      .sidebar-nav {
        padding: 9px 0;
      }
    </style>
  </head>

  <body>

 <?php include('block/head.php');?>

    <div class="container-fluid">
      <div class="row-fluid">

       <?php include('block/sidebar.php');?>

        <div class="span9">
         
<?php
$resultat1 = mysql_query("SELECT * FROM news WHERE id='$_GET[id]'");
$array1 = mysql_fetch_array($resultat1);
if($array1 == '0'){
echo "<div class='alert alert-info'>&#1057;&#1090;&#1072;&#1090;&#1090;&#1103; &#1073;&#1091;&#1083;&#1072; &#1074;&#1080;&#1076;&#1072;&#1083;&#1077;&#1085;&#1072; &#1072;&#1073;&#1086; &#1097;&#1077; &#1085;&#1077; &#1089;&#1090;&#1074;&#1086;&#1088;&#1077;&#1085;&#1072; :-(</div>";
}else{
printf("<blockquote>");
printf("<span class='label'>$array1[id]</span> ");
printf("<span class='label'>$array1[title]</span> <span class='label label-info'>$array1[time]</span>");
printf("</blockquote>");
printf("<div class='well'>$array1[text]</div>");
printf("<br/>");
}    
?>
         </div>
          <div class="row-fluid">
            <!--/span-->
          </div><!--/row-->
        </div><!--/span-->


      <hr>

      <footer>
       <?php include('block/footer.php');?> 
      </footer>

    </div><!--/.fluid-container-->

    <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="../js/jquery.js"></script>
    <script src="../js/bootstrap-transition.js"></script>
    <script src="../js/bootstrap-alert.js"></script>
    <script src="../js/bootstrap-modal.js"></script>
    <script src="../js/bootstrap-dropdown.js"></script>
    <script src="../js/bootstrap-scrollspy.js"></script>
    <script src="../js/bootstrap-tab.js"></script>
    <script src="../js/bootstrap-tooltip.js"></script>
    <script src="../js/bootstrap-popover.js"></script>
    <script src="../js/bootstrap-button.js"></script>
    <script src="../js/bootstrap-collapse.js"></script>
    <script src="../js/bootstrap-carousel.js"></script>
    <script src="../js/bootstrap-typeahead.js"></script>

  </body>
</html>

Цілий код сторінки!

18

Re: Видалення запису з БД по id

ihorhol написав:
DictatoR написав:
Vo_Vik написав:

Воно по перше так і передасть id=$array1[id] - html пехапешні змінні не підставляє), а  id=$array1[id] немає в базі.

з GET я чот протупив забув, там потрібно printf переробити, але нехай дасть повний код!

Повний код сторінки де відображається повна стаття ?

ну якщо і зараз нічо не працює то так! і файл в якому видаляється стаття також!

19

Re: Видалення запису з БД по id

Видалення статті повний код:

<?php include_once("bd.php");?>
<?php
if(isset($login) AND isset($password)){
if($id_user <= '50')
    {
$resultat1 = mysql_query("SELECT FROM news");
$array1 = mysql_fetch_array($resultat1);
mysql_query("DELETE FROM news WHERE id=$array[id]");
header('Location: /news.php'); 
exit;
}
}
?>

20

Re: Видалення запису з БД по id

якщо перейти у повний опис статті то видаляти ту статтю на якій було натиснуто кнопку "Видалити", тобто по id...у мене видаляє статтю яка не відповідає тій на якій я нажав кнопку тобто найперший id,

Добре, а де тепер та кнопка яку ви натискали в тому коді який ви запостили?