Foros del Web » Programando para Internet » PHP »

Combinar un listado en bucle con seleccion por chek...

Estas en el tema de Combinar un listado en bucle con seleccion por chek... en el foro de PHP en Foros del Web. comenzé nuevamente con este apartado que dejé de lado para dedicarle un mayor tiempo al diseño en css del sitio. pero la verdad que cuando ...
  #1 (permalink)  
Antiguo 06/06/2009, 13:05
 
Fecha de Ingreso: abril-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 0
Combinar un listado en bucle con seleccion por chek...

comenzé nuevamente con este apartado que dejé de lado para dedicarle un mayor tiempo al diseño en css del sitio.

pero la verdad que cuando lo quise hacer en un principio, lo postie ak y me mandaron a otro link que la verdad me dejó mas confundido jaja


lo que ando necesitando seria por ejemplo.


Nombre de usuario / IP / Mensaje / Marcar
d / d / d / Check Box
d / d / d / Check Box
d / d / d / Check Box
d / d / d / Check Box
d / d / d / Check Box
d / d / d / Check Box

Sanear Soporte

Todo en un bucle, el mismo lo hago con un while y le agrego un formulario a todo el bucle para que supuestamente cuando se envia el formulario (Sanear Soporte)
Elimine los campos en cuyo caso de que el check box value == 1 Y el recupero id sea igual a esa misma variable.

pero no hace nada...

alguien podria hacerme un ejemplo rapido por aqui?
osea un simple while con 1 dato y un check box que elimine al actualizar el formulario.

Si alguien tiene la posibilidad de hacerlo se lo agradecería mucho.
  #2 (permalink)  
Antiguo 06/06/2009, 14:09
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Combinar un listado en bucle con seleccion por chek...

debes de utilizar tus nombres de los elemento de tu form como array para poder hacer eso y poner en el value del checkbox el id del elemento a eliminar


algo asi:

Código PHP:
<form action="" method="post">
Nombre de usuario IP Mensaje / <input type="checkbox" name="borrar[]" value="1">
Nombre de usuario IP Mensaje / <input type="checkbox" name="borrar[]" value="2">
Nombre de usuario IP Mensaje / <input type="checkbox" name="borrar[]" value="3">
<
input type="submit" name="eliminar" value="eliminar">
</
form>


if(isset(
$_POST["eliminar"]))
{
    foreach(
$_POST["borrar"] as $key => $value)
    {
        if(isset(
$key))
        {
            echo 
"eliminar $value"// aqui pones tu codigo para eliminar el registro
        
}
    }

ahi esta en la misma hoja pero lo puedes separar, el value del checkbox debe de ser el id de tu elemento a eliminar.
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #3 (permalink)  
Antiguo 06/06/2009, 14:13
 
Fecha de Ingreso: abril-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 0
Respuesta: Combinar un listado en bucle con seleccion por chek...

aver...

edite lo que idje hace un rato xq ahora lei bien tu ayuda jejej

bueno aver hice el while con el array.

le puse al check value el valor del id del elemento.

despues puse el foreach que pusiste vos.
y donde pusiste el comentario, borre la linea y puse.

mysql_query ("DELETE * FROM soporte WHERE id='$value'");

y nada...

que hice mal? osea leo la logica del codigo y deberia funcionar...

Última edición por MavSettings; 06/06/2009 a las 14:30
  #4 (permalink)  
Antiguo 06/06/2009, 14:29
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Combinar un listado en bucle con seleccion por chek...

mejor muestra el codigo de tu consulta y como generas tus checkbox para que vea como introducir el id
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #5 (permalink)  
Antiguo 06/06/2009, 14:31
 
Fecha de Ingreso: abril-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 0
Respuesta: Combinar un listado en bucle con seleccion por chek...

Código PHP:
                           <?  $TicketCompleto mysql_query ("SELECT * FROM soporte ORDER BY id DESC");
while (
$TicketD mysql_fetch_array ($TicketCompleto)){ ?>
                <td><? echo "$TicketD[usuario]"?></td>
                <td><? echo "$TicketD[fecha]"?></td>
                <td><? echo "$TicketD[ip]"?></td>
                <td><? echo "$TicketD[mensaje]"?></td>
                <td><label>
                  <input type="checkbox" name="borrar[]" value="$TicketD['id']">
                </label></td>

            
    </tr>     <? ?>
  </table>
  <?
if(isset($_POST["eliminar"]))
{
    foreach(
$_POST["borrar"] as $key => $value)
    {
        if(isset(
$key))
        {
         
mysql_query ("DELETE * FROM soporte WHERE id='$value'");
        }
    }
}  
?>
<input name="EliminarSE" type="submit"  value="Actualizar"/>
  <? } else {}}?>

