Foros del Web » Programando para Internet » PHP »

Donde está el error??

Estas en el tema de Donde está el error?? en el foro de PHP en Foros del Web. Buenas tengo el siguiente código PHP. Código PHP: <? require( '../libreria.php' ); $user  =  JFactory :: getUser (); $licencia  =  $user  ->  username ; ?> ...
  #1 (permalink)  
Antiguo 30/08/2012, 04:26
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Donde está el error??

Buenas tengo el siguiente código PHP.

Código PHP:
<?
require('../libreria.php');
$user JFactory::getUser();
$licencia $user -> username;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Alta</title>
</head>
<body>
<?
if($licencia != 'XXXXX' && $licencia != 'XXXXX' && $licencia != 'XXXX') die('<h4 style="color: red;">No esta autorizado a visualizar esta pagina.</h4>');
mysql_connect('XXX''XXX''XXX') or die('Ha habido un problema con la conexi&oacute;n al servidor.');
mysql_select_db('XXX') or die('Ha habido un problema con la conexi&oacute;n a la base de datos.');

$boton $_POST['enviar'];

$vid_ivao $_POST['vid_ivao'];
$id_vatsim $_POST['id_vatsim'];
$pais $_POST['pais'];
$loc $_POST['loc'];
$activo $_POST['activo'];
$nombre $_POST['nombre'];
$email $_POST['email'];
$contra $_POST['contra'];


if(
$boton == 'Aprobar Solicitud')
{
    
mysql_query("INSERT INTO users(name, username, email, password) VALUES('$nombre', '$licencia', '$email', '$contra')") or die('<h4 style="color: red;">Ha habido un problema con el registro.</h4>');
    
mysql_query("UPDATE pilotos(licencia, vid_ivao, id_vatsim, pais, nombre, email, loc, activo) VALUES('$licencia', '$vid_ivao', '$id_vatsim', '$pais', '$nombre', '$email', '$loc', '$activo')") or die('<h4 style="color: red;">Ha habido un problema con la acci&oacute;n.</h4>');
    
        
    echo 
'<h4 style=\"color: #206D13;\">Piloto aprobado correctamente.</h4>';
    
}
else
{
    
?>
<?
$id 
$_GET["id"];

include(
'db.inc.php');
$connection mysql_connect($DBHost$DBUser$DBPass);
if (!
$connection){
die (
"No se puede conectar con la base de datos: <br />"mysql_error());
}


$db_select mysql_select_db($DBName);
if (!
$db_select){
die (
"No se puede seleccionar la base de datos: <br />"mysql_error());
}

$query "SELECT *  FROM `pilotos`  where id=$id";

$result mysql_query$query );
if (!
$result)
{
die (
"No se puede hacer la consulta en la base de datos: <br />"mysql_error());
}

?>
    <form method="post" action="alta-piloto.php"> 
<?
echo '<table border="0">';
while (
$row mysql_fetch_array($resultMYSQL_ASSOC)){


echo 
"<tr><td style=\"background-color: #D2232A; color: white;\">&iquest;</td><td><input type=\"hidden\" name=\"id\" size=\"4\"  readonly=\"readonly\" value=\"";
echo 
$row["id"] . '"></td></tr>';

echo 
"<tr><td style=\"background-color: #D2232A; color: white;\">&iquest;Licencia</td><td><input type=\"text\" name=\"username\" size=\"7\" value=\"";
echo 
$row["licencia"] . '"></td></tr>';

echo 
"<tr><td style=\"background-color: #D2232A; color: white;\">&iquest;Nombre</td><td><textarea name=\"nombre\" rows=\"1\" cols=\"40\">".$row["nombre"]."</textarea>";

echo 
"<tr><td style=\"background-color: #D2232A; color: white;\">&iquest;E-mail</td><td><input type=\"text\" name=\"email\" readonly=\"readonly\" size=\"30\" value=\"\"";
echo 
$row["email"] . '></td></tr>';

echo 
"<tr><td style=\"background-color: #D2232A; color: white;\">&iquest;Pa&iacute;s</td><td><input type=\"text\" name=\"pais\" size=\"10\" value=\"";
echo 
$row["pais"] . '"></td></tr>';



echo 
"<tr><td style=\"background-color: #D2232A; color: white;\">&iquest;VID IVAO</td><td><input type=\"text\" name=\"ivao_id\" size=\"10\" value=\"";
echo 
$row["vid_ivao"] . '"</td></tr>';

echo 
"<tr><td style=\"background-color: #D2232A; color: white;\">&iquest;ID VATSIM</td><td><input type=\"text\" name=\"horas_ivao\" size=\"10\" value=\"";
echo 
$row["id_vatsim"] . '"></td></tr>';

echo 
"<tr><td style=\"background-color: #D2232A; color: white;\">&iquest;Localizaci&oacute;n</td><td><input type=\"text\" name=\"loc\" size=\"4\" value=\"";
echo 
$row["loc"] . '"></td></tr>';

echo 
"<tr><td style=\"background-color: #D2232A; color: white;\">&iquest;Rango</td><td><select name=\"rango\"><option selected=selected value=$row[rango]>$row[rango]</option><option value=IngenierodeVuelo>Ingeniero de Vuelo</option><option value=PrimerOficial>Primer Oficial</option><option value=Comandante>Comandante</option><option value=Comandante 2>Comandante 2</option></select></td></tr>";

echo 
"<tr><td style=\"background-color: #D2232A; color: white;\">&iquest;Piloto activo?</td><td><input type=\"checkbox\" name=\"activar\" checked=\"checked\" /></td></tr>";


echo 
"<tr><td><input type=\"submit\" value=\"actualizar\" name=\"Aprobar\">Solicitud</td></tr> ";
}
echo 
"</table>";
?>
</form> 
    <?
}
mysql_close();
?>
</body>
</html>
Me dá el siguiento error:
No se puede hacer la consulta en la base de datos:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

