Autor Tema: [PROBLEMA] No sale como yo quería.  (Leído 501 veces)

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
[PROBLEMA] No sale como yo quería.
« en: 20 de Abril de 2010, 14:19:39 pm »

Un día aquí aburrido en el pueblo, me puse a pensar en hacer un script sencillito pero al final
resulta que no lo es tanto. He pensado en hacer un formulario con varias ID's que al seleccionarlas,
se borren. Este sería el ejemplo :

<?php
include("conectar.php");
$query mysql_query("select * from mensajes order by id asc");
if(
mysql_num_rows($query)==0){ echo &#39;No hay registros&#39;; } else { 
?>
<form name="form1" method="post" action="">
<?php while($b mysql_fetch_array($query)){ ?>
  <table width="542" border="0" cellpadding="0" cellspacing="0">
    <tr>
      <td width="20"><label>
      <input type="checkbox" name="<?=$b[&#39;id&#39;]?>"/>
      </label></td>
      <td width="522"> <span class="Estilo1">ID : </span>        <?=$b[&#39;nick&#39;]?></td>
    </tr>
  </table>
<?php ?>  
<label>
<input type="submit" name="Submit" value="Enviar">
</label>
</form>
<?php ?>
<? 
if(isset($_POST[&#39;Submit&#39;])){
$ultimaid mysql_fetch_array(mysql_query("SELECT * FROM mensajes ORDER BY id DESC LIMIT 1")); 
for(
$i 1;$i <= $ultimaid[&#39;id&#39;];$i++){
if($_POST[$i] != "on"){ echo &#39;&#39;.$i.&#39; está vacía&#39;; } else { mysql_query("DELETE FROM mensajes WHERE id = &#39;".$i."&#39;"); }
}}
?>


Al parecer, yo no veo ningún error, pero ¿Que pasa?. Resulta que el codigo funciona de maravilla
pero a la segunda, es decir, yo eligo una ID y le doy a Enviar, el resultado, no se elimina pero si
lo vuelvo a marcar y dar a enviar, el resultado, es que si se borra.

He probado de millones de formas y no he encontrado la solución para hacerlo que se borre desde
la primera vez y no la segunda. he estado pensando que podría ser un foreach(), pero
realmente como nunca lo he usado no se como aplicarlo. ¿Me ayudas?. Gracias  :P

#Fdo. Physlet

Comunidad PHPeros

[PROBLEMA] No sale como yo quería.
« en: 20 de Abril de 2010, 14:19:39 pm »

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[PROBLEMA] No sale como yo quería.
« Respuesta #1 en: 20 de Abril de 2010, 14:26:30 pm »
Usa un explode y un for ;)
Si no entiendes como, dime xD
- Moderador de PHP


Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[PROBLEMA] No sale como yo quería.
« Respuesta #2 en: 20 de Abril de 2010, 14:35:26 pm »

Se como aplicar un explode, pero ahora no se a que te refieres. ¿un explode dentro del for?

#Fdo. Physlet

Desconectado marco811

  • PHPero Avanzado
  • ****
  • Mensajes: 306
  • Karma: 16
  • Sexo: Masculino
  • ¡¡Hola mundo!!
    • Ver Perfil
    • Personalidad Web
Re:[PROBLEMA] No sale como yo quería.
« Respuesta #3 en: 20 de Abril de 2010, 15:35:56 pm »
Creo que se cual es el problema, se te ha olvidado poner el atributo value="on" en el checkbox.
Un saludo!

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[PROBLEMA] No sale como yo quería.
« Respuesta #4 en: 20 de Abril de 2010, 15:39:53 pm »
Creo que se cual es el problema, se te ha olvidado poner el atributo value="on" en el checkbox.
Un saludo!


En eso mismo pensé yo, pero si te das cuanta, al darle el valor cheked, esta actuando como todas
las casillas marcadas y al dar el boton enviar se borrarian todos los registros.

#Fdo. Physlet

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[PROBLEMA] No sale como yo quería.
« Respuesta #5 en: 20 de Abril de 2010, 15:47:51 pm »
Decidete, o usas las ID al mosrtrar y comprobar, o usas un for... porque estás mezclando, y al momento de borrar 1 alteras el resto, que confunde con otra...

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[PROBLEMA] No sale como yo quería.
« Respuesta #6 en: 21 de Abril de 2010, 15:35:55 pm »
Haber, he tratado de hacer esto trabajando con 1 solo for() sin while() y nada más. A priori, parece
que todo está bien pero no funciona. Yo ya no se que hacer :confused: :

<?php
include("conectar.php");
$query mysql_query("select * from mensajes order by id asc");
if(
mysql_num_rows($query)==0){ echo &#39;No hay registros&#39;; } else { 
$ultimaid mysql_fetch_array(mysql_query("SELECT * FROM mensajes ORDER BY id DESC LIMIT 1"));
?>
<form name="form1" method="post" action="">
<?php for($c =1;$c <= $ultimaid[&#39;id&#39;];$c++){ ?>
  <table width="542" border="0" cellpadding="0" cellspacing="0">
    <tr>
      <td width="20"><label>
      <input name="<?=$c?>" type="checkbox" />
      </label></td>
      <td width="522"> <span class="Estilo1">ID : </span>        <?=$c?></td>
    </tr>
  </table>
<?php }?><input type="submit" name="ok" value="Enviar">
<?php
if($_POST[&#39;ok&#39;]){
for($i 1$i <= $ultimaid[&#39;id&#39;]; $i ++){
if($_POST[$i] != ""){ mysql_query("DELETE FROM mensaje WHERE id = ".$_POST[$i]."");} else { }
}}
?>
<?php 
?>  
<label>
</label>
</form>

#Fdo. Physlet

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[PROBLEMA] No sale como yo quería.
« Respuesta #7 en: 21 de Abril de 2010, 16:36:41 pm »
Edito: Aquí como hacerlo
Código: [Seleccionar]
<?php
$mensajes 
mysql_query("SELECT * FROM mensajes WHERE para=".$_SESSION[&#39;id&#39;]); // Cojemos los mensajes del usuario atras de la id
while ($mensaje mysql_fetch_assoc($mensajes)) // Hacemos un while
{
 if ($_POST[&#39;del_&#39;.$mensaje[&#39;id&#39;]]) // Verificamos lo que posteó
{
mysql_query("DELETE FROM mensajes WHERE id = &#39;".$_POST[&#39;del_&#39;.$mensaje[&#39;id&#39;]]."&#39;");
}
?>

    <tr>
    <td width="27" bgcolor="#FFFFFF" height="20">
      <input type="checkbox" name="del_<?php echo $mensaje[&#39;id&#39;]; ?>" value="<?php echo $mensaje[&#39;id&#39;]; ?>">
    </td>
    <td width="355" bgcolor="#FFFFFF" height="20">
    <p align="center"><a style="color:#000000; text-decoration: none" href="?p=mensajes&a=entrada&eliminar=<?php echo $mensaje[&#39;id&#39;]; ?>"><?php echo $mensaje[&#39;titulo&#39;]; ?></a></td>
    <td width="181" bgcolor="#FFFFFF" height="20"><?php echo $usuario_envio?></td>
  </tr>
<?php
}
?>

« Última modificación: 21 de Abril de 2010, 17:01:28 pm por javipilo »

Desconectado snapex

  • PHPerit@
  • *
  • Mensajes: 9
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[PROBLEMA] No sale como yo quería.
« Respuesta #8 en: 21 de Abril de 2010, 17:12:32 pm »
es parecido, po no es lo que necesito, gracias, necesito hacerlo con foreach.

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[PROBLEMA] No sale como yo quería.
« Respuesta #9 en: 21 de Abril de 2010, 19:16:42 pm »
Dará igual a no ser que busques hacer otra cosa.

Saludos  ;)