Última edición por MavSettings; 06/06/2009 a las 14:41
  #6 (permalink)  
Antiguo 06/06/2009, 14:35
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Combinar un listado en bucle con seleccion por chek...

para que tome el id del elemento deberia ser asi a como muestras tus otros campos:


Código PHP:
<input type="checkbox" name="borrar[]" value="<?php echo $TicketD['id']; ?>">

aahh y procura usar siempre las etiquetas de php completas (<?php)


ojo que aqui tienes value con V mayuscula

Código PHP:
mysql_query ("DELETE * FROM soporte WHERE id='$Value'"); 
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #7 (permalink)  
Antiguo 06/06/2009, 14:38
 
Fecha de Ingreso: abril-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 0
Respuesta: Combinar un listado en bucle con seleccion por chek...

no lo eliminó...


xq hay que llamar a la variable con un echo?
ahora voy a cambiar todas mis etiquetas a <?php jeje

pd: cambie la v y nada...
  #8 (permalink)  
Antiguo 06/06/2009, 14:41
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Combinar un listado en bucle con seleccion por chek...

checaste lo de value que esta asi $Value y debe ser asi $value, y lo debes de mandar a llamar con un echo por que lo del checkbox es codigo html y como quieres que tome el valor de la variable pues es de php
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #9 (permalink)  
Antiguo 06/06/2009, 14:44
 
Fecha de Ingreso: abril-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 0
Respuesta: Combinar un listado en bucle con seleccion por chek...

sisi la cambie y nada... la verdad me parece raro que ni siquiera me tire errores de sintaxis...

al echo le pongo las comillas sobre el contenido?

hice con comillas y sin comillas y nada...
  #10 (permalink)  
Antiguo 06/06/2009, 14:46
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
oye y si sacas la el foreach del form, o sea dejas el form y despues que lo cierres pon lo del if y el foreach, checalo y manda el codigo de como lo dejas

ademas el nombre de tu submit es asi:

EliminarSE

y en el if evaluas asi:

$_POST["eliminar"]
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.

Última edición por GatorV; 06/06/2009 a las 19:54
  #11 (permalink)  
Antiguo 06/06/2009, 14:49
 
Fecha de Ingreso: abril-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 0
Respuesta: Combinar un listado en bucle con seleccion por chek...

Código PHP:
                           <?  $TicketCompleto mysql_query ("SELECT * FROM soporte ORDER BY id DESC");
while (
$TicketD mysql_fetch_array ($TicketCompleto)){ ?>
                <td><? echo "$TicketD[usuario]"?></td>
                <td><? echo "$TicketD[fecha]"?></td>
                <<td><? echo "$TicketD[ip]"?></td>
                <td><? echo "$TicketD[mensaje]"?></td>
                <td><input type="checkbox" name="borrar[]" value="<?php echo "$TicketD[id]"?>"></td>

            
    </tr>     <? ?>
  </table>
<input name="Sanear" type="submit" value="Sanear Soporte"/>
  <?
if(isset($_POST["eliminar"]))
{
    foreach(
$_POST["borrar"] as $key => $value)
    {
        if(isset(
$key))
        {
         
mysql_query ("DELETE * FROM soporte WHERE id='$value'"); 
        }
    }
}  
?>
  <? } else {}}?>
asi decis??
nop no funciona...

nose que sera...
ya comienzo a pensar que debe ser una bldes tan grande que no se nota a simple vista jajaja (igau l ese es todo el codigo no hay otro trozo involucrado)
  #12 (permalink)  
Antiguo 06/06/2009, 14:57
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Combinar un listado en bucle con seleccion por chek...

