Автор Тема: помощ с контролен панел  (Прочетена 953 пъти)

LanMan

  • Напреднали
  • *****
  • Публикации: 20
    • Профил
помощ с контролен панел
« -: Aug 19, 2010, 16:27 »
Здравейте,
Не съм мн навътре в програмирането,но искам да си направя нещо като контролен панел.В него ми се извеждат потребителите и чрез бутон се изтрива(примерно) въпросния потребител.С извеждането нямам проблеми,но немога точно да си сформирам логиката за изтриване и съм написал нещо подобно:
Код:
<?php
mysql_connect('localhost','user','***') or die ("nemoje da se vyrje kym db".  mysql_error());
mysql_select_db('reg') or die ("nqma takava db ".  mysql_error());

$select=mysql_query("SELECT * FROM users ")or die("error".  mysql_error());
$delete=mysql_query("DELETE FROM users WHERE ('".$_POST['id']."')") or die("err");
?>
<html>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head>
        <title>cpanel</title>
    </head>
    <body>

    <form action="cp.php" method="post"  >
      <table align="center" border="1" cellpadding="1" cellspacing="1" width="300" >
          <tr>
              <td align="center" colspan="2" >Users:</td>
          </tr>
          <?php while($row=mysql_fetch_array($select) ){
    echo '<tr>';
           
          echo '<td>';
                   echo $row['id']."  ";
                   echo $row['username'];
                   if(isset($_POST['del'])){
                     while ( $row2=mysql_fetch_array($delete)){
                         $_POST['id'];
                     }
     
                   }
          echo '</td>'.'<br>';
                   
              echo '<td>';
              echo   '<input type="submit" name="del" value="изтрий">';
              echo '</td>';
                 
   echo '</tr>';       


         
          }
          ?>
      </table>
    </form>

    </body>
</html>
Благодаря предварително.  [_]3

Активен

vm13

  • Напреднали
  • *****
  • Публикации: 43
  • Distribution: Ubuntu 10.04
  • Window Manager: Gnome
    • Профил
Re: помощ с контролен панел
« Отговор #1 -: Aug 19, 2010, 20:15 »
Здравей,
кода ти няма да го коментирам. Така не се прави, но това е друга тема.

Сега на въпроса:

1. Имаш грешка в заявката за изтриване:

Код:
$delete=mysql_query("DELETE FROM users WHERE ('".$_POST['id']."')") or die("err");

Би трябвало да е от вида:
Код:
$delete=mysql_query("DELETE FROM users WHERE (id = '".$_POST['id']."')") or die("err");

Освен това, така написано, тази заявка ще се изпълнява и при зареждане на страницата, което е безмислено. Трябва да се изпълнява, само когато има предадена стойност (избран потребител за изтриване)

Код:
if($_POST['id'] > 0){
.......
}

2. Това, което си направил при листването на потребителите е безмислено:

Код:
                   echo $row['id']."  ";
                   echo $row['username'];
                   if(isset($_POST['del'])){
                     while ( $row2=mysql_fetch_array($delete)){
                         $_POST['id'];
                     }
     
                   }

Незнам каква ти е била целта (да триеш? на това място?). Според мен, ако искаш да изтриваш по един потребител, там трябва да има радио бутон, ако искаш да изтриваш по повече от един потребител на веднъж - там трябва да има чек бокс. Или нещо като това:

Код:
                   echo $row['id']."  ";
                   echo $row['username'];
                   echo " <input type='radio' name='id' value='".$row['id']."' />";

До потребителското име ще се появи радио бутон, чиято стойност е id номера на съответния потребител. Като избереш потребител и натиснеш бутона за изтриване, тази стойност ще се изпрати съм същия скрипт, онази проверка по-горе ще сработи (предадено е id със стойност по-голяма от нула) и ще изтрие потребителя. Едва след това ще сложиш заявката за извличане на актуалния (вече) списък на потребителите (а не както сега си го направил - първо взимаш потребителите, после триеш и показваш списък с потребители, които вече са изтрити).

Ако искаш да изтриваш по повече от един потребител, тогава трябва да използваш чек бокс и стойностите да се предават като масив:

Код:
echo " <input type='checkbox' name='users[]' value='".$row['id']."' />";

Кода за изтриване също ще бъде по-различен:

Код:
if($_POST['id'] > 0){
     foreach($_POST['users'] as $id){
         mysql_query("DELETE FROM users WHERE (id = '".$id."')") or die(mysql_error());
     }
}


Активен