3 кейса за един файл delete.php

vinsbg

Registered
Здравейте,
заглавието може да е малко не добре, но не измислих как точно да го напиша.
Въпроса е:
Имам три файла fail.php, fail_1.php, fail_2.php. Трите файла ще трият от три различни таблици в базата.
Влизам в fail.php и той ми изкарва данни от table и ще има функция да трие данни от table. Съответно fail_1.php от table_1 и т.н.

Как мога да ползвам 1 файл delete.php и в него като кейсове ли или как? В зависимост с кой файл работя да трие от нея?
 
просто посочваш с ГЕТ променливи какво искаш.
Пример ако отвориш file.php?t=my_table

проверяваш така:
PHP:
$table = trim(htmlspecialchars($_GET['t']));
if($table=='users')
{
    mysql_query("DELETEF ROM `users`  .. ");
}
else if($table == "videos")
{
    mysql_query("DELETEF ROM `users`  .. ");
}
else
    {
  echo "nqma zadadena tablica ?!"; 
}

Така няма ли да стане ? :idea: :?:
 
Благодаря за насоките. Възможно е да стане, но нещо не успявам да го наглася.
За двете таблици
Код:
if (isset($_GET['id']) && is_numeric($_GET['id'])){
$id = $_GET['id'];
if($id=='images')
{
    mysql_query("DELETE FROM images where id=$id");
}
else if($id == "joke")
{
    mysql_query("DELETE FROM gifs where id=$id");
}

else
{
    echo "nqma zadadena tablica ?!";
}

}
а така ги изкарвам в таблица, където да имам възможност да ги изтривам.
Код:
                       if ($i == $total_results) { break; }

                        // echo out the contents of each row into a table
                        echo "<tr>";
                        echo '<td><p>' . mysql_result($result, $i, 'id') . '</p></td>';
                        echo '<td>' . mysql_result($result, $i, 'caption') . '</td>';
                        echo '<td>' . mysql_result($result, $i, 'name') . '</td>';
                        echo '<td><a href="delete.php?id=' . mysql_result($result, $i, 'id') . '">Delete</a></td>';
                        echo "</tr>";
 
Самата логика ти е грешна. Използваш $_GET['id'] и за име на таблица, и за id.
Код:
is_numeric($_GET['id'])  => влиза в if-a само ако ид-то е число
..
if($id == "joke") {

}
Предполагам разбираш какво имам предвид :wink:

Файлът delete.php трябва да има три части:

PHP:
<?php
$table = $_GET['table'];
$id = $_GET['id'];
$allowed_tables = array('joke', 'images')

//част 1: избрана таблица и избрано id
if(isset($table) && isset($id)) {
   if(!is_numeric($id))
      die("Няма такъв запис");

   //подсигуряваме се да не изтрием друга таблица
   if(in_array($table, $allowed_tables)
       mysql_query("DELETE FROM $tables where id=$id");
   else
       echo "няма такава таблица";

   exit;
}
//част 2: избрана е таблица (но не е избрано id - това вече го проверихме)
if(isset($table) && !empty($table)) {
   if(!in_array($table, $allowed_tables))
      echo "тази таблица не може да се променя";
   $query = .. select * from $table; ...
   ?>
   //това ще е в цикъл while
   <a href="delete.php?
           table=<?php echo $table; ?>&
           id=<?php echo $променлива_с_id_на_съответния_запис; ?>">Изтрий запис <?php echo $пак_тази_променлива; ?></a>
   <?php
}
//част 3: Ако не е избрана таблица и id
else {
?>
Моля, избери таблица:
<a href="delete.php?table=joke">joke</a><br>
<a href="delete.php?table=images">images</a><br>
<?php
}
?>
 

Back
Горе