Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problema con asociación de id (PHP)

Estas en el tema de problema con asociación de id (PHP) en el foro de PHP en Foros del Web. Buenos días a todos. Estaría agradecida que puedieran ayudarme con este código he probado de todo lo que sé (más bien poco dado que estoy ...
  #1 (permalink)  
Antiguo 14/07/2013, 04:32
Avatar de Thelightandthenight  
Fecha de Ingreso: julio-2010
Ubicación: RC (Italia)
Mensajes: 12
Antigüedad: 13 años, 9 meses
Puntos: 0
problema con asociación de id (PHP)

Buenos días a todos. Estaría agradecida que puedieran ayudarme con este código he probado de todo lo que sé (más bien poco dado que estoy aprendiendo php por mi cuenta) y no consigo solucionar este problema con mi código.
Lo que me da más rabia es que es copiado de un tutorial para aprender y por más vueltas qye le doy no lo consigo.
Uso un server local, por lo cual al intentar verlo en .html, el php no se leía y cambiandoa .php, me da estos errores que no consigo solucionar.
Gracias de antemano y aquí os dejo los datos (si necesitan algo más solo pedirlo):

Código PHP:
<html><head><title>::Menú para insertar datos::</title></head>
<body>
<h2>-->SELECCIONA DANDO CLICK LO QUE DESEAS HACER<--</h2>
<ul>
<li><a href='insertar.php?id=1'>INSERTAR CAJEROS</a></li>
<li><a href='insertar.php?id=2'>INSERTAR PRODUCTOS</a></li>
</ul>
</body>
</html>

<?php
echo "<html>
        <head><title>::FORMULARIOS PARA INSERTAR::</title></head>
<body>"
;

/*verifica que se selecciono*/

if($_GET["id"]==1){
 
               echo 
"<h2>CAPTURA LOS DATOS DEL NUEVO CAJERO</h2>
               <form name='inserta' method='post' action='$PHP_SELF'>
               <strong>Nombre:</strong><input type='text' name='nombre'><br />
               <strong>Pass:</strong><input type='text' name='pass' maxlength='5'><br />
               <strong>Permisos:</strong>
               <select name='permisos'>
                   <option value='1'>Solo ventas</option>
                   <option value='2'>Reportes y ventas</option>
               </select>
               <input type='submit' name='boton' value='Alta_Cajero'>
               </form>"
;
            
}
//fin del if get
               
    
else{//inserta productos
    //muestra el formulario para el producto
    
echo "<h2>CAPTURA DATOS PARA LOS DATOS DEL NUEVO PRODUCTO</h2>
    <form name='inserta' method='post' action='$PHP_SELF'>
    <strong>Nombre:</strong><input type='text' name='nombre'><br />
    <strong>Codigo:</strong><input type='text' name='codigo' maxlength='10'><br />
    <strong>Tipo:</strong>(Musica, Pelicula)<input type='text' name='tipo'><br />
    <strong>Genero:</strong><input type='text' name='genero'><br />
    <strong>Precio por unidad($):</strong><input type='text' name='precio'><br />
    <strong>Existencia:</strong><input type='text' name='existencia'><br />
    <input type='submit' name='boton' value='Alta_Producto'>
    </form>"
;

}
//fin del else get

//si le dio clic al boton de alta cajero o producto
//entra aqui
if(isset($_POST['boton'])){
     
/****************************************cargamos funciones mysql***********************************************/
     
include ("tutorial/funciones_mysql.php");
     
conectar();
     
/***********************************/
     
     
     //depende de cual se selecciono es la
     //sentencia sql a usar
     
if($_POST['boton']=='Alta_Producto'){
     
$sql="INSERT INTO productos (idproductos,nombre,codigo,tipo,genero,precio,existencia)
     VALUES (null,'$_POST[nombre]','$_POST[codigo]','$_POST[tipo]','$_POST[genero]',$_POST[precio],$_POST[existencia])"
;
     
$result mysql_query($sql)
     or die(
"error al ejecutar consulta productos:".mysql_error());
     
     echo
"<strong><center>DATOS INSERTADOS CORRECTAMENTE<a href='inserta_panel.html'>volver al menu, da click aqui</a></center></strong>";
}
//fin if alta_producto

//si no fue alta producto entonces es
//alta cajero

else{
$sql "INSERT INTO cajeros (idcajeros,nombre,pass,permisos) VALUES (null,'$_POST[nombre]','$_POST[pass]',$_POST[permisos])";

 
$result mysql_query ($sql)
or die(
"ERROR AL EJECUTAR CONSULTA PRODUCTOS:" .mysql_error());

echo
"<strong><center>DATOS INSERTADOS CORRECTAMENTE<a href='inserta_panel.html'>volver al menu, da click aqui</a></center></strong>";
  }
//fin alta cajero
  
}//fin boton submit
  
  
echo"</html>";
  
?>
P.D: ya he intentado cambiar el if($_GET... por if(isset($_GET

Los notice son estos:

Notice: Undefined index: id in D:\wamp\www\inserta panel.php on line 18

Notice: Undefined variable: PHP_SELF in D:\wamp\www\inserta panel.php on line 45
  #2 (permalink)  
Antiguo 14/07/2013, 08:14
Avatar de davemtc  
Fecha de Ingreso: mayo-2011
Ubicación: Valencia
Mensajes: 20
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: problema con asociación de id (PHP)

Cambia $PHP_SELF por $_SERVER['PHP_SELF'] y cambia if($_GET["id"]==1) por if(isset($_GET["id"]) && $_GET["id"]==1).

Así no debería tirarte ningún error.
  #3 (permalink)  
Antiguo 14/07/2013, 11:02
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: problema con asociación de id (PHP)

Cita:
Iniciado por Thelightandthenight Ver Mensaje
Buenos días a todos. Estaría agradecida que puedieran ayudarme con este código he probado de todo lo que sé (más bien poco dado que estoy aprendiendo php por mi cuenta) y no consigo solucionar este problema con mi código.
Lo que me da más rabia es que es copiado de un tutorial para aprender y por más vueltas qye le doy no lo consigo.
Uso un server local, por lo cual al intentar verlo en .html, el php no se leía y cambiandoa .php, me da estos errores que no consigo solucionar.
Gracias de antemano y aquí os dejo los datos (si necesitan algo más solo pedirlo):

Código PHP:
<html><head><title>::Menú para insertar datos::</title></head>
<body>
<h2>-->SELECCIONA DANDO CLICK LO QUE DESEAS HACER<--</h2>
<ul>
<li><a href='insertar.php?id=1'>INSERTAR CAJEROS</a></li>
<li><a href='insertar.php?id=2'>INSERTAR PRODUCTOS</a></li>
</ul>
</body>
</html>

<?php
echo "<html>
        <head><title>::FORMULARIOS PARA INSERTAR::</title></head>
<body>"
;

/*verifica que se selecciono*/

if($_GET["id"]==1){
 
               echo 
"<h2>CAPTURA LOS DATOS DEL NUEVO CAJERO</h2>
               <form name='inserta' method='post' action='$PHP_SELF'>
               <strong>Nombre:</strong><input type='text' name='nombre'><br />
               <strong>Pass:</strong><input type='text' name='pass' maxlength='5'><br />
               <strong>Permisos:</strong>
               <select name='permisos'>
                   <option value='1'>Solo ventas</option>
                   <option value='2'>Reportes y ventas</option>
               </select>
               <input type='submit' name='boton' value='Alta_Cajero'>
               </form>"
;
            
}
//fin del if get
               
    
else{//inserta productos
    //muestra el formulario para el producto
    
echo "<h2>CAPTURA DATOS PARA LOS DATOS DEL NUEVO PRODUCTO</h2>
    <form name='inserta' method='post' action='$PHP_SELF'>
    <strong>Nombre:</strong><input type='text' name='nombre'><br />
    <strong>Codigo:</strong><input type='text' name='codigo' maxlength='10'><br />
    <strong>Tipo:</strong>(Musica, Pelicula)<input type='text' name='tipo'><br />
    <strong>Genero:</strong><input type='text' name='genero'><br />
    <strong>Precio por unidad($):</strong><input type='text' name='precio'><br />
    <strong>Existencia:</strong><input type='text' name='existencia'><br />
    <input type='submit' name='boton' value='Alta_Producto'>
    </form>"
;

}
//fin del else get

//si le dio clic al boton de alta cajero o producto
//entra aqui
if(isset($_POST['boton'])){
     
/****************************************cargamos funciones mysql***********************************************/
     
include ("tutorial/funciones_mysql.php");
     
conectar();
     
/***********************************/
     
     
     //depende de cual se selecciono es la
     //sentencia sql a usar
     
if($_POST['boton']=='Alta_Producto'){
     
$sql="INSERT INTO productos (idproductos,nombre,codigo,tipo,genero,precio,existencia)
     VALUES (null,'$_POST[nombre]','$_POST[codigo]','$_POST[tipo]','$_POST[genero]',$_POST[precio],$_POST[existencia])"
;
     
$result mysql_query($sql)
     or die(
"error al ejecutar consulta productos:".mysql_error());
     
     echo
"<strong><center>DATOS INSERTADOS CORRECTAMENTE<a href='inserta_panel.html'>volver al menu, da click aqui</a></center></strong>";
}
//fin if alta_producto

//si no fue alta producto entonces es
//alta cajero

else{
$sql "INSERT INTO cajeros (idcajeros,nombre,pass,permisos) VALUES (null,'$_POST[nombre]','$_POST[pass]',$_POST[permisos])";

 
$result mysql_query ($sql)
or die(
"ERROR AL EJECUTAR CONSULTA PRODUCTOS:" .mysql_error());

echo
"<strong><center>DATOS INSERTADOS CORRECTAMENTE<a href='inserta_panel.html'>volver al menu, da click aqui</a></center></strong>";
  }
//fin alta cajero
  
}//fin boton submit
  
  
echo"</html>";
  
?>
P.D: ya he intentado cambiar el if($_GET... por if(isset($_GET

Los notice son estos:

Notice: Undefined index: id in D:\wamp\www\inserta panel.php on line 18

Notice: Undefined variable: PHP_SELF in D:\wamp\www\inserta panel.php on line 45
entiendo tu código y veo errores en html pero di qué errores te devuelve para poder trabajar sobre ellos, sino es como dar palos de ciego.

saludos
  #4 (permalink)  
Antiguo 14/07/2013, 11:18
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: problema con asociación de id (PHP)

Cita:
Iniciado por guardarmicorreo Ver Mensaje
entiendo tu código y veo errores en html pero di qué errores te devuelve para poder trabajar sobre ellos, sino es como dar palos de ciego.

saludos
Pues ella lo agrega en el mismo post que citaste (davemtc le dio la solución).

Aunque personalmente en lugar de

Código PHP:
Ver original
  1. if( isset($_GET["id"]) && $_GET["id"] == 1 )
Preferiría colocarlo así:

Código PHP:
Ver original
  1. if( isset($_GET["id"]) ) {
  2.     if($_GET["id"] == 1) {
  3.         ...
porque de esta forma se me haría más fácil manejar los else o elseif si el caso lo amerita.
  #5 (permalink)  
Antiguo 16/07/2013, 09:02
Avatar de Thelightandthenight  
Fecha de Ingreso: julio-2010
Ubicación: RC (Italia)
Mensajes: 12
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: problema con asociación de id (PHP)

Intenté hacer lo que me aconsejó davemtc, y me tira un nuevo error. Me es más fácil hacer un registro de usuarios que este tutorial xD.

Error:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\wamp\www\tutorial\inserta panel.php on line 30

Ha para que no busquéis la linea de error es esta:

<form name='inserta' method='post' action='$_SERVER['PHP_SELF']'>


puede ser que haya escrito algo mal en los archivos a la conexión a la base de datos o algo así?

(P.D: siento al demora, pero el dreamweaver me daba problemas con la conexión al server local)

Gracias por intentar ayudarme con lo negada que soy
  #6 (permalink)  
Antiguo 16/07/2013, 10:25
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: problema con asociación de id (PHP)

Prueba así:
Código PHP:
Ver original
  1. <form name="inserta" method="post" action="'. $_SERVER['PHP_SELF'] .'">
  #7 (permalink)  
Antiguo 16/07/2013, 10:34
Avatar de Thelightandthenight  
Fecha de Ingreso: julio-2010
Ubicación: RC (Italia)
Mensajes: 12
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: problema con asociación de id (PHP)

Nada sigue dando el mismo error en la misma linea
Gracias igualmente
  #8 (permalink)  
Antiguo 16/07/2013, 11:41
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: problema con asociación de id (PHP)

¿así también te da el mismo error?

Código PHP:
Ver original
  1. <form name="inserta" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  #9 (permalink)  
Antiguo 16/07/2013, 13:17
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: problema con asociación de id (PHP)

Cita:
Iniciado por Thelightandthenight Ver Mensaje
Nada sigue dando el mismo error en la misma linea
Gracias igualmente
Entonces prueba invirtiendo las comillas en esa misma línea que te di: las simples conviértelas en dobles y viceversa.
  #10 (permalink)  
Antiguo 16/07/2013, 14:59
Avatar de Thelightandthenight  
Fecha de Ingreso: julio-2010
Ubicación: RC (Italia)
Mensajes: 12
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: problema con asociación de id (PHP)

Ok dejo el código que me funcionó:

Código PHP:
<form name='inserta' method='post' action=". $_SERVER["PHP_SELF"] ."
Antes el error me salía nada más cargar la página, ahora si selecciono una de las dos opciones y siempre en la misma linea:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\wamp\www\tutorial\inserta.php on line 30

trasteando un poco he conseguido que funcione. Por si alguien tiene un problema similar aclararé brevemente que he hecho. Siguiendo las instrucciones de davemtc y metacortex cambié los que me pidieron.
Después para lograr que funcionara por curiosidad y viendo que no llegabamos a ninguna parte probé a cambiar estas dos lineas:

Código HTML:
<li><a href='insertar.php?id=1'>INSERTAR CAJEROS</a></li> 
<li><a href='insertar.php?id=2'>INSERTAR PRODUCTOS</a></li> 
en vez de 'insertar.php?id=' puse 'inserta panel.php?id=' que era el nombre original del archivo. Para verificar este cambio, dejando 'insertar.php?id=' renombré el archivo como "insertar.php"

Y funcionó perfectamente (lo extraño que en el tuto era ese nombre de archivo y esas lineas xD)

Muchas gracias a todos los que me han ayudado y espero recibir más de vuestra ayuda si no es molestia (en futuras preguntas) ya que dudo por mi parte que pueda solucionar los vuestros.

Un placer haberos tenido como ayuda en mi primera duda. Buenas noches y gracias de nuevo~~

Etiquetas: asociación, formulario, html, mysql, select, sql, variable
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 15:25.