No entiendo por qué. Alguien me puede hechar una mano. Donde están puestas las Xs es que está rellenado pero por seguridad no os lo puedo enseñar.
  #2 (permalink)  
Antiguo 30/08/2012, 04:35
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Donde está el error??

Puede ser por las comillas:

Código PHP:
$query "SELECT *  FROM 'pilotos'  where id=$id"
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #3 (permalink)  
Antiguo 30/08/2012, 04:44
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Donde está el error??

Cita:
Iniciado por miktrv Ver Mensaje
Puede ser por las comillas:

Código PHP:
$query "SELECT *  FROM 'pilotos'  where id=$id"
Quitando las comillas no funciona pero dejándolo así.
Código PHP:
'SELECT *  FROM 'pilotos'  where id=$id' 
Dice esto:
Cita:
No se puede hacer la consulta en la base de datos:
Unknown column '$id' in 'where clause'
  #4 (permalink)  
Antiguo 30/08/2012, 04:48
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Donde está el error??

El problema está en el UPDATE

Código SQL:
Ver original
  1. UPDATE pilotos(licencia, vid_ivao, id_vatsim, pais, nombre, email, loc, activo) VALUES('$licencia', '$vid_ivao', '$id_vatsim', '$pais', '$nombre', '$email', '$loc', '$activo')

Esa no es la sintaxis correcta para el UPDATE,

acá te dejo un recurso en el cual puedes entender en qué te equivocaste.

http://www.w3schools.com/sql/sql_update.asp

saludos.
__________________
Utilice el Highlight para mostrar código, mis ojos se lo agradecerán :)
qué es esto? :O -> http://i48.tinypic.com/5x3kzs.png
Ya sabes :)
  #5 (permalink)  
Antiguo 30/08/2012, 04:54
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Donde está el error??

Tiene razón Ribon, corrige esa parte.

El error que mencionas está en:
Código PHP:
Ver original
  1. $query = "SELECT *  FROM `pilotos`  where id=$id";
  2.  
  3. $result = mysql_query( $query );
  4. if (!$result)
  5. {
  6. die ("No se puede hacer la consulta en la base de datos: <br />". mysql_error());
  7. }

Supongo que $id no tiene un valor adecuado y eso lo puedes ver fácilmente con:

var_dump($id);

ó

echo $query;
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 30/08/2012, 05:48
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Donde está el error??

He arreglado el UPDATE y queda así:

Código PHP:
mysql_query("UPDATE pilotos SET licencia=$licencia , vid_ivao=$vid_ivao , id_vatsim=$id_vatsim , pais=$pais , nombre=$nombre , email=$email , loc=$loc, activo=$activo  where id=$id") or die('<h4 style="color: red;">Ha habido un problema con la acci&oacute;n.</h4>'); 


Cita:
Iniciado por Triby Ver Mensaje
Tiene razón Ribon, corrige esa parte.

El error que mencionas está en:
Código PHP:
Ver original
  1. $query = "SELECT *  FROM `pilotos`  where id=$id";
  2.  
  3. $result = mysql_query( $query );
  4. if (!$result)
  5. {
  6. die ("No se puede hacer la consulta en la base de datos: <br />". mysql_error());
  7. }

Supongo que $id no tiene un valor adecuado y eso lo puedes ver fácilmente con:

var_dump($id);

ó

echo $query;
Ummm, no le entiendo. Cómo debe quedar esa parte??? Lo que yo quiero es que obtenga el ID y lo clasifique por este para cuando lo quiera editar, justamente a ese piloto si tiene el ID 1 que vaya a http://misitio.com/alta-piloto.php?=1
  #7 (permalink)  