no veo la conexion de la base de datos
//no tienes las etiquetas del form
//tu submit se llama Sanear y en el if que lo ealuas lo haces con eliminar
Código PHP:
<form action="" method="post">
<?  $TicketCompleto mysql_query ("SELECT * FROM soporte ORDER BY id DESC");
while (
$TicketD mysql_fetch_array ($TicketCompleto)){ ?>
                <td><? echo "$TicketD[usuario]"?></td>
                <td><? echo "$TicketD[fecha]"?></td>
                <td><? echo "$TicketD[ip]"?></td>
                <td><? echo "$TicketD[mensaje]"?></td>
                <td><input type="checkbox" name="borrar[]" value="<?php echo "$TicketD[id]"?>"></td>

            
    </tr>     <? ?>
  </table>
<input name="Sanear" type="submit" value="Sanear Soporte"/>
</form>//no tienes el cierre del form
  <?
if(isset($_POST["eliminar"]))//la variable post se deberia llamar como tu submit del formulario
{
    foreach(
$_POST["borrar"] as $key => $value)
    {
        if(isset(
$key))
        {
         
mysql_query ("DELETE * FROM soporte WHERE id='$value'"); 
        }
    }
}  
?>
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #13 (permalink)  
Antiguo 06/06/2009, 14:59
 
Fecha de Ingreso: abril-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 0
Respuesta: Combinar un listado en bucle con seleccion por chek...

base de datos sobree un header mas arriba :)

sanear lo puse como lo que dice el boton...
el form creo que lo corte jeje pero ahi esta


si lo del boton me confundi ^^

pero igual no funciona... ya cambie todo como dijiste...

es como que nunca anda mal y nunca anda bien xd
  #14 (permalink)  
Antiguo 06/06/2009, 15:00
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Combinar un listado en bucle con seleccion por chek...

no en este if:

if(isset($_POST["eliminar"]))//la variable post se deberia llamar como tu submit del formulario, o sea si en tu form se llama sanear esta variable post debe ser sanear por que es ese elemento
{
foreach($_POST["borrar"] as $key => $value)
{
if(isset($key))
{
mysql_query ("DELETE * FROM soporte WHERE id='$value'");
}
}
}
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #15 (permalink)  
Antiguo 06/06/2009, 15:03
 
Fecha de Ingreso: abril-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 0
Respuesta: Combinar un listado en bucle con seleccion por chek...

claro.

eso lo cambie.
le puse name=eliminar
al boton de submit y nada...
  #16 (permalink)  
Antiguo 06/06/2009, 15:05
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Combinar un listado en bucle con seleccion por chek...

a ver como queda tu codigo, y ok entons en el donde esta el delete quitalo y pon nada mas un echo del $value para ver si esta mandando los datos que seleccionas
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #17 (permalink)  
Antiguo 06/06/2009, 15:09
 
Fecha de Ingreso: abril-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 0
Respuesta: Combinar un listado en bucle con seleccion por chek...

Código PHP:
              <form action="administracion.php" method="post">
                           <?  $TicketCompleto mysql_query ("SELECT * FROM soporte ORDER BY id DESC");
while (
$TicketD mysql_fetch_array ($TicketCompleto)){ ?>
                <td><? echo "$TicketD[usuario]"?></td>
                <td><? echo "$TicketD[fecha]"?></td>
                <td><? echo "$TicketD[ip]"?></td>
                <td><? echo "$TicketD[mensaje]"?></td>
                <td><input type="checkbox" name="borrar[]" value="<?php echo "$TicketD[id]"?>"></td>

            
    </tr>     <? ?>
  </table>
    <?
if(isset($_POST["eliminar"]))
{
    foreach(
$_POST["borrar"] as $key => $value)
    {
        if(isset(
$key))
        {
            echo 
"$value";
         
// mysql_query ("DELETE * FROM soporte WHERE id='$value'"); 
        
}
    }
}  
?>
<input name="eliminar" type="submit"  value="Sanear Soporte"/>
  <? } else {}}?>
y me devuelve los ids correspondientes...

por ejemplo si marco 1 aparece id 39
si marco 2 aparece el segundo id seguido osea 3940

que esten pegados influye en algo?
igual de a uno o 2 n oborra...
  #18 (permalink)  
