Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: inquilin@19 en 20 Diciembre 2011, 19:16 pm



Título: Evitar que se borre una ultima entrada
Publicado por: inquilin@19 en 20 Diciembre 2011, 19:16 pm
Hola a todos, estoy haciendo un foro en PHP y mi duda es la siguiente:
Tengo que hacer que, al borrar posts de un tema me deje borrar todos menos el ultimo del tema, he conseguido que me haga eso pero cuando solo queda un tema en el foro o cuando el resto de temas no tiene posts (cosa que quiero evitar) aqui os dejo el codigo haber si me podeis decir que he puesto mal

Código:
<?php
   $mysqli = mysqli_connect("localhost", "root",
         "", "foro_1");

  if (!$_POST)  {
       $display_block = "";
      $get_list_sql = "SELECT p.post_id,
                         CONCAT_WS(', ', t.topic_title, p.post_owner) AS display_post
                         FROM forum_posts AS p
INNER JOIN forum_topics AS t ON p.topic_id= t.topic_id ORDER BY post_id";
         $get_list_res = mysqli_query($mysqli, $get_list_sql)
                      or die(mysqli_error($mysqli));
       if (mysqli_num_rows($get_list_res) < 1) {
           $display_block .= "<p><em>No hay ningun tema, se el primero
   en crear <a href=\"addtopic.html\">un tema para postearlo</a></em></p>";
       } else if (mysqli_num_rows($get_list_res) == 1){
   echo "No se puede borrar el ultimo post de un tema";
   echo "<p>Volver a<a href=\"index_foro.html\"> Inicio</p>";
   } else {
           $display_block .= "
              <form method=\"post\" action=\"".$_SERVER["PHP_SELF"]."\">
              <p><strong>Selecciona un post para borrarlo</strong><br/>
              <select name=\"sel_id\">
              <option value=\"\">--Elige uno--</option>";
              while ($recs = mysqli_fetch_array($get_list_res)) {
                  $id = $recs['post_id'];
                $display_name = stripslashes($recs["display_post"]);
                $display_block .= "<option value=\"".$id."\">".
                $display_name."</option>";
           }

             $display_block .= "
             </select>
             <p><input type=\"submit\" name=\"submit\"
                      value=\"Borrar el post\"></p>
<p>VOLVER A <a href=\"topiclist.php\">LOS TEMAS</p>
            </form>";
       }
         mysqli_free_result($get_list_res);
} else if ($_POST) {
     //check for required fields
     if ($_POST["sel_id"] == "")  {
         header("Location: delpost.php");
         exit;
     }

      $del_master_sql = "DELETE FROM forum_posts WHERE
                       post_id = '".$_POST["sel_id"]."'";
    $del_master_res = mysqli_query($mysqli, $del_master_sql)
                      or die(mysqli_error($mysqli));

    $display_block = "<h1>POST BORRADO</h1>
    <p>¿Quieres
    <a href=\"".$_SERVER["PHP_SELF"]."\">borrar otro</a>?</p>
<p>¿Quieres volver a la <a href=\"topiclist.php\">los Temas?</p>";
 }
 ?>
 <html>
 <head>
 <title>Mis temas</title>
 </head>
 <body>
 <?php echo $display_block; ?>
 </body>
 </html>

De antemano muchas gracias