Foros del Web » Programando para Internet » PHP »

Pregunta!!!sobre select concatenado

Estas en el tema de Pregunta!!!sobre select concatenado en el foro de PHP en Foros del Web. Hola amigos bueno les cuento tengo un select concatenado que ahora que me tira porblemas con las variables y la verdad nose porque podrian ayudarme ...
  #1 (permalink)  
Antiguo 23/03/2010, 08:25
 
Fecha de Ingreso: febrero-2010
Mensajes: 86
Antigüedad: 14 años, 8 meses
Puntos: 0
Exclamación Pregunta!!!sobre select concatenado

Hola amigos bueno les cuento tengo un select concatenado que ahora que me tira porblemas con las variables y la verdad nose porque podrian ayudarme aka les dejo el codigo
Código PHP:
$normativa = (!empty($_POST["normativa"])
                                        ? 
"tipo_normativa="trim($_POST["normativa"])
                                        : 
" ");
 
                                        
$numero = (!empty($_POST["numero"])
                                        ? (!empty(
$normativa
                                        ? 
" AND numero_normativa=".trim($_POST["numero"])
                                        : 
" numero_normativa=".trim($_POST["numero"]))
                                        : 
"");
 
                                        
$nombre = (!empty($_POST["nombre"])
                                        ? (!empty(
$normativa) || !empty($numero)
                                        ? 
" AND nombre_normativa=".trim($_POST["nombre"])
                                        : 
" nombre_normativa=".trim($_POST["nombre"]))
                                        : 
"");
 
                                        
$fecha = (!empty($_POST["fecha"])
                                        ? (!empty(
$normativa) || !empty($numero) || !empty($nombre)
                                        ? 
" AND ultima_fecha_modificacion=".trim($_POST["fecha"])
                                        : 
" ultima_fecha_modificacion=".trim($_POST["fecha"]))
                                        : 
"");
 
                                        
$modifica = (!empty($_POST["modifica"])
                                        ? (!empty(
$normativa) || !empty($numero) || !empty($nombre) || !empty($fecha)
                                        ? 
" AND ultima_modificacion=".trim($_POST["modifica"])
                                        : 
" ultima_modifica=".trim($_POST["modifica"]))
                                        : 
"");
 
                                        
$amb = (!empty($_POST["amb"])
                                        ? (!empty(
$normativa) || !empty($numero) || !empty($nombre) || !empty($fecha) || !empty($modifica)
                                        ? 
" AND id_amb=".trim($_POST["amb"])
                                        : 
" id_amb=".trim($_POST["amb"]))
                                        : 
"");
 
                                        
$ministerio = (!empty($_POST["ministerio"])
                                        ? (!empty(
$normativa) || !empty($numero) || !empty($nombre) || !empty($fecha) || !empty($modifica) || !empty($amb)
                                        ? 
" AND id_ministerio=".trim($_POST["ministerio"])
                                        : 
" id_ministerio=".trim($_POST["ministerio"]))
                                        : 
"");
 
                                        
$materia = (!empty($_POST["materia"])
                                        ? (!empty(
$normativa) || !empty($numero) || !empty($nombre) || !empty($fecha) || !empty($modifica) || !empty($amb) || !empty($ministerio
                                        ? 
" AND id_materia=".trim($_POST["materia"])
                                        : 
" id_materia=".trim($_POST["materia"]))
                                        : 
"");


                                        
$where = (!empty($normativa) || !empty($numero) || !empty($nombre) || !empty($fecha) || !empty($modifica) || !empty($amb)|| !empty($ministerio) || !empty($materia
                                        ? 
"WHERE"
                                        
" ");

                                        
$result =mysql_query("SELECT * FROM normativa " 
                                        
$where
                                        
$normativa 
                                        
$numero 
                                        
$nombre 
                                        
$fecha 
                                        
$modifica 
                                        
$amb 
                                        
$ministerio
                                        
$materia); 
me dise de error cuando selcciono qu la varible normativa sea =ley me tira error e estado ruteando un poko esto y me tira ciertos valores raros en la variable que compra miren este error me tira.

No se ha podido ejecutar correctamente la consulta: 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 '=Ley' at line 1

???????????????????? no entiendo????????? pk toma "=ley" deveria tomar solo ley adyundeme pllis!!!
  #2 (permalink)  
Antiguo 23/03/2010, 08:27
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 3 meses
Puntos: 70
Respuesta: Pregunta!!!sobre select concatenado

Pues creo que ley es de tipo varchar(), debes encerrarla entre comillas simples.

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 23/03/2010, 08:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Pregunta!!!sobre select concatenado

Recuerda que si tus tipos de datos son strings, en tu consulta SQL deben de ir entre comillas, es decir:
Código PHP:
Ver original
  1. // mal
  2. $query .= "algo=$var";
  3.  
  4. // bien
  5. $query .= "algo='$var'";

Saludos.
  #4 (permalink)  
Antiguo 23/03/2010, 08:33
 
Fecha de Ingreso: febrero-2010
Mensajes: 86
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Pregunta!!!sobre select concatenado

Cita:
Iniciado por Carxl Ver Mensaje
Pues creo que ley es de tipo varchar(), debes encerrarla entre comillas simples.

Saludos
gracias amigos por la respuesta rapida, bueno osea segun lo que medises tienes razon es varchar en esta linea

$normativa = (!empty($_POST["normativa"])
? "tipo_normativa=". trim($_POST["normativa"])
: " ");

deveria ir con comilla simple asi??

$normativa = (!empty($_POST['normativa'])
? 'tipo_normativa='. trim($_POST['normativa'])
: ' ');


asi todo??? o me equivoco??
  #5 (permalink)  
Antiguo 23/03/2010, 08:35
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 3 meses
Puntos: 70
Respuesta: Pregunta!!!sobre select concatenado

No veo donde las colocas??

La idea sería:

Código PHP:
Ver original
  1. "tipo_normativa='".trim($_POST['normativa'])."'";

Mejor? Fíjate que coloqué comillas sencillas después del igual y casi al final de la cadena.
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #6 (permalink)  
Antiguo 23/03/2010, 08:38
 
Fecha de Ingreso: febrero-2010
Mensajes: 86
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Pregunta!!!sobre select concatenado

Cita:
Iniciado por Carxl Ver Mensaje
No veo donde las colocas??
y como ago esop? no entiendo a ke parte te refieres podrias explicarte mejor??
  #7 (permalink)  
Antiguo 23/03/2010, 12:15
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 3 meses
Puntos: 70
Respuesta: Pregunta!!!sobre select concatenado

Hiciste lo que te puse en mi post anterior???

Viste que sucedió?
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #8 (permalink)  
Antiguo 23/03/2010, 12:25
 
Fecha de Ingreso: febrero-2010
Mensajes: 86
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Pregunta!!!sobre select concatenado

Cita:
Iniciado por Carxl Ver Mensaje
Hiciste lo que te puse en mi post anterior???

Viste que sucedió?
si lo isea ahora lo tengo asi mira
Código PHP:
$normativa = (!empty($_POST['normativa'])
                ? (!empty(
$numero
                ? 
'AND tipo_normativa='.trim($_POST['normativa'])
                : 
'tipo_normativa='.trim($_POST['normativa']))
                : 
''); 
y me tira este error
No se ha podido ejecutar correctamente la consulta: Unknown column 'Ley' in 'where clause'
y al empirmir la variable para verificar el contenido de esta la varviable normativa este tira=tipo_normativa=Ley
  #9 (permalink)  
Antiguo 23/03/2010, 12:30
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 3 meses
Puntos: 70
Respuesta: Pregunta!!!sobre select concatenado

Bueno al parecer no estás aplicando exactamente el código como te lo puse, mira las diferencias entre " y ', y mira como las uso para que tú la apliques igual. Resulta que si son campos varchar debes usar el valor entre comilas simples.

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #10 (permalink)  
Antiguo 23/03/2010, 12:34
 
Fecha de Ingreso: febrero-2010
Mensajes: 86
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Pregunta!!!sobre select concatenado

Cita:
Iniciado por Carxl Ver Mensaje
Bueno al parecer no estás aplicando exactamente el código como te lo puse, mira las diferencias entre " y ', y mira como las uso para que tú la apliques igual. Resulta que si son campos varchar debes usar el valor entre comilas simples.

Saludos
mira la verdad quero que me entiendas bien y asi puedas ayudarme!
Código PHP:
$numero = (!empty($_POST["numero"])
                ? 
" numero_normativa=".trim($_POST["numero"])
                : 
"");
 
                
$normativa = (!empty($_POST['normativa'])
                ? (!empty(
$numero
                ? 
'AND tipo_normativa='.trim($_POST['normativa'])
                : 
'tipo_normativa='.trim($_POST['normativa']))
                : 
'');
     
                
$ministerio = (!empty($_POST['ministerio'])
                ? (!empty(
$numero) || !empty($normativa)
                ? 
'AND nombre_ministerio ='.trim($_POST['ministerio'])
                : 
'nombre_ministerio ='.trim($_POST['ministerio']))
                : 
'');
 
                
$materia = (!empty($_POST['materia'])
                ? (!empty(
$numero) || !empty($normativa) || !empty($ministerio)
                ? 
' AND nombre_materia ='.trim($_POST['materia'])
                : 
' nombre_materia ='.trim($_POST['materia']))
                : 
'');
 
                
$amb = (!empty($_POST['amb'])
                ? (!empty(
$numero) || !empty($normativa) || !empty($ministerio) || !empty($materia)
                ? 
' AND nombre_amb='.trim($_POST['amb'])
                : 
' nombre_amb='.trim($_POST['amb']))
                : 
'');
 
                
$where = (!empty($numero) || !empty($normativa) || !empty($ministerio) || !empty($materia) || !empty($amb
                ? 
" WHERE "
                
'');
                
                echo 
$normativa.'<br>';
                echo 
$where.'<br>';
                
                
$result =mysql_query("SELECT * FROM normativa"  
                
$where
                
$numero 
                
$normativa
                
$ministerio
                
$materia
                
$amb); 
            
//$query = mysql_query($s) or die(mysql_error());
            
echo $result;                        
                if (!
$result
                    {
                        echo 
"No se ha podido ejecutar correctamente la consulta: " mysql_error();
                        exit;
                    }

                if (
mysql_num_rows($result) == 0
                    {
                        echo 
"No hay registros encontrados";
                        exit;
                    }
            
?> 

mira ese es el select completo ahora veras la vase


CREATE TABLE IF NOT EXISTS `normativa` (
`id_normativa` int(10) NOT NULL AUTO_INCREMENT,
`nombre_normativa` varchar(50) NOT NULL,
`numero_normativa` int(10) NOT NULL,
`tipo_normativa` varchar(50) NOT NULL,
`nombre_amb` varchar(50) NOT NULL,
`nombre_materia` varchar(50) NOT NULL,
`nombre_ministerio` varchar(50) NOT NULL,
`resumen_normativa` mediumtext NOT NULL,
`normativa` longtext NOT NULL,
`ultima_modificacion` mediumtext NOT NULL,
`ultima_fecha_modificacion` date NOT NULL,
`cheq_list` int(10) NOT NULL,
PRIMARY KEY (`id_normativa`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=39 ;


podrias indicarme que esta mal solo con una para que funcione yo la replico con las demas plis!!!
  #11 (permalink)  
Antiguo 23/03/2010, 12:53
 
Fecha de Ingreso: febrero-2010
Mensajes: 86
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Pregunta!!!sobre select concatenado

Cita:
Iniciado por Carxl Ver Mensaje
Bueno al parecer no estás aplicando exactamente el código como te lo puse, mira las diferencias entre " y ', y mira como las uso para que tú la apliques igual. Resulta que si son campos varchar debes usar el valor entre comilas simples.

Saludos
sabes bueno ahora me resulta despues de hacer lo que me indicaste pero el problema es que solo lista 1 reguistro no se pk podrias ayudareme!!!
  #12 (permalink)  
Antiguo 23/03/2010, 13:03
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 3 meses
Puntos: 70
Respuesta: Pregunta!!!sobre select concatenado

Ddonde haces el ciclo para que te liste los registros encontrados?
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #13 (permalink)  
Antiguo 23/03/2010, 13:19
 
Fecha de Ingreso: febrero-2010
Mensajes: 86
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Pregunta!!!sobre select concatenado

Cita:
Iniciado por Carxl Ver Mensaje
Ddonde haces el ciclo para que te liste los registros encontrados?
en la misma pagina pero mas abajop con este ciclo

Código PHP:
while($row=mysql_fetch_array($result))
            {
            echo 
'<tr><td>'.$row["numero_normativa"].'<input type="hidden" name="dato" value="'.$row["numero_normativa"].'"></td>';     echo '<td>'.$row['nombre_normativa'].'</td>';
            echo 
'<td>'.$row['tipo_normativa'].'</td>';
            echo 
'<td>'.$row["ultima_fecha_modificacion"].'</td>';
            echo 
'<td>'.$row['ultima_modificacion'].'</td>';    
            echo 
'<td>'.$row['nombre_amb'].'</td>';
            echo 
'<td>'.$row['nombre_ministerio'].'</td>';
            echo 
'<td>'.$row['nombre_materia'].'</td></tr>';
            
            
mysql_free_result($result);
            } 
eske asi los envio a otra pagina para editarlos
  #14 (permalink)  
Antiguo 23/03/2010, 13:21
 
Fecha de Ingreso: febrero-2010
Mensajes: 86
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Pregunta!!!sobre select concatenado

Cita:
Iniciado por idjar Ver Mensaje
en la misma pagina pero mas abajop con este ciclo

Código PHP:
while($row=mysql_fetch_array($result))
            {
            echo 
'<tr><td>'.$row["numero_normativa"].'<input type="hidden" name="dato" value="'.$row["numero_normativa"].'"></td>';     echo '<td>'.$row['nombre_normativa'].'</td>';
            echo 
'<td>'.$row['tipo_normativa'].'</td>';
            echo 
'<td>'.$row["ultima_fecha_modificacion"].'</td>';
            echo 
'<td>'.$row['ultima_modificacion'].'</td>';    
            echo 
'<td>'.$row['nombre_amb'].'</td>';
            echo 
'<td>'.$row['nombre_ministerio'].'</td>';
            echo 
'<td>'.$row['nombre_materia'].'</td></tr>';
            
            
mysql_free_result($result);
            } 
eske asi los envio a otra pagina para editarlos
jajaja pero jajaja que estupido que soy jajajaj lo siento

libere antes la consulta lo siento!!!!

pero ya lo solucine y muchsisisisimas gracias por tu pasiencia si te conociera te regalaria algo ;)
  #15 (permalink)  
Antiguo 25/03/2010, 08:25
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 3 meses
Puntos: 70
Respuesta: Pregunta!!!sobre select concatenado

Jeje se te agradece lo de la intención del regalo, basta con las gracias

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com

Etiquetas: select
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 22:39.