Foros del Web » Programando para Internet » PHP »

que problema tiene este codigo

Estas en el tema de que problema tiene este codigo en el foro de PHP en Foros del Web. hola quiero generar un listado que al lado contenga las opciones de modificar y eliminar y por ello tengo un php para la tabla y ...
  #1 (permalink)  
Antiguo 26/07/2011, 23:44
 
Fecha de Ingreso: julio-2010
Mensajes: 75
Antigüedad: 13 años, 9 meses
Puntos: 2
que problema tiene este codigo

hola quiero generar un listado que al lado contenga las opciones de modificar y eliminar y por ello tengo un php para la tabla y otro para el codigo (el de modificar y eliminar) si me muestra los datos pero mi problema es que cuando mando a modificar o eliminar me dice Array:Query was empty y que la variable de mi consulta esta indefinida asi que aqui le dejo el codigo ha ver si me pueden ayudar gracias de antemano

codifi de consultas.php (dibuja la tabla)

Código PHP:

<?php


$con 
mysql_connect("localhost","root","");
if (! 
$con){die ("ERROR EN LA CONEXION CON MYSQL: ".mysql_error());}

$base mysql_select_db ("bd",$con);
if(! 
$base){die ("ERROR AL CONECTAR CON LA BASE DE DATOS: ".mysql_error());}

/********************************************/

$sql "SELECT * FROM session";

$resultado mysql_query($sql);

echo 
"<html>
        <body>
        <form name='ejecuta' method='post' action='ejecuta2.php'>
            <table>
                <tr><td>Cedula</td><td>cedula</td><td>Nombre</td><td>Contraseña</td><td>Modificar</td><td>Eliminar</td></tr>"
;
$i 

while (
$row mysql_fetch_row($resultado)){
            echo 
"<tr><td><input type='hidden' name='cedula[$i]' value='".$row[0]."' />".$row[0]."</td>
                      <td><input type='text' name='cedula[$i]' value='"
.$row[0]."' /></td>
                      <td><input type='text' name='nombre[$i]' value='"
.$row[1]."' /></td>
                      <td><input type='text' name='contra[$i]' value='"
.$row[2]."'/></td>
                      <td><input type='radio' name='seleccion[$i]' value='modifica"
.$row[0]."'></td><!-- Esta lÃ*nea es para saber si se modifica -->
                      <td><input type='radio' name='seleccion[$i]' value='elimina"
.$row[0]."'></td><!-- Esta lÃ*nea es para saber si se elimina -->
                      </tr>"
;$i++; 
}
echo 
"</table><input type='submit' value='Enviar'></form></body></html>";
?>
y aqui donde estan las consultas
Código PHP:

<?php
$con 
mysql_connect("localhost","root","");
if (! 
$con){die ("ERROR EN LA CONEXION CON MYSQL: ".mysql_error());}

$base mysql_select_db ("bd",$con);

if(! 
$base){die ("ERROR AL CONECTAR CON LA BASE DE DATOS: ".mysql_error());}


foreach (
$_POST['seleccion'] as $indice => $valor){

$opcion substr ($_POST['seleccion'][$indice],0,-1); 

switch(
$opcion){


    case 
'modifica':$sql="UPDATE session SET  nick='".$_POST['nombre'][$indice]."',contra='".$_POST['contra'][$indice]."', WHERE cedula='".$_POST['cedula'][$indice]."'";break;
    case 
'elimina':$sql="DELETE FROM session WHERE cedula='".$_POST['cedula'][$indice]."'";break;
    default: echo 
"<center>NO HAY NADA SELECCIONADO</center>"; break;

}
echo 
"Variable sql: ".$sql;
$resultado mysql_query($sql);
if (! 
$resultado ){die ("ERROR AL EJECUTAR LA CONSULTA ".$_POST['seleccion'].":".mysql_error());}
else{
    echo 
"<center>FELICIDADES SENTENCIA EJECUTADA CORRECTAMENTE</center><br />
    <a href='panel.html'>Volver al panel</a>"
;
}
}

?>

Última edición por Jibril; 26/07/2011 a las 23:52
  #2 (permalink)  
Antiguo 27/07/2011, 04:05
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: que problema tiene este codigo

Buenas, creo que tu problema es la creación de los inputs, haces bien usando como name un array, pero creo que no es necesario asignarle el índice, sino que con poner name="nombre[]" el mismo PHP te asigna los índices.

Además, en estas dos líneas vas a tener un problema:
Código PHP:
<td><input type='radio' name='seleccion[$i]' value='modifica".$row[0]."'></td><!-- Esta lÃ*nea es para saber si se modifica -->
<
td><input type='radio' name='seleccion[$i]' value='elimina".$row[0]."'></td><!-- Esta lÃ*nea es para saber si se elimina --> 
Porque los dos intentarían irse a selección del mismo índice. Intenta cambiar el name, por ejemplo: modificaciones[] y borrados[] y luego hacer un tratamiento por separado.

A simple vista es lo que encuentro, si no te valen las indicaciones, intenta hacer más prints, para aclararte tú mismo qué es lo que se envía en el POST, porque con tantos bucles, la verdad no queda nada claro.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Etiquetas: html, mysql, sql, tabla, variables
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 09:56.