Antiguo 30/08/2012, 13:07
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Donde está el error??

Cita:
Iniciado por carlosuc99
El número 1... a qué variable será asignado?
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 30/08/2012, 16:17
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Donde está el error??

Cita:
Iniciado por Triby Ver Mensaje
El número 1... a qué variable será asignado?
A la variable $id:

Código PHP:
$id $_GET["id"]; 
  #9 (permalink)  
Antiguo 30/08/2012, 18:11
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Donde está el error??

Ajá... y luego porqué id no aparece en la URL?

alta-piloto.php?=1 <----- no veo "id"
__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 31/08/2012, 02:28
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Donde está el error??

Cita:
Iniciado por Triby Ver Mensaje
Ajá... y luego porqué id no aparece en la URL?

alta-piloto.php?=1 <----- no veo "id"
Como??? Entonces como lo debería dejar??
  #11 (permalink)  
Antiguo 31/08/2012, 02:48
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: Donde está el error??

Pues alta-piloto.php?id=1
sino no hay manera de que sepa que ese 1 se llama id. Y si añades mas parametros tienes que separarlos con &

alta-piloto.php?id=1&nombre=pepe
  #12 (permalink)  
Antiguo 31/08/2012, 03:34
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Donde está el error??

Cita:
Iniciado por alyciashape Ver Mensaje
Pues alta-piloto.php?id=1
sino no hay manera de que sepa que ese 1 se llama id. Y si añades mas parametros tienes que separarlos con &

alta-piloto.php?id=1&nombre=pepe
Pero dónde lo tengo que poner???? Cómo tiene que quedar el archivo??
  #13 (permalink)  
Antiguo 31/08/2012, 04:06
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 17 años, 11 meses
Puntos: 58
Respuesta: Donde está el error??

Empezemos por el principio.
El archivo dice que si se ha enviado un usuario nuevo se inserte en la base de datos, pero que si se envía alta-piloto.php?id=1, lo que se hace es mostrar el formulario con los datos de ese piloto.
Yo supongo que tendrás un listado de pilotos y cada cual tendrá su botón 'editar'.
El enlace de ese botón deberá ser: alta-piloto.php?id=$r['id_piloto_a_editar']
  #14 (permalink)  
Antiguo 31/08/2012, 07:01
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Donde está el error??

Cita:
Iniciado por jossss Ver Mensaje
Empezemos por el principio.
El archivo dice que si se ha enviado un usuario nuevo se inserte en la base de datos, pero que si se envía alta-piloto.php?id=1, lo que se hace es mostrar el formulario con los datos de ese piloto.
Yo supongo que tendrás un listado de pilotos y cada cual tendrá su botón 'editar'.
El enlace de ese botón deberá ser: alta-piloto.php?id=$r['id_piloto_a_editar']
Coge una lista para los administradores y muestra unos datos del piloto concreto. alta-piloto.php?=IDDELPILOTO!!! Ahí muestra los datos del piloto y pueden ser modificados, si los modifica y se envía hace el INSERT INTO y el UPDATE.
  #15 (permalink)  
Antiguo 31/08/2012, 12:16
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Donde está el error??

Ahh ok. Ya lo he arreglado!!!! Pero el UPDATE que cambié sigue fallando. El que puse es:

Código PHP:
mysql_query("UPDATE pilotos SET rango=$rango, licencia=$licencia , vid_ivao=$vid_ivao , id_vatsim=$id_vatsim , pais=$pais , nombre=$nombre , email=$email , loc=$loc where id=$id") or die('<h4 style="color: red;">Ha habido un problema con la acci&oacute;n.</h4>'); 
Este no funciona y no lo entiendo. La variable $id funciona. A lo mejor es porque hay 2 mysql query pero no creo. El error que me da es:

Cita:
Ha habido un problema con la acción.
Lo cual es el error que debería dar al hacer mal la consulta.
  #16 (permalink)  
Antiguo 31/08/2012, 12:19
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 17 años, 11 meses
Puntos: 58
Respuesta: Donde está el error??

es que declaras la variable $id despues del UPDATE.
Debería estar por encima

$id = $_GET["id"];
UPDATE
Aun así es buena practica poner comilla a los valores:
Código PHP:
Ver original
  1. mysql_query("UPDATE pilotos SET rango='$rango', licencia='$licencia' , vid_ivao='$vid_ivao' , id_vatsim='$id_vatsim' , pais='$pais' , nombre='$nombre' , email='$email' , loc='$loc' where id='$id'") or die('<h4 style="color: red;">Ha habido un problema con la acci&oacute;n.</h4>');

Etiquetas: html, mysql, registro, sql
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 00:06.