Foros del Web » Programando para Internet » PHP »

Error En Script

Estas en el tema de Error En Script en el foro de PHP en Foros del Web. Mi problema es que al enviar la consulta desde un formulario, simpre me sale que la consulta: no ahy resultados: Vualva a hacer la consulta. ...
  #1 (permalink)  
Antiguo 05/03/2008, 05:21
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Error En Script

Mi problema es que al enviar la consulta desde un formulario, simpre me sale que la consulta: no ahy resultados: Vualva a hacer la consulta.

El codigo del formulario es el siguiente:

Código HTML:
Estilo26 Estilo26Elija una o Varias Dependencias:<br />
                            <?
mysql_connect("localhost","pdu1906","netcom");
mysql_select_db("pdu1906_1");
?>
                            <? 
$result=mysql_query("select * from dependenciasl");
?>
                            <select name="dependencia" size="4" multiple="multiple" id="dependencia">
                              <option>Todas</option>
                              <?
while ($row=mysql_fetch_array($result))
{
echo '<option value="'.$row["dependencia"].'">'.$row["dependencia"].'</option>
';
}
mysql_free_result($result)
?>
</select>
Tipo de Incidencias que Desea buscar: <br />
                            <?
mysql_connect("localhost","pdu1906","netcom");
mysql_select_db("pdu1906_1");
?>
                            <? 
$result=mysql_query("select * from tipoincidencia");
?>
                            <select name="inicidencia" size="3" multiple="multiple" id="inicidencia">
                              <option value="Todas">Todas</option>
                              <?
while ($row=mysql_fetch_array($result))
{
echo '<option value="'.$row["incidencia"].'">'.$row["incidencia"].'</option>
';
}
mysql_free_result($result)
?>
                            </select>
Equipo al que esta Afectado la incidencia: <select onchange="cambiar()" name="equipo" id="equipo">
                      <option>Seleccionar</option>
                      <option value="CPU">CPU</option>
                      <option value="Monitor">Monitor</option>
                      <option value="Impresora">Impresora</option>
                      <option value="Teclado">Teclado</option>
                      <option value="Mouse">Mouse</option>
                      <option value="Otros">Otros</option>
                    </select>
Marca:
                    <select name="marca" id="marca">
                              <option selected="selected">Seleccionar</option>
                              <option value="HP">HP</option>
                              <option value="Acer">Acer</option>
                              <option value="Tatung">Tatung</option>
                              <option value="Compaq">Compaq</option>
                              <option value="Clon">Clon</option>
                              <option value="IBM">IBM</option>
                              <option value="CDR">CDR</option>
                    </select>
Modelo:
                    <select name="modelo" id="modelo">
                                <option>Seleccionar</option>
                                <option value="HP">HP</option>
                                <option value="Acer">Acer</option>
                                <option value="Tatung">Tatung</option>
                                <option value="Compaq">Compaq</option>
                                <option value="Clon">Clon</option>
                                <option value="IBM">IBM</option>
                                <option value="CDR">CDR</option>
                    </select>
Elija si necesita filtrar por Prioridad           <select name="prioridad" id="prioridad">
                      <option value="*" selected="selected">Seleccionar</option>
                      <option value="Alta">Alta</option>
                      <option value="Baja">Baja</option>
                      <option value="Normal">Normal</option>
                    </select>
Responsable   <select name="responsable" id="responsable">
                      <option>Seleccionar</option>
                      <option value="Marcelo">Marcelo</option>
                      <option value="Juan Pablo">Juan Pablo</option>
                      <option value="Alberto">Alberto</option>
                      <option value="NetCom">NetCom</option>
                                                            </select>
 Fecha desde:
                    <label>
                              <select name="fechainicio" id="fechainicio">
                                <option>Seleccionar</option>
                                <option value="Enero">Enero</option>
                                <option value="Febrero">Febrero</option>
                                <option value="Marzo">Marzo</option>
                                <option value="Abril">Abril</option>
                                <option value="Mayo">Mayo</option>
                                <option value="Junio">Junio</option>
                                <option value="Julio">Julio</option>
                                <option value="Agosto">Agosto</option>
                                <option value="Septiembre">Septiembre</option>
                                <option value="Octubre">Octubre</option>
                                <option value="Noviembre">Noviembre</option>
                                <option value="Diciembre">Diciembre</option>
                              </select>
                              </label>