Antiguo 06/06/2009, 15:09
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Combinar un listado en bucle con seleccion por chek...

ademas tu instruccion de eliminacio esta mal deberia ser asi:

Código PHP:
mysql_query("DELETE FROM soporte WHERE id=$value") or die ("el error es: ".mysql_error()); 
agregale el or die para ver que error te puede dar la eliminacion y si el id es numero quitale las comillas simples
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #19 (permalink)  
Antiguo 06/06/2009, 15:13
 
Fecha de Ingreso: abril-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 0
Respuesta: Combinar un listado en bucle con seleccion por chek...

eran las comillas simples ^^

che que esto no se corte jaja como hago para contactarte de forma mas fluida?

pd: es conveniente agregar un refresh al sitio al eliminar cierto?


PD: como hago para que cuando no haya registros, no pueda enviar el formulario,

xq si no hay registros o el registro fue eliminado, me tira el error de que no se puede hacer el foreach

Última edición por MavSettings; 06/06/2009 a las 15:20
  #20 (permalink)  
Antiguo 06/06/2009, 15:17
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Combinar un listado en bucle con seleccion por chek...

Cita:
Iniciado por MavSettings Ver Mensaje
eran las comillas simples ^^
ya elimina???

Cita:
Iniciado por MavSettings Ver Mensaje
Warning: Invalid argument supplied for foreach() in C:\xampp\HTDOCS\Administracion.php on line 51
umm haber como quedo el codigo ahora, si te marca bien los id no deberia de haber problema,
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #21 (permalink)  
Antiguo 06/06/2009, 15:27
 
Fecha de Ingreso: abril-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 0
Respuesta: Combinar un listado en bucle con seleccion por chek...

sisi ahora elimina.

el tema del error supongo que me lo marca xq al no existir registros, es imposible hacer un foreach

seria lo mismo que tratar de hacer un num_rows con una columna alterada.

ahora voy a ver si al hacer que si no hay registros ponga "no posee registros"
deja de tirar el error

esperame un minuto
  #22 (permalink)  
Antiguo 06/06/2009, 15:30
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Combinar un listado en bucle con seleccion por chek...

ok entons ya kedo que bueno, pos evalua con un count si existe valores en el array borrar y si existe has el foreach y si no pos que haga lo que tu quieras
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #23 (permalink)  
Antiguo 06/06/2009, 15:37
 
Fecha de Ingreso: abril-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 0
Respuesta: Combinar un listado en bucle con seleccion por chek...

claro.

va yo hice un num_arrows y que si es 0 muestre que no hay tickets.
y si hay bueno hace todo
y de paso tmb que haga lo mismo para que deshabilite el boton de envio ^^

como seria hacer un COUNT
  #24 (permalink)  
Antiguo 06/06/2009, 15:44
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Combinar un listado en bucle con seleccion por chek...

ok pues si ya deshabilitas el submit ya no hay problema por que el foreach se hace si el submit fue enviado
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #25 (permalink)  
Antiguo 06/06/2009, 15:46
 
Fecha de Ingreso: abril-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 0
Respuesta: Combinar un listado en bucle con seleccion por chek...

si.

pero bueno queda mas completo si cuando no hay nada diga que no hay nada ^^

hay alguna forma de poderme comunicar con vos fuera del foro asi tipo msn?
  #26 (permalink)  
Antiguo 06/06/2009, 15:54
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Combinar un listado en bucle con seleccion por chek...

a tu query hazle un mysql num rows asi:

Código PHP:
$n_registros=mysql_num_rows($TicketCompleto);

if(
$n_registros>0)
{
//aqui todo el codigo del form y de la eliminacion
}
else
{
echo 
"no hay registros para eliminar";

__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #27 (permalink)  
Antiguo 06/06/2009, 15:59
 
Fecha de Ingreso: abril-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 0
Respuesta: Combinar un listado en bucle con seleccion por chek...

claro yo hice asi.

solo que en ves de utilizar la variable $TicketCompleto use una nueva como $Checkear
y si ea era menor a 1 que pusiera "no hay mensajes" y si es mayor muestra todo.

osea a eso te referis vos?

tenes msn ? ^^
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:46.