Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/06/2014, 00:17
darkcl0wn
 
Fecha de Ingreso: febrero-2014
Mensajes: 32
Antigüedad: 10 años, 3 meses
Puntos: 0
Enviar formulario desde un bucle while

Hola a todos, primero quiero decir que no hace mucho que estoy en php, cerca de un mes y tengo muchas dudas. Con el conocimiento que poseo mas o menos me manejo, pero hay cosas que no puedo resolver y antes de postear siempre aquí busco y leo, no encontré nada al respecto que me sirva así que les pido su ayuda.

Bueno empezamos, ¿Qué quiero hacer? Bueno, tengo un sistema de comentarios a noticias donde quiero botones donde calificar a los comentarios con puntos, al estilo "Me gusta/No megusta", pero no logro hacer que el sistema de puntuación funcione. Vamos al código.

Bien, esta primera parte es la que muestra la noticia, perdón por el desorden de el código, yo se que se podría optimizar y hacer de otras formas que desconozco, pero recién empiezo y me podría autocalificar de mal programador, por ahora.

Código PHP:
Ver original
  1. <?
  2. include('acceso_db.php');
  3. if(isset($_GET['noticias']))
  4. {
  5.     if(!empty($_GET['noticias']))  
  6.     {      
  7.         $id_noticia = (int) mysql_real_escape_string($_GET['noticias']);
  8.         $query = "SELECT * FROM noticias2 WHERE id = '".$id_noticia."' ";
  9.         $asd  = mysql_query($query, $cn);
  10. $asd1 = mysql_fetch_array($asd);
  11. ?>
  12.  
  13.             <table style="table-layout: fixed; width: 100%; border: 1px solid rgb(204, 204, 204);" cellpadding="3" cellspacing="0" border="0">
  14.  
  15.                 <tbody>
  16.                     <tr class="txt_1 odd">
  17.                         <td style="padding:15px 25px 3px 15px;" align="center"><h4><?=$asd1['titulo']?></h4>&nbsp;</td>
  18.                     </tr>
  19.                     <tr class="txt_1 even">
  20.                         <?
  21.                         $descri = $asd1['texto'];
  22.                         ?>
  23.                        <td style="word-wrap: break-word; padding:10px 15px 35px 15px;"><? echo $descri; ?></td>
  24.                     </tr>
  25.                <tr class="txt_1 odd">
  26.                <td style="padding:15px 25px 3px 15px;" align="center">Enviado por <b><?=$asd1['autor']?></b>&nbsp;</td>
  27.                 </tr>
  28.                 </tbody>
  29.             </table>
  30. <p style="margin-top:10px;">
  31. <?
  32.     }
  33. }
  34. ?>

Bueno, esta otra parte es la que muestra los comentarios dentro de la tabla, "Comentariosn" Cuya estructura es así

Código SQL:
Ver original
  1. SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
  2. SET time_zone = "+00:00";
  3.  
  4. CREATE TABLE `comentariosn` (
  5.   `id` INT(11) NOT NULL AUTO_INCREMENT,
  6.   `id_noticia` INT(10) NOT NULL,
  7.   `autor` VARCHAR(100) NOT NULL,
  8.   `fecha` datetime NOT NULL,
  9.   `comment` text NOT NULL,
  10.   `titulo` VARCHAR(20) NOT NULL,
  11.   `puntost` VARCHAR(50) NOT NULL DEFAULT '0',
  12.   `puntosn` VARCHAR(20) NOT NULL DEFAULT '0',
  13.   `puntosp` VARCHAR(20) NOT NULL DEFAULT '0',
  14.   `ip` VARCHAR(100) NOT NULL,
  15.   PRIMARY KEY (`id`)
  16. ) ENGINE=InnoDB  DEFAULT CHARSET=latin1;



Código PHP:
Ver original
  1. <?
  2.                $usuario = $_SESSION['usuario_nombre'];
  3.         $id_noticia = (int) mysql_real_escape_string($_GET['noticias']);
  4.         $consulta1 = "SELECT * FROM comentariosn WHERE id_noticia = '".$id_noticia."' ORDER BY id DESC limit 15";
  5.         $asdefds  = mysql_query($consulta1, $cn);
  6. while($mostachoca = mysql_fetch_array($asdefds))
  7. {
  8. ?>
  9.          
  10.             <table style="table-layout: fixed; width: 100%; border: 1px solid rgb(204, 204, 204);" cellpadding="3" cellspacing="0" border="0">
  11.  
  12.                 <tbody>
  13.                     <tr class="txt_1 odd">
  14.                         <td style="padding:15px 25px 3px 15px;" align="left">#<?=$mostachoca['id']?>&nbsp;por&nbsp;<b><?=strip_tags($mostachoca['autor'])?>&nbsp;</b>&nbsp;<br><?=$mostachoca['fecha']?></td>
  15.                     </tr>
  16.                     <tr class="txt_1 even">
  17.                         <td style="word-wrap: break-word; padding:10px 15px 35px 15px;" align="left"><?=strip_tags($mostachoca['comment'],'<strong>,<h1>,<p>,<em>,<span>,<sup>,<sub>,<h2>,<h3>,<h4>,<h5>,<h6>,<style>')?></td>
  18.                     </tr>
  19.                 <tr class="txt_1 odd">
  20.                <td style="padding:15px 25px 3px 15px;" align="left"> <form action="votar.php" method="post">
  21.                <input id="idq" name="idq" type="hidden" value="<?=$mostachoca['id']?>"/> <input name="submitp" id="submitp" type="image" src="+.png" border="0">( )&nbsp;<input name="submitn" type="image" src="-.png" border="0">( )
  22.                </form></td>
  23.                 </tbody>
  24.             </table>
  25. <?
  26. }
  27. ?>
  28.  
  29. <div style="text-align:center">
  30.            <h3>Nuevo comentario</h3>
  31.            <form action="" method="post">
  32.             <textarea name="comentario" id="comentario" style="height:200px;width:450px;margin-top:10px;"> </textarea>
  33.             <p style="margin-top:20px;">
  34.             <input type="submit" class="css3button" value="Publicar" name="enviarcomentario" id="enviarcomentario">
  35.             </form>
  36.             </div>

También tengo un formulario donde se envían nuevos comentarios. Si se observa el código se pueden ver dos botones con el name submitp y submitn que son los que quiero que se envíen a mi archivo php llamado votar.php, cuyo código es el siguiente.

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST['submitp'])) {
  3. $ideq = $_POST['idq'];
  4. $masunpunto = "UPDATE comentariosn SET puntosp = puntosp+'1' WHERE id = '".$idq."'";
  5. mysql_query($masunpunto,$cn);  
  6. }
  7. if(isset($_POST['submitn'])){
  8.     $menosunpunto = "UPDATE comentariosn SET puntosn = puntosn+1 WHERE id = '".$mostachoca['id']."'";
  9. mysql_query($menosunpunto,$cn);
  10. }
  11. ?>

La verdad, no se si lo que hago esta bien o no, lo que se de php es en base algunos tutos y experimentar como lo hago ahora. Gracias de antemano por corregirme y enseñarme. Saludos.