Fecha hasta:
                    <select name="fechafinal" id="fechafinal">
                      <option>Seleccionar</option>
                      <option value="Enero">Enero</option>
                                <option value="Febrero">Febrero</option>
                                <option value="Marzo">Marzo</option>
                                <option value="Abril">Abril</option>
                                <option value="Mayo">Mayo</option>
                                <option value="Junio">Junio</option>
                                <option value="Julio">Julio</option>
                                <option value="Agosto">Agosto</option>
                                <option value="Septiembre">Septiembre</option>
                                <option value="Octubre">Octubre</option>
                                <option value="Noviembre">Noviembre</option>
                                <option value="Diciembre">Diciembre</option>
                    </select>
<input type="submit" name="button" id="button" value="ENVIAR DATOS" /> 
El codigo donde recivo los datos y los proceso es el siguiente:

Código PHP:
<? 
$bd_servidor 
"localhost";
$bd_usuario "pdu1906";
$bd_contrasenya "netcom";
$bd_bdname "pdu1906_1";
$link mysql_connect($bd_servidor,$bd_usuario,$bd_contrasenya);
mysql_select_db($bd_bdname,$link);
?>
<?php
$dependencia
$_POST['dependencia'];//te traes por POST los datos desde el formulario
$incidencia$_POST['incidencia'];
$nombre$_POST['nombre'];
$equipo$_POST['equipo'];
$marca$_POST['marca'];
$modelo$_POST['modelo'];
$prioridad$_POST['prioridad'];
$responsable$_POST['responsable'];
$fechainicio$_POST['fechainicio'];
$fechafinal$_POST['fechafinal'];
$strqry "SELECT * FROM cerradas where 1 = 1"//divides la consulta y según se escriba o no algo en un campo del formulario, cargo o no esa parte de la consulta; pero para evitar problemas de sintaxis, añado  1 = 1 en la primera consulta, pues uno nunca es menor que uno y con AND a continuación no altera el resultado de la consulta
if ($dependencia !==""){//si no se rellena este campo del formulario
$strqry.= " AND dependencia = '$dependencia'";}//añade esto a la consulta
if ($incidencia !==""){//si se añade este otro
$strqry.= " AND incidencia ='$incidencia'";}//añade esto (esto es para un campo numérico campo numérico)
if ($nombre !=="") {
$strqry.= " AND nombre ='$nombre'";}//para campo numérico
if ($equipo !==""){
$strqry.= " AND equipo ='$equipo'";}//para campo de texto, que debe ser exacto
if ($marca !==""){
$strqry.= " AND marca ='$marca'";}//para campo de texto, que debe ser exacto
if ($modelo !==""){
$strqry.= " AND modelo ='$modelo'";}//para campo de texto, que debe ser exacto
if ($prioridad !==""){
$strqry.= " AND prioridad ='$prioridad'";}//para campo de texto, que debe ser exacto
if ($responsable !==""){
$strqry.= " AND responsable ='$responsable'";}//para campo de texto, que debe ser exacto
if ($fechainicio !==""){
$strqry.= " AND fechainicio ='$fechainicio'";}//para campo de texto, que debe ser exacto
if ($fechafinal !==""){
$strqry.= " AND fechafinal='$fechafinal'";}//para campo de texto, que debe ser exacto
$sqry mysql_query($strqry,$link);//ahora lanzas la consulta
$encontrados =mysql_num_rows ($sqry);//cuentas el número de resultados
if ($encontrados 1) {echo "no hay resultados: vuelva a hacer la búsqueda";} else {while ($row mysql_fetch_assoc($sqry)){ //muestras lo que sea;}}//si no hay ninguno, avisas; si hay alguno tendras que mostrarlo con echo
//muestro los echo......
}}

?>
Lo que hace este script es filtrar por los campos que elija en el formulario, de esta manera puedo buscar en forma independiente por cualquiera de los campos, o su vez por varios campos a la vez.

Espero una ayuda para solucionar el incoveniente.... gracias
  #2 (permalink)  
Antiguo 05/03/2008, 06:00
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Error En Script

prueba con esta sintaxis al hacer las consultas

Código PHP:

$strqry
.= " AND dependencia = '$dependencia'";} 
por



Código PHP:

$strqry
.= " AND dependencia = '.$dependencia.'";} 
a ver que pasa.
  #3 (permalink)  
Antiguo 05/03/2008, 09:03
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Re: Error En Script

Gracias por contestar, pero me sale lo mismo, que no encuentra nada, yo tengo cargado en esa tabla 3 registros. Y no me muestra ninguno con ningun parametro de busqueda.

La estrucutra de mi tabla por si sirve de algo la agrego...

CREATE TABLE `cerradas` (
`id` int(11) unsigned NOT NULL auto_increment,
`idincidencia` varchar(255) NOT NULL,
`dependencia` varchar(255) NOT NULL,
`nombre` varchar(255) NOT NULL,
`sintoma` text NOT NULL,
`prioridad` varchar(255) NOT NULL,
`responsable` varchar(255) NOT NULL,
`equipo` varchar(255) NOT NULL,
`marca` varchar(255) NOT NULL,
`modelo` varchar(255) NOT NULL,
`serie` varchar(255) NOT NULL,
`inventario` varchar(255) NOT NULL,
`fechainicio` varchar(255) NOT NULL,
`finprevisto` varchar(255) NOT NULL,
`fechafinal` varchar(255) NOT NULL,
`incidencia` varchar(255) NOT NULL,
`tecnico` varchar(255) NOT NULL,
`comentario` text NOT NULL,
`evolucion` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
  #4 (permalink)  
Antiguo 05/03/2008, 10:04
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Error En Script

Por que no pruebas imprimendo como queda el $strqry antes de hacer el mysql_query? Por ahi empezaria yo a revisar.

Código PHP:
print "Query: "$strqry."<br>"
-ronnieb
  #5 (permalink)  
Antiguo 05/03/2008, 15:50
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: Error En Script

Bien, hice un print y un printr. y no me mostro resultados, es mas, no se que es lo que toque, y por mas que me fije esta todo igual, y ahora ni siquiera me muestra si ahy o no registros, simplemente no me muestra nada...

Alguna sugerencia...

Gracias
  #6 (permalink)  
Antiguo 06/03/2008, 04:44
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Re: Error En Script

Al hacer

Código PHP:
print $sqry
Me tira como resultado:

Resource id #3

al hacer
Código PHP:
print $strqry
El resultado es

SELECT * FROM cerradas where 1 = 1 AND dependencia = 'PRESIDENCIA' AND incidencia ='' AND nombre ='' AND equipo ='Seleccionar' AND marca ='Seleccionar' AND modelo ='Seleccionar' AND prioridad ='*' AND responsable ='Seleccionar' AND fechainicio ='Seleccionar' AND fechafinal='Seleccionar'

Una ayuda plis para ver hacerlo funcionar....

Gracias
  #7 (permalink)  
Antiguo 06/03/2008, 05:31
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Problemas con error en los envio de los datos

Analizando el script me di cuenta que cuando traigo los valores del formulario aquellos Select que no poseen nada en el Value me toma igual el valor label. y no deberia ocurrir

Diagamos que tengo el siguiente select
Código HTML:
<select name="equipo" id="equipo">
                        <option value="">Seleccionar</option>
                        <?
while ($row=mysql_fetch_array($result))
{
echo '<option value="'.$row["opcion"].'">'.$row["opcion"].'</option>
';
}
mysql_free_result($result)
?>
                        </select> 
Si no coloco nada me toma el valor label "Seleccionar" y no deberia ocurrir...

Y supongo que ese detalle es un problema para hacer funcionar la consulta que intento realizar.

Gracias ayuditassss
  #8 (permalink)  
Antiguo 06/03/2008, 10:43
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Error En Script

En vez de dejarle el value="" al <option> de Seleccionar, puedes probar poniendole un value tal como value="#" , y luego al armar la query, chequeas por esto tambien, por ejemplo:

Código PHP:
if ($modelo !== "" && $modelo != "#"
-ronnieb
  #9 (permalink)  
Antiguo 06/03/2008, 13:47
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
De acuerdo Re: Error En Script

Gracias tema solucionado...

primero al where le puse en vez de 1 = 1... le puse where id

y a los if ($vairable !=="") lo cambie por if ($variable !=="Seleccionar)...

Asi cuando cae ese contenido me lo niega y no lo agrega...

Gracias por la ayuda
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 07:24.