Foros del Web » Programando para Internet » PHP »

Problema con instrucción select

Estas en el tema de Problema con instrucción select en el foro de PHP en Foros del Web. Hola gente del foro. Tengo una base de datos con 2 tablas: - personal --> con los campos "num-col, nombre, apellido1, apellido2" - especialidad --> ...
  #1 (permalink)  
Antiguo 07/05/2008, 05:48
 
Fecha de Ingreso: marzo-2004
Mensajes: 117
Antigüedad: 20 años
Puntos: 0
Problema con instrucción select

Hola gente del foro.
Tengo una base de datos con 2 tablas:
- personal --> con los campos "num-col, nombre, apellido1, apellido2"
- especialidad --> con los campos "num-col, especialidad"

En la web tengo un formulario para introducir los campos por los que buscar:
"nombre, apellido1, apellido2, num-col"

Tengo la siguiente instrucción "select":

Código:
$sql="select t.clave,p.num_col,nombre,apellido1,apellido2,especialidad from personal as p, especialidad as t where p.apellido1 like '%$apellido1%' and p.nombre like '%$nombre%' and p.apellido2 like '%$apellido2%' and p.num_col like '%$num_col%' and p.num_col=t.num_col";
Esta instrucción "select" funciona correctamente en el servidor donde corre la web, pero ahora lo paso a otro servidor y no me funciona. No hace la selección y me saca todos los elementos de la tabla "personal" con su "especialidad" correspondiente.

Los datos de conexión a MySql funciona OK. De echo accede pero no hace bien la selección, saca todo.

Pregunta: ¿a qué se puede deber este problema? ¿ puede ser por diferente versión de PHP? ¿es una instrucción que no fucniona bien en todas las versiones de PHP?

Muchas gracias y reciban un cordial saludo.
Jordi
  #2 (permalink)  
Antiguo 07/05/2008, 09:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema con instrucción select

Hola jordivargas,

Prueba antes de hacer tu consulta, hacer un echo $sql, para que verifiques que los datos son los correctos antes de enviar el Query.

Saludos.
  #3 (permalink)  
Antiguo 09/05/2008, 02:16
 
Fecha de Ingreso: marzo-2004
Mensajes: 117
Antigüedad: 20 años
Puntos: 0
Re: Problema con instrucción select

Hola GatorV, gracias por la respuesta.
He probado lo que me indicas y el resultado es el siguiente:

la instrucción es esta:

$sql="select t.clave,p.num_col,nombre,apellido1,apellido2,espec ialidad from personal as p, especialidad as t where p.apellido1 like '%$apellido1%' and p.nombre like '%$nombre%' and p.apellido2 like '%$apellido2%' and p.num_col like '%$num_col%' and p.num_col=t.num_col";

y el echo es este:

select t.clave,p.num_col,nombre,apellido1,apellido2,espec ialidad from personal as p, especialidad as t where p.apellido1 like '%%' and p.nombre like '%%' and p.apellido2 like '%%' and p.num_col like '%%' and p.num_col=t.num_col

Parece que las variables se pierden por el camino. Indico como lo tengo montado:

Tengo un formulario en una html y por POST envío los datos al php que hace la consulta.

Ya comentaba antes que me funciona OK en un servidor y en el de ahora no.
¿Por qué se pueden perder? ¿he de utilizar otro método para trabajar con variables globales?

Gracias y saludos.
Jordi
  #4 (permalink)  
Antiguo 09/05/2008, 03:43
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Problema con instrucción select

supongo que las Variables las Cogeras con POST o GET si vienen de un formulario..

voy a mejorarte el query :

Código PHP:

$init 
'select t.clave,p.num_col,nombre,apellido1,apellido2,especialidad from personal as p, especialidad as t ' ;

$where 'where p.apellido1 like "%' $apellido1 '%" and p.nombre like "%' $nombre '%" and p.apellido2 like "%' $apellido2 '%" and p.num_col like "%' $num_col '%" and p.num_col=t.num_col';

$qry $init $where 
Por cierto, especialidad aparecia separada ( espec ialidad ), lo he juntado, pero no creo que sea eso.
Igual, la mejora que te e exo no te solventa el problema, pero te ayuda a encontrarlo ^_^
  #5 (permalink)  
Antiguo 14/05/2008, 02:09
 
Fecha de Ingreso: marzo-2004
Mensajes: 117
Antigüedad: 20 años
Puntos: 0
Re: Problema con instrucción select

Hola Misko, gracias por la respuesta, pero lo he probado y sigue sin funcionar bien. En el "echo" siguen las variables vacias.
He probado poner el "echo" en el servidor que funciona bien y si sale el contenido de las variables.
Parece que el problema es cuando paso el contenido de las variables recogidas en un formulario.htm y las paso al apellido2.php, en ese movimeinto se pierde el contenido.
Les pongo los datos del formulario:

Código HTML:
<form id="form_num_apel" name="form_num_apel" action="apellido1.php" method="post" onsubmit="return validateForm(this)"> 
¿es posible que se pierdan porque en el nuevo servidor no admiten esas variables globales? ¿he de hacerlo de otra manera?
Si necesitan algún dato más me lo comunican.
gracias y saludos.
Jordi
  #6 (permalink)  
Antiguo 14/05/2008, 03:31
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Problema con instrucción select

Supongo q estaras haciendo :

$apellido1 = $_POST['apellido1']

en vez de usar simplemente $apellido1, verdaD? xD

osea, si no estan las variables globales activadas, no tienes las variables de una pagina en la otra, por las que tienes q recogerlas o guardarlas en variables tipo cookie, o de session xD
__________________
» Presupuesto Pagina Web
  #7 (permalink)  
Antiguo 19/05/2008, 03:08
 
Fecha de Ingreso: marzo-2004
Mensajes: 117
Antigüedad: 20 años
Puntos: 0
Respuesta: Problema con instrucción select

Hola Misko, no entiendo lo que me dices, ¿donde debo hacerlo?
Te explico como lo estoy haciendo:

1º) con un formulario html recojo los datos y los envío así:
Código HTML:
<form id="form_num_apel" name="form_num_apel" action="apellido1.php" method="post" onsubmit="return validateForm(this)"> 
2º) en la "apellido1.php" hago lo siguiente (no controlo el acceso porque son datos públicos).
Código PHP:
$sql="select t.clave,p.num_col,nombre,apellido1,apellido2,especialidad from personal as p, especialidad as t where p.apellido1 like '%$apellido1%' and p.nombre like '%$nombre%' and p.apellido2 like '%$apellido2%' and p.num_col like '%$num_col%' and p.num_col=t.num_col"
Y en esta select ya se pierden los datos.
¿Donde he de poner lo que tu me comentas - lo del POST - ?
Muchas gracias y un saludos.
Jordi
  #8 (permalink)  
Antiguo 21/05/2008, 02:59
 
Fecha de Ingreso: marzo-2004
Mensajes: 117
Antigüedad: 20 años
Puntos: 0
Respuesta: Problema con instrucción select

Ya he resuelto el problema.
En el alojamiento donde no me funcionaba me han dicho lo siguiente:

En cuanto al uso de vaiables globales, por seguridad está desactivado por defecto en el servidor, pero si necesita activarlo en su alojamiento, puede hacerlo incluyendo en la carpeta httpdocs, un archivo .htacces con el comando para activarlas, activándolo así sólo para dicho directorio de su alojamiento.
Dicho comando es:
php_flag register_globals on


Lo he hecho y ahora funciona correctamente.

¿Es peligroso activarlo, ya que por seguridad ellos lo tenian desacticado?
Como he puesto a lo largo de este tema, no utilizo sesiones.
Gracias y saludos.
Jordi
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




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