Foros del Web » Programando para Internet » PHP »

error If y else <fácil>

Estas en el tema de error If y else <fácil> en el foro de PHP en Foros del Web. Saludos foreros! Mi mente saturada no es capaz a estas alturas de la mañana ni de hacer funcionar un if, os lo enseño: Quiero hacer ...
  #1 (permalink)  
Antiguo 16/05/2013, 06:27
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 0
error If y else <fácil>

Saludos foreros!
Mi mente saturada no es capaz a estas alturas de la mañana ni de hacer funcionar un if, os lo enseño:

Quiero hacer que si una consulta no obtiene ningún resultado me muestre un botón submit que me lleve a index.php.
La consulta se compone de 4 campos que se combinan para filtrar una lista, y quiero que si el valor buscado no está que muestre un botón que permita llevarme a otra página donde poder crearlo.
El fallo en este código está en que si solo ejecuto la consulta sin el IF, funciona; si le pongo el IF al escribir en el filtro me muestra el botón directamente de nuevo cliente y no me hace el filtro.

Código PHP:
Ver original
  1. if(!empty($consulta))
  2.         {$consulta = mysql_query ($sql) ;   //Hacer la consulta.  
  3.         }
  4.         else{
  5.        
  6.         ?> <form action="index.php" name="form2" method="post">
  7.             <input type="submit" name="nuevo" value="Crear Nuevo Cliente" style="border-radius:15px" class="button large orange" />
  8.             </form>
  9.  
  10.             <?php      
  11.         }
  #2 (permalink)  
Antiguo 16/05/2013, 07:14
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años, 7 meses
Puntos: 28
Respuesta: error If y else <fácil>

Has hecho un echo de $consulta a ver que contiene?
  #3 (permalink)  
Antiguo 16/05/2013, 08:49
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: error If y else <fácil>

Pues la verdad es que no, pero se supone que contiene el resultado de haber echo la consulta a $sql no?
Ahora mismo no dispongo aquí del resto del código mañana lo postearé completo, creía que con eso iba a ser suficiente
  #4 (permalink)  
Antiguo 16/05/2013, 09:00
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años, 7 meses
Puntos: 28
Respuesta: error If y else <fácil>

Hombre... si dices que con el IF no te ejecuta la consulta es porque el if(!empty($consulta)) no se cumple... vamos que más fácil de detectar el fallo imposible.
  #5 (permalink)  
Antiguo 16/05/2013, 09:03
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: error If y else <fácil>

Vale, hasta ahí estamos de acuerdo, como lo modifico para que se realice lo que quiero?
Si al escribir los datos en los cajones de texto que forman la consulta no devuelve nada, me muestre un botón.
  #6 (permalink)  
Antiguo 16/05/2013, 09:05
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: error If y else <fácil>

Vale, hasta ahí estamos de acuerdo, como lo modifico para que se realice lo que quiero?
Si al escribir los datos en los cajones de texto que forman la consulta no devuelve nada, me muestre un botón.
  #7 (permalink)  
Antiguo 16/05/2013, 09:31
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años, 7 meses
Puntos: 28
Respuesta: error If y else <fácil>

Es lo que te he dicho antes. Estás comprobando si $consulta está vacio y creo que te has liado.

$consulta = mysql_query($sql);

Estás utilizando la variable $consulta para meter el RESULTADO de la la consulta ($sql) por lo tanto me da que no estas utilizando la comprobación correcta.


Código PHP:
Ver original
  1. $sql = ' SELECT * FROM tabla WHERE campo1="'.$_GET['campo1'].' AND campo2="'.$_GET['campo2'].'" AND .... ';
  2.  
  3. if($resultado = mysql_query ($sql) === FALSE){
  4.  
  5.    //Mostramos el botón
  6.  
  7. }else{
  8.  
  9.    //Hacemos lo que queramos con el resultado
  10.  
  11. }
  #8 (permalink)  
Antiguo 17/05/2013, 01:36
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: error If y else <fácil>

Cita:
Iniciado por pr0 Ver Mensaje
Es lo que te he dicho antes. Estás comprobando si $consulta está vacio y creo que te has liado.

$consulta = mysql_query($sql);

Estás utilizando la variable $consulta para meter el RESULTADO de la la consulta ($sql) por lo tanto me da que no estas utilizando la comprobación correcta.


Código PHP:
Ver original
  1. $sql = ' SELECT * FROM tabla WHERE campo1="'.$_GET['campo1'].' AND campo2="'.$_GET['campo2'].'" AND .... ';
  2.  
  3. if($resultado = mysql_query ($sql) === FALSE){
  4.  
  5.    //Mostramos el botón
  6.  
  7. }else{
  8.  
  9.    //Hacemos lo que queramos con el resultado
  10.  
  11. }
Saludos Pr0!

Hice lo que me pusiste pero tenemos un pequeño error.
El botón aparece, pero lo hace cuando no hay nada escrito en los campos. La idea es que aparezca cuando hay escrito en los campos pero la consulta no obtiene ningún resultado.
Por ejemplo: Si quiero filtrar de una lista a todos los Francisco, pero resulta que no hay ningún Francisco, que me aparezca el botón para crear uno(En crear este botón no hay problema).
La cuestión es el IF.

Tu If comprueba que la consulta tenga valores introducidos, no si devuelve algún resultado.

Te voy a pasar mi código para explicarme mejor.

BÚSQUEDA2.PHP
Código PHP:
<?php
$link 
mysql_connect('localhost''root','') or die("Error, no se ha conectado B.D.");
$bd=mysql_select_db('clientes'$link) or die("Error, no se ha seleccionado B.D.");
    
session_start();
    
$user        =    $_SESSION['nom_usuario'];
function 
generaClientes()
    {
    
$link         =    mysql_connect('localhost''root','') or die("Error, no se ha conectado B.D.");
    
$bd            =    mysql_select_db('clientes'$link) or die("Error, no se ha seleccionado B.D.");


    
$nombre        =    isset($_POST['nombre'])        ? $_POST['nombre']        : NULL;
    
$localidad    =    isset($_POST['localidad'])    ? $_POST['localidad']    : NULL;
    
$provincia    =    isset($_POST['provincia'])    ? $_POST['provincia']    : NULL;
    
$cif        =    isset($_POST['cif'])         ? $_POST['cif']         : NULL;
    
$user        =    $_SESSION['nom_usuario'];
    
$sql        =    isset($sql) ? $sql    :    NULL;


if ( !empty (
$nombre) || !empty ($localidad) || !empty ($provincia)|| !empty ($cif) ) {
    
    
$sql" SELECT * FROM lista_clientes as tb1 INNER JOIN usuario_zona as tb2 ON tb1.Zona = tb2.Zona WHERE";              //Empezar a crear la consulta:

    
if ( !empty($nombre) && !empty ($localidad) && !empty ($provincia) && !empty ($cif) ) {            
         
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Localidad LIKE '%$localidad%' AND tb1.Provincia LIKE '%$provincia%' AND tb1.CIF LIKE '%$cif%'" ;   
         }
    
    else if ( !empty(
$nombre) && !empty ($localidad) && !empty ($cif) ) {                   
     
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Localidad LIKE '%$localidad%' AND tb1.CIF LIKE '%$cif%'"
    }
    else if ( !empty(
$nombre) && !empty ($cif) && !empty ($provincia) ) {                       
     
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.CIF LIKE '%$cif%' AND tb1.Provincia LIKE '%$provincia%'"
    }
    else if ( !empty(
$nombre) &&  !empty ($provincia) ) {  
     
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Provincia LIKE '%$provincia%'"
    }
    else if ( !empty(
$nombre) &&  !empty ($cif) ) {  
     
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.CIF LIKE '%$cif%'"
    }
    else if ( !empty(
$nombre) &&  !empty ($localidad) ) {  
     
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Localidad LIKE '%$localidad%'"
    }
    else if ( !empty(
$nombre) ) {
     
$sql .= " tb1.Nombre LIKE '%$nombre%'"
    }
    else if ( !empty (
$localidad) && !empty ($provincia) && !empty ($cif) ) {            
     
$sql .= " tb1.Localidad LIKE '%$localidad%' AND tb1.Provincia LIKE '%$provincia%' AND tb1.CIF LIKE '%$cif%'" ;
    }
    else if ( !empty(
$localidad) &&  !empty ($provincia) ) {  
     
$sql .= " tb1.Localidad LIKE '%$localidad%' AND tb1.Provincia LIKE '%$provincia%'"
    }
    else if ( !empty(
$localidad) &&  !empty ($cif) ) {  
     
$sql .= " tb1.Localidad LIKE '%$localidad%' AND tb1.CIF LIKE '%$cif%'";
    }
    else if ( !empty(
$localidad)) {  
     
$sql .= " tb1.Localidad LIKE '%$localidad%'"
    }
    else if ( !empty(
$cif) &&  !empty ($provincia) ) {  
     
$sql .= " tb1.CIF LIKE '%$cif%' AND tb1.Provincia LIKE '%$provincia%'"
    }
    else if ( !empty (
$provincia) ) {  
     
$sql .= " tb1.Provincia LIKE '%$provincia%'"
    }
    else if ( !empty(
$cif) ) {  
     
$sql .= " tb1.CIF LIKE '%$cif%'"
    }
}

           
$sql .= " AND tb2.nom_usuario = '".$user."' ORDER BY Nombre ASC";
        
        if(
$resultado mysql_query($sql) === FALSE)
        {
?> <form action="index.php" name="form2" method="post">
            <input type="submit" name="nuevo" value="Crear Nuevo Cliente" style="border-radius:15px" class="button large orange" />
            </form>

            <?php
        
}
        
        
   
?>       
    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<link href="css/form.css" rel="stylesheet">

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
    <body> 
    <select name='clientes' size="5px" style="width:80%; font-size:22px;">

    <?php 
        
while($registro=mysql_fetch_assoc($consulta))
            {
?>
            <option value="<?php echo $registro['Nombre']; ?>"><?php echo $registro['Nombre']," ",$registro['Direccion']," ",$registro['Localidad']," ",$registro['Provincia'];  ?></option>
    
        <?php 
            
}
        
?>
    
   </select>

    <?php 
        
}
    
?>    



    <br />
    <br />
        <?php generaClientes();
        exit();
        
?>
</body></html>
FILTROD.PHP
Código Javascript:
Ver original
  1. <?php
  2. $link = mysql_connect('localhost', 'root','') or die("Error, no se ha conectado B.D.");
  3. $bd=mysql_select_db('clientes', $link) or die("Error, no se ha seleccionado B.D.");
  4. session_start();
  5. ?>
  6.  
  7. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  8. <html xmlns="http://www.w3.org/1999/xhtml">
  9. <head>
  10. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  11.    
  12.         <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
  13.         <script type="text/javascript">
  14.             $(document).ready(function()
  15.                 {
  16.                     $("#nombre").keyup(
  17.                         function(event)
  18.                             {                      
  19.                             $("#resultado").load('busqueda2.php',{
  20.                                                                 'nombre'    : $("#nombre").val(),
  21.                                                                 'localidad' : $("#localidad").val(),
  22.                                                                 'provincia' : $("#provincia").val(),
  23.                                                                 'cif'       : $("#cif").val()
  24.                                                                 });
  25.                 }
  26.                             )});
  27.                            
  28.             $(document).ready(function()
  29.                 {
  30.                     $("#localidad").keyup(
  31.                         function(event)
  32.                             {                      
  33.                             $("#resultado").load('busqueda2.php',{
  34.                                                                 'nombre'    : $("#nombre").val(),
  35.                                                                 'localidad' : $("#localidad").val(),
  36.                                                                 'provincia' : $("#provincia").val(),
  37.                                                                 'cif'       : $("#cif").val()
  38.                                                                 });
  39.                 }
  40.                             )});
  41.                            
  42.             $(document).ready(function()
  43.                 {
  44.                     $("#provincia").keyup(
  45.                         function(event)
  46.                             {                      
  47.                             $("#resultado").load('busqueda2.php',{
  48.                                                                 'nombre'    : $("#nombre").val(),
  49.                                                                 'localidad' : $("#localidad").val(),
  50.                                                                 'provincia' : $("#provincia").val(),
  51.                                                                 'cif'       : $("#cif").val()
  52.                                                                 });
  53.                 }
  54.                             )});
  55.                            
  56.             $(document).ready(function()
  57.                 {
  58.                     $("#cif").keyup(
  59.                         function(event)
  60.                             {                      
  61.                             $("#resultado").load('busqueda2.php',{
  62.                                                                 'nombre'    : $("#nombre").val(),
  63.                                                                 'localidad' : $("#localidad").val(),
  64.                                                                 'provincia' : $("#provincia").val(),
  65.                                                                 'cif'       : $("#cif").val()
  66.                                                                 });
  67.                             }
  68.                                 )});               
  69.        
  70.         </script>
  71.         <link href="css/form.css" rel="stylesheet">
  72.     </head>
  73.     <body background="images/bg.png">
  74.     <form name="form" action="filtrod.php" method="post">
  75.     <table>
  76.   <tr>
  77.     <td width="17%"></td>
  78.     <td width="50%"><table cellspacing="20" height="280" width="500" align="left" border="0" style="border-radius:15px" bgcolor="orange" bordercolor="red">
  79.         <tr>
  80.             <td>
  81.     <input type="search" id="nombre" placeholder="Nombre"  style="width:500px; height:40px; text-transform:uppercase;"  class='field text medium'
  82.      autocomplete="off" />
  83.     <br /><br />
  84.     <input type="search" id="localidad" placeholder="Localidad" style="width:500px; height:40px; text-transform:uppercase;" class='field text medium'       autocomplete="off" />
  85.     <br /><br />
  86.     <input type="search" id="provincia" placeholder="Provincia" style="width:500px; height:40px; text-transform:uppercase;" class='field text medium' autocomplete="off" />
  87.     <br /><br />      
  88.      <input type="search" id="cif" placeholder="CIF" width="40" style="width:500px; height:40px; text-transform:uppercase;" class='field text medium' autocomplete="off" />
  89.         </td></tr></table></td>
  90.        
  91.         <td width="10%"></td>
  92.        
  93.        
  94.     <td>
  95.     <input type="reset" name="limpia" style="border-radius:15px" class="button large red" value="Limpiar Datos">
  96.     <br /><br />
  97.  
  98.  
  99.     <input type="submit" name="existe" value="Formulario de Cliente Existente" style="border-radius:15px" class="button large orange" />
  100.     <br /><br />
  101.  
  102.   </tr>
  103. </table>
  104.         <br />
  105. <div align="center"><font face="Calibri" color="#FFFFFF" size="+3">RESULTADOS:</font></div>
  106.         <div id="resultado" align="center" style="vertical-align:middle"></div>
  107.        
  108.        
  109.        
  110.        
  111.        
  112.        
  113.      </form>
  114.      <? exit;?>
  115.     </body>
  116. </html>
  #9 (permalink)  
Antiguo 17/05/2013, 03:46
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 103
Antigüedad: 14 años, 2 meses
Puntos: 17
Respuesta: error If y else <fácil>

Hola

para saber si una SQL devuelve algun resultado usa la funcion mysql_num_rows

Tambien puedes usar mysql_error para saber si tu Consulta contiene algun error de sintaxis

Código PHP:
Ver original
  1. <?php
  2. if(mysql_num_rows($sql)!=0)
  3. {
  4. ?>
  5. <form action="index.php" name="form2" method="post">
  6. <input type="submit" name="nuevo" value="Crear Nuevo Cliente" style="border-radius:15px" class="button large orange" />
  7. </form>
  8. <?php
  9. }else{
  10. echo "No hay resultados para esta Consulta!";
  11. }
  #10 (permalink)  
Antiguo 17/05/2013, 04:08
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: error If y else <fácil>

Cita:
Iniciado por Bugger Ver Mensaje
Hola

para saber si una SQL devuelve algun resultado usa la funcion mysql_num_rows

Tambien puedes usar mysql_error para saber si tu Consulta contiene algun error de sintaxis

Código PHP:
Ver original
  1. <?php
  2. if(mysql_num_rows($sql)!=0)
  3. {
  4. ?>
  5. <form action="index.php" name="form2" method="post">
  6. <input type="submit" name="nuevo" value="Crear Nuevo Cliente" style="border-radius:15px" class="button large orange" />
  7. </form>
  8. <?php
  9. }else{
  10. echo "No hay resultados para esta Consulta!";
  11. }
gracias por contestar bugger, pero no ha habido solución. Cuando cargo la página y escribo en cualquier cajón me sale directamente esto:


La línea encima de la caja blanca pone: Warning: mysql_num_rows() expects parameter 1 to be resource, null given in /opt/lampp/htdocs/busqueda2.php on line 71.

La línea a la izquierda de la caja blanca pone: No hay resultados para esta Consulta!.

He probado con registros que si están y que no están y sale lo mismo, no cambia.
  #11 (permalink)  
Antiguo 17/05/2013, 04:18
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 103
Antigüedad: 14 años, 2 meses
Puntos: 17
Respuesta: error If y else <fácil>

Cuando ejecutas la consulta, hazlo de la siguiente manera:

Código PHP:
$sql mysql_query("TU SENTENCIA SQL") or die(mysql_error()); 
con esto encontrarás el error de tu SQL, que por lo que he visto en mysql_num_rows te lo está diciendo.


Saludos
  #12 (permalink)  
Antiguo 17/05/2013, 04:21
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: error If y else <fácil>

Cita:
Iniciado por Bugger Ver Mensaje
Cuando ejecutas la consulta, hazlo de la siguiente manera:

Código PHP:
$sql mysql_query("TU SENTENCIA SQL") or die(mysql_error()); 
con esto encontrarás el error de tu SQL, que por lo que he visto en mysql_num_rows te lo está diciendo.


Saludos
Si no pongo ningún if y ejecuto el código normal no me da fallo en la consulta. Por tanto no creo que sea error del SQL. Aún así probaré lo que me has dicho
  #13 (permalink)  
Antiguo 17/05/2013, 04:28
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 103
Antigüedad: 14 años, 2 meses
Puntos: 17
Respuesta: error If y else <fácil>

Hola de nuevo

revisando tu código he visto un par de cosas

así debería de saltarte el error de sintaxis o bien mostrarte algo
Código PHP:
Ver original
  1. <?php
  2.     $resultado = mysql_query($sql) or die("Error en sentencia SQL. ".mysql_error());
  3.  
  4.     if(mysql_num_rows($resultado))
  5.     {
  6.         ?>
  7.         <form action="index.php" name="form2" method="post">
  8.         <input type="submit" name="nuevo" value="Crear Nuevo Cliente" style="border-radius:15px" class="button large orange" />
  9.         </form>
  10.         <?php
  11.     } else{
  12. echo "No hay Resultados";
  13.  
  14. }        
  15.     ?>
en el siguiente - la variable 'consulta' no existe, debería ser la variable 'resultado'
Código PHP:
Ver original
  1. <?php  
  2.     while($registro=mysql_fetch_assoc($consulta))
  3.     {?>
  4.     <option value="<?php echo $registro['Nombre']; ?>"><?php echo $registro['Nombre']," ",$registro['Direccion']," ",$registro['Localidad']," ",$registro['Provincia'];  ?></option>
  5.     <?php  
  6.     }
  7.     ?>
  #14 (permalink)  
Antiguo 17/05/2013, 04:30
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: error If y else <fácil>

Te paso el código de búsqueda2.php que le que puse antes estaba desactualizado y no me di cuenta. Disculpen las molestias!

Código PHP:
<?php
$link 
mysql_connect('localhost''root','') or die("Error, no se ha conectado B.D.");
$bd=mysql_select_db('clientes'$link) or die("Error, no se ha seleccionado B.D.");
    
session_start();
    
$user        =    $_SESSION['nom_usuario'];
function 
generaClientes()
    {
    
$link         =    mysql_connect('localhost''root','') or die("Error, no se ha conectado B.D.");
    
$bd            =    mysql_select_db('clientes'$link) or die("Error, no se ha seleccionado B.D.");


    
$nombre        =    isset($_POST['nombre'])        ? $_POST['nombre']        : NULL;
    
$localidad    =    isset($_POST['localidad'])    ? $_POST['localidad']    : NULL;
    
$provincia    =    isset($_POST['provincia'])    ? $_POST['provincia']    : NULL;
    
$cif        =    isset($_POST['cif'])         ? $_POST['cif']         : NULL;
    
$user        =    $_SESSION['nom_usuario'];
    
$sql        =    isset($sql) ? $sql    :    NULL;


if ( !empty (
$nombre) || !empty ($localidad) || !empty ($provincia)|| !empty ($cif) ) {
    
    
$sql" SELECT * FROM lista_clientes as tb1 INNER JOIN usuario_zona as tb2 ON tb1.Zona = tb2.Zona WHERE";              //Empezar a crear la consulta:

    
if ( !empty($nombre) && !empty ($localidad) && !empty ($provincia) && !empty ($cif) ) {            
         
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Localidad LIKE '%$localidad%' AND tb1.Provincia LIKE '%$provincia%' AND tb1.CIF LIKE '%$cif%'" ;   
         }
    
    else if ( !empty(
$nombre) && !empty ($localidad) && !empty ($cif) ) {                   
     
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Localidad LIKE '%$localidad%' AND tb1.CIF LIKE '%$cif%'"
    }
    else if ( !empty(
$nombre) && !empty ($cif) && !empty ($provincia) ) {                       
     
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.CIF LIKE '%$cif%' AND tb1.Provincia LIKE '%$provincia%'"
    }
    else if ( !empty(
$nombre) &&  !empty ($provincia) ) {  
     
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Provincia LIKE '%$provincia%'"
    }
    else if ( !empty(
$nombre) &&  !empty ($cif) ) {  
     
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.CIF LIKE '%$cif%'"
    }
    else if ( !empty(
$nombre) &&  !empty ($localidad) ) {  
     
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Localidad LIKE '%$localidad%'"
    }
    else if ( !empty(
$nombre) ) {
     
$sql .= " tb1.Nombre LIKE '%$nombre%'"
    }
    else if ( !empty (
$localidad) && !empty ($provincia) && !empty ($cif) ) {            
     
$sql .= " tb1.Localidad LIKE '%$localidad%' AND tb1.Provincia LIKE '%$provincia%' AND tb1.CIF LIKE '%$cif%'" ;
    }
    else if ( !empty(
$localidad) &&  !empty ($provincia) ) {  
     
$sql .= " tb1.Localidad LIKE '%$localidad%' AND tb1.Provincia LIKE '%$provincia%'"
    }
    else if ( !empty(
$localidad) &&  !empty ($cif) ) {  
     
$sql .= " tb1.Localidad LIKE '%$localidad%' AND tb1.CIF LIKE '%$cif%'";
    }
    else if ( !empty(
$localidad)) {  
     
$sql .= " tb1.Localidad LIKE '%$localidad%'"
    }
    else if ( !empty(
$cif) &&  !empty ($provincia) ) {  
     
$sql .= " tb1.CIF LIKE '%$cif%' AND tb1.Provincia LIKE '%$provincia%'"
    }
    else if ( !empty (
$provincia) ) {  
     
$sql .= " tb1.Provincia LIKE '%$provincia%'"
    }
    else if ( !empty(
$cif) ) {  
     
$sql .= " tb1.CIF LIKE '%$cif%'"
    }
}

           
$sql .= " AND tb2.nom_usuario = '".$user."' ORDER BY Nombre ASC";
        
$consulta mysql_query($sql);
?>    
    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<link href="css/form.css" rel="stylesheet">

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
    <body> 
    <select name='clientes' size="5px" style="width:80%; font-size:22px;">

    <?php 
        
while($registro=mysql_fetch_assoc($consulta))
            {
?>
            <option value="<?php echo $registro['Nombre']; ?>"><?php echo $registro['Nombre']," ",$registro['Direccion']," ",$registro['Localidad']," ",$registro['Provincia'];  ?></option>
    
        <?php 
            
}
        
?>
    
   </select>

    <?php 
        
}
    
?>    



    <br />
    <br />
        <?php generaClientes();
        exit();
        
?>
</body></html>
  #15 (permalink)  
Antiguo 17/05/2013, 04:35
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 103
Antigüedad: 14 años, 2 meses
Puntos: 17
Respuesta: error If y else <fácil>

pues lo mismo

usa, para ver si te salta algún error

Código PHP:
Ver original
  1. $consulta = mysql_query($sql) or die("Error en la sentencia SQL: ".$sql." - ".mysql_error());
  #16 (permalink)  
Antiguo 17/05/2013, 04:44
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: error If y else <fácil>

Cita:
Iniciado por Bugger Ver Mensaje
pues lo mismo

usa, para ver si te salta algún error

Código PHP:
Ver original
  1. $consulta = mysql_query($sql) or die("Error en la sentencia SQL: ".$sql." - ".mysql_error());
Ahora sí! Eso ya es otra cosa! Lo único que no me hace falta lo de "No hay resultados"!

Ya para rizar el rizo, te pregunto: Para que me salga la lista de clientes completa al cargar la página por primera vez y luego esa lista vaya disminuyendo con la consulta??

Ahora mismo al cargar la página no me muestra nada, y si relleno algún campo es cuando se me muestra la lista que empieza a filtrarse.
  #17 (permalink)  
Antiguo 17/05/2013, 05:00
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 103
Antigüedad: 14 años, 2 meses
Puntos: 17
Respuesta: error If y else <fácil>

pues, así a ojo, en tu primera página, en el apartado de javascript
añadira:

Código Javascript:
Ver original
  1. $(document).ready(function()
  2. {                
  3. $("#resultado").load('busqueda2.php');
  4. }
  5. );

para que cuando cargue la página ya haga la llamada a busqueda2.php.

aparte en tú archivo busqueda2 - tienes que aunque no exista ningún parámetro, cree la sentencia SQL, algo tal que así:

Código PHP:
Ver original
  1. $sql= " SELECT * FROM lista_clientes as tb1 INNER JOIN usuario_zona as tb2 ON tb1.Zona = tb2.Zona ";
  2. if ( !empty ($nombre) || !empty ($localidad) || !empty ($provincia)|| !empty ($cif) ) {      
  3.     $sql .= "WHERE ";
  4. ....
  5. }

es un poco a ojo, ya que no dispongo de mucho tiempo... pero algo así más o menos debería irte o darte la idea para lograr lo que quieres!
  #18 (permalink)  
Antiguo 17/05/2013, 05:30
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: error If y else <fácil>

Cita:
Iniciado por Bugger Ver Mensaje
pues, así a ojo, en tu primera página, en el apartado de javascript
añadira:

Código Javascript:
Ver original
  1. $(document).ready(function()
  2. {                
  3. $("#resultado").load('busqueda2.php');
  4. }
  5. );

para que cuando cargue la página ya haga la llamada a busqueda2.php.

aparte en tú archivo busqueda2 - tienes que aunque no exista ningún parámetro, cree la sentencia SQL, algo tal que así:

Código PHP:
Ver original
  1. $sql= " SELECT * FROM lista_clientes as tb1 INNER JOIN usuario_zona as tb2 ON tb1.Zona = tb2.Zona ";
  2. if ( !empty ($nombre) || !empty ($localidad) || !empty ($provincia)|| !empty ($cif) ) {      
  3.     $sql .= "WHERE ";
  4. ....
  5. }

es un poco a ojo, ya que no dispongo de mucho tiempo... pero algo así más o menos debería irte o darte la idea para lograr lo que quieres!
Algo no va, creo que he hecho lo que me has dicho mira:
Código PHP:
<?php
$link 
mysql_connect('localhost''root','') or die("Error, no se ha conectado B.D.");
$bd=mysql_select_db('clientes'$link) or die("Error, no se ha seleccionado B.D.");
    
session_start();
    
$user        =    $_SESSION['nom_usuario'];
function 
generaClientes()
    {
    
$link         =    mysql_connect('localhost''root','') or die("Error, no se ha conectado B.D.");
    
$bd            =    mysql_select_db('clientes'$link) or die("Error, no se ha seleccionado B.D.");


    
$nombre        =    isset($_POST['nombre'])        ? $_POST['nombre']        : NULL;
    
$localidad    =    isset($_POST['localidad'])    ? $_POST['localidad']    : NULL;
    
$provincia    =    isset($_POST['provincia'])    ? $_POST['provincia']    : NULL;
    
$cif        =    isset($_POST['cif'])         ? $_POST['cif']         : NULL;
    
$user        =    $_SESSION['nom_usuario'];
    
$sql        =    isset($sql) ? $sql    :    NULL;


//
// JUSTO DEBAJO DE ESTE COMENTARIO HE PUESTO EL IF. TU ME HABÍAS PUESTO QUE ERA CON !EMPTY, PERO SE SUPONE QUE ES SI NO HAY NIGÚN VALOR EN NINGUNA CASILLA POR TANTO ES EMPTY NO?
//

if ( empty ($nombre) || empty ($localidad) || empty ($provincia)|| empty ($cif) )
    {
$sql" SELECT * FROM lista_clientes as tb1 INNER JOIN usuario_zona as tb2 
            ON tb1.Zona = tb2.Zona AND tb2.nom_usuario = '"
.$user."' ORDER BY Nombre ASC";
    
    
$consulta mysql_query($sql) or die("Error en la sentencia SQL: ".$sql." - ".mysql_error());   
       }
    else if ( !empty (
$nombre) || !empty ($localidad) || !empty ($provincia)|| !empty ($cif) ) {
    
    
$sql" SELECT * FROM lista_clientes as tb1 INNER JOIN usuario_zona as tb2 ON tb1.Zona = tb2.Zona WHERE";              //Empezar a crear la consulta:

    
if ( !empty($nombre) && !empty ($localidad) && !empty ($provincia) && !empty ($cif) ) {            
         
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Localidad LIKE '%$localidad%' AND tb1.Provincia LIKE '%$provincia%' AND tb1.CIF LIKE '%$cif%'" ;   
         }
    
    else if ( !empty(
$nombre) && !empty ($localidad) && !empty ($cif) ) {                   
     
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Localidad LIKE '%$localidad%' AND tb1.CIF LIKE '%$cif%'"
    }
    else if ( !empty(
$nombre) && !empty ($cif) && !empty ($provincia) ) {                       
     
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.CIF LIKE '%$cif%' AND tb1.Provincia LIKE '%$provincia%'"
    }
    else if ( !empty(
$nombre) &&  !empty ($provincia) ) {  
     
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Provincia LIKE '%$provincia%'"
    }
    else if ( !empty(
$nombre) &&  !empty ($cif) ) {  
     
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.CIF LIKE '%$cif%'"
    }
    else if ( !empty(
$nombre) &&  !empty ($localidad) ) {  
     
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Localidad LIKE '%$localidad%'"
    }
    else if ( !empty(
$nombre) ) {
     
$sql .= " tb1.Nombre LIKE '%$nombre%'"
    }
    else if ( !empty (
$localidad) && !empty ($provincia) && !empty ($cif) ) {            
     
$sql .= " tb1.Localidad LIKE '%$localidad%' AND tb1.Provincia LIKE '%$provincia%' AND tb1.CIF LIKE '%$cif%'" ;
    }
    else if ( !empty(
$localidad) &&  !empty ($provincia) ) {  
     
$sql .= " tb1.Localidad LIKE '%$localidad%' AND tb1.Provincia LIKE '%$provincia%'"
    }
    else if ( !empty(
$localidad) &&  !empty ($cif) ) {  
     
$sql .= " tb1.Localidad LIKE '%$localidad%' AND tb1.CIF LIKE '%$cif%'";
    }
    else if ( !empty(
$localidad)) {  
     
$sql .= " tb1.Localidad LIKE '%$localidad%'"
    }
    else if ( !empty(
$cif) &&  !empty ($provincia) ) {  
     
$sql .= " tb1.CIF LIKE '%$cif%' AND tb1.Provincia LIKE '%$provincia%'"
    }
    else if ( !empty (
$provincia) ) {  
     
$sql .= " tb1.Provincia LIKE '%$provincia%'"
    }
    else if ( !empty(
$cif) ) {  
     
$sql .= " tb1.CIF LIKE '%$cif%'"
    }
}

           
$sql .= " AND tb2.nom_usuario = '".$user."' ORDER BY Nombre ASC";
        
$consulta mysql_query($sql); //or die("Error en la sentencia SQL: ".$sql." - ".mysql_error());
 
    
if(mysql_num_rows($consulta)) 
    {
        
?> 
        <form action="index.php" name="form2" method="post"> 
        <input type="submit" name="nuevo" value="Crear Nuevo Cliente" style="border-radius:15px" class="button large orange" /> 
        </form> 
        <?php 
    
}         
    
?>
        
        
        
        
        
        
    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<link href="css/form.css" rel="stylesheet">

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
    <body> 
    <select name='clientes' size="5px" style="width:80%; font-size:22px;">

    <?php 
        
while($registro=mysql_fetch_assoc($consulta))
            {
?>
            <option value="<?php echo $registro['Nombre']; ?>"><?php echo $registro['Nombre']," ",$registro['Direccion']," ",$registro['Localidad']," ",$registro['Provincia'];  ?></option>
    
        <?php 
            
}
        
?>
    
   </select>

    <?php 
        
}
    
?>    



    <br />
    <br />
        <?php generaClientes();
        exit();
        
?>
</body></html>
  #19 (permalink)  
Antiguo 17/05/2013, 07:01
 
Fecha de Ingreso: marzo-2011
Ubicación: Barcelona
Mensajes: 9
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: error If y else <fácil>

¿Cual es el error que te devuelve ahora?
  #20 (permalink)  
Antiguo 17/05/2013, 07:02
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 103
Antigüedad: 14 años, 2 meses
Puntos: 17
Respuesta: error If y else <fácil>

yo he copiado tú código tal cual estaba!

el caso es que debes, sacar tu SELECT * FROM tabla_X fuera de donde creas las cláusulas WHERE, donde pones los parámetros. Entonces sino hay parámetros te cargará todos los resultados - si hay parámetros entrará en tú IF y creará la cláusula WHERE.

algo así debería irte! es tu código algo modificado y optimizado, para comprobar las variables no debes poner tantos else if -

Código PHP:
Ver original
  1. <?php
  2. // Inicializamos la variable
  3. $clausula_where = "";
  4. // Esta funcion te devuelve WHERE o AND para montar tu clausula WHERE de la sentencia SQL
  5. function FWhere($clausula_where) { return ($clausula_where == '') ? ' WHERE ' : "$clausula_where AND "; }
  6.  
  7. // Comprobamos primer parámetro
  8. if(!empty($nombre)){
  9.     // Si existe miramos la funcion FWhere - para saber si hay que poner un WHERE o un AND a la clausula
  10.     $clausula_where = Fwhere($clausula_where) ." tb1.Nombre LIKE '%".$nombre."%' ";
  11. }
  12. // Comprobamos Segundo parámetro
  13. if(!empty($localidad)){
  14.     // Si existe miramos la funcion FWhere - para saber si hay que poner un WHERE o un AND a la clausula
  15.     // En este caso si existiera la variable anterior la funcion FWHERE te devolveria un AND
  16.      $clausula_where = Fwhere($clausula_where) ." tb1.Localidad LIKE '%$nombre%' ";
  17. }
  18. // Comprobamos Tercer parámetro
  19. if( !empty($provincia)){
  20.     // Si existe miramos la funcion FWhere - para saber si hay que poner un WHERE o un AND a la clausula
  21.     // En este caso si existiera alguna de las variables anteriores la funcion FWHERE te devolveria un AND
  22.      $clausula_where =  Fwhere($clausula_where) ." tb1.Provincia LIKE '%$provincia%' ";
  23. }
  24. // Comprobamos Cuarto parámetro
  25. if(!empty($cif)){
  26.     // Si existe miramos la funcion FWhere - para saber si hay que poner un WHERE o un AND a la clausula
  27.      // En este caso si existiera alguna de las variables anteriores la funcion FWHERE te devolveria un AND
  28.      $clausula_where =  Fwhere($clausula_where) ." tb1.CIF LIKE '%$nombre%' ";
  29. }
  30.  
  31.  // En este caso si existiera alguna de las variables anteriores la funcion FWHERE te devolveria un AND
  32. $clausula_where =  Fwhere($clausula_where)."  tb2.nom_usuario = '".$user."'";
  33. $clausula_where .= "  ORDER BY Nombre ASC";
  34.  
  35. // Creamos la Sentencia SQL  y le pasamos la variable clausula_where
  36. $sql= " SELECT * FROM lista_clientes as tb1 INNER JOIN usuario_zona as tb2  
  37.        ON tb1.Zona = tb2.Zona ".$clausula_where;
  38. // Para provar el codigo puedes imprimir la sentencia por pantalla para ver que sale
  39. echo $sql;
  40. $consulta = mysql_query($sql) or die("Error en la sentencia SQL: ".$sql." - ".mysql_error());
  41.  
  42. if(mysql_num_rows($consulta)!=0)  
  43. {
  44. ?>
  45. <form action="index.php" name="form2" method="post">  
  46. <input type="submit" name="nuevo" value="Crear Nuevo Cliente" style="border-radius:15px" class="button large orange" />
  47. </form>
  48. <?php
  49. }else{
  50.     echo "No hay Resultados";
  51. }
  52. ?>

espero que te sirva!

Saludos

Última edición por Bugger; 17/05/2013 a las 08:23
  #21 (permalink)  
Antiguo 20/05/2013, 02:05
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: error If y else <fácil>

Cita:
Iniciado por Bugger Ver Mensaje
yo he copiado tú código tal cual estaba!

el caso es que debes, sacar tu SELECT * FROM tabla_X fuera de donde creas las cláusulas WHERE, donde pones los parámetros. Entonces sino hay parámetros te cargará todos los resultados - si hay parámetros entrará en tú IF y creará la cláusula WHERE.

algo así debería irte! es tu código algo modificado y optimizado, para comprobar las variables no debes poner tantos else if -

Código PHP:
Ver original
  1. <?php
  2. // Inicializamos la variable
  3. $clausula_where = "";
  4. // Esta funcion te devuelve WHERE o AND para montar tu clausula WHERE de la sentencia SQL
  5. function FWhere($clausula_where) { return ($clausula_where == '') ? ' WHERE ' : "$clausula_where AND "; }
  6.  
  7. // Comprobamos primer parámetro
  8. if(!empty($nombre)){
  9.     // Si existe miramos la funcion FWhere - para saber si hay que poner un WHERE o un AND a la clausula
  10.     $clausula_where = Fwhere($clausula_where) ." tb1.Nombre LIKE '%".$nombre."%' ";
  11. }
  12. // Comprobamos Segundo parámetro
  13. if(!empty($localidad)){
  14.     // Si existe miramos la funcion FWhere - para saber si hay que poner un WHERE o un AND a la clausula
  15.     // En este caso si existiera la variable anterior la funcion FWHERE te devolveria un AND
  16.      $clausula_where = Fwhere($clausula_where) ." tb1.Localidad LIKE '%$nombre%' ";
  17. }
  18. // Comprobamos Tercer parámetro
  19. if( !empty($provincia)){
  20.     // Si existe miramos la funcion FWhere - para saber si hay que poner un WHERE o un AND a la clausula
  21.     // En este caso si existiera alguna de las variables anteriores la funcion FWHERE te devolveria un AND
  22.      $clausula_where =  Fwhere($clausula_where) ." tb1.Provincia LIKE '%$provincia%' ";
  23. }
  24. // Comprobamos Cuarto parámetro
  25. if(!empty($cif)){
  26.     // Si existe miramos la funcion FWhere - para saber si hay que poner un WHERE o un AND a la clausula
  27.      // En este caso si existiera alguna de las variables anteriores la funcion FWHERE te devolveria un AND
  28.      $clausula_where =  Fwhere($clausula_where) ." tb1.CIF LIKE '%$nombre%' ";
  29. }
  30.  
  31.  // En este caso si existiera alguna de las variables anteriores la funcion FWHERE te devolveria un AND
  32. $clausula_where =  Fwhere($clausula_where)."  tb2.nom_usuario = '".$user."'";
  33. $clausula_where .= "  ORDER BY Nombre ASC";
  34.  
  35. // Creamos la Sentencia SQL  y le pasamos la variable clausula_where
  36. $sql= " SELECT * FROM lista_clientes as tb1 INNER JOIN usuario_zona as tb2  
  37.        ON tb1.Zona = tb2.Zona ".$clausula_where;
  38. // Para provar el codigo puedes imprimir la sentencia por pantalla para ver que sale
  39. echo $sql;
  40. $consulta = mysql_query($sql) or die("Error en la sentencia SQL: ".$sql." - ".mysql_error());
  41.  
  42. if(mysql_num_rows($consulta)!=0)  
  43. {
  44. ?>
  45. <form action="index.php" name="form2" method="post">  
  46. <input type="submit" name="nuevo" value="Crear Nuevo Cliente" style="border-radius:15px" class="button large orange" />
  47. </form>
  48. <?php
  49. }else{
  50.     echo "No hay Resultados";
  51. }
  52. ?>

espero que te sirva!

Saludos
Amigo Bugger, perfectísimo, ya decía yo que estaba escribiendo demasiado código con la consulta.
Ahora está todo más claro, he reparado un par de fallos que tenía como que en la parte de la consulta de localidad y cif habías dejado $nombre, he metido la sesión para que reconozca el usuario y me ha quedado esto.
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>San Lorenzo</title>
</head>

<body>

<?php
$link 
mysql_connect('localhost''root','') or die("Error, no se ha conectado B.D.");
$bd=mysql_select_db('clientes'$link) or die("Error, no se ha seleccionado B.D.");
session_start();
    
$user        =    $_SESSION['nom_usuario'];

$nombre        =    isset($_POST['nombre'])        ? $_POST['nombre']        : NULL;
    
$localidad    =    isset($_POST['localidad'])    ? $_POST['localidad']    : NULL;
    
$provincia    =    isset($_POST['provincia'])    ? $_POST['provincia']    : NULL;
    
$cif        =    isset($_POST['cif'])         ? $_POST['cif']         : NULL;
    
$user        =    $_SESSION['nom_usuario'];
    
$sql        =    isset($sql)                 ? $sql                    NULL;
    
$consulta    =    isset($consulta)            ? $consulta                NULL;
// Inicializamos la variable
$clausula_where "";
// Esta funcion te devuelve WHERE o AND para montar tu clausula WHERE de la sentencia SQL
function FWhere($clausula_where) { return ($clausula_where == '') ? ' WHERE ' "$clausula_where AND "; }
 
// Comprobamos primer parámetro 
if(!empty($nombre)){
    
// Si existe miramos la funcion FWhere - para saber si hay que poner un WHERE o un AND a la clausula
    
$clausula_where Fwhere($clausula_where) ." tb1.Nombre LIKE '%".$nombre."%' ";
}
// Comprobamos Segundo parámetro 
if(!empty($localidad)){
    
// Si existe miramos la funcion FWhere - para saber si hay que poner un WHERE o un AND a la clausula
    // En este caso si existiera la variable anterior la funcion FWHERE te devolveria un AND
     
$clausula_where Fwhere($clausula_where) ." tb1.Localidad LIKE '%".$localidad."%' ";
}
// Comprobamos Tercer parámetro
if( !empty($provincia)){
    
// Si existe miramos la funcion FWhere - para saber si hay que poner un WHERE o un AND a la clausula
    // En este caso si existiera alguna de las variables anteriores la funcion FWHERE te devolveria un AND
     
$clausula_where =  Fwhere($clausula_where) ." tb1.Provincia LIKE '%".$provincia."%' ";
}
// Comprobamos Cuarto parámetro
if(!empty($cif)){
    
// Si existe miramos la funcion FWhere - para saber si hay que poner un WHERE o un AND a la clausula
     // En este caso si existiera alguna de las variables anteriores la funcion FWHERE te devolveria un AND
     
$clausula_where =  Fwhere($clausula_where) ." tb1.CIF LIKE '%".$cif."%' ";
}
 
 
// En este caso si existiera alguna de las variables anteriores la funcion FWHERE te devolveria un AND
$clausula_where =  Fwhere($clausula_where)."  tb2.nom_usuario = '".$user."'"
$clausula_where .= "  ORDER BY Nombre ASC";
 
// Creamos la Sentencia SQL  y le pasamos la variable clausula_where
$sql" SELECT * FROM lista_clientes as tb1 INNER JOIN usuario_zona as tb2  
        ON tb1.Zona = tb2.Zona "
.$clausula_where;
// Para provar el codigo puedes imprimir la sentencia por pantalla para ver que sale
//echo $sql;
$consulta mysql_query($sql) or die("Error en la sentencia SQL: ".$sql." - ".mysql_error()); 
  
if(
mysql_num_rows($consulta)!=0)  
{
?>
<form action="index.php" name="form2" method="post">  
<input type="submit" name="nuevo" value="Crear Nuevo Cliente" style="border-radius:15px" class="button large orange" />
</form>
<?php
}else{
    
?>
    <form action="index.php" name="form2" method="post">  
<input type="submit" name="nuevo" value="Crear Nuevo Cliente" style="border-radius:15px" class="button large orange" />
</form>
    
    <?php
}
?>
<select name='clientes' size="5px" style="width:80%; font-size:22px;">

    <?php 
        
while($registro=mysql_fetch_assoc($consulta))
            {
?>
            <option value="<?php echo $registro['Nombre']; ?>"><?php echo $registro['Nombre']," ",$registro['Direccion']," ",$registro['Localidad']," ",$registro['Provincia'];  ?></option>
    
        <?php 
            
}
        
?>
    
   </select>

<?php //generaClientes();
        
exit();
        
?>


</body>
</html>
Problemas que tengo ahora:
1.- Cuando escribo algo en algún campo y luego lo borro manualmente, letra a letra y no queda ningún valor en ningún campo me aparece el siguiente error.
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/busqueda2.php on line 81

Se supone que si borro todos los campos debería de volver a salir la lista completa de clientes, pero no me aparece ningún cliente, además del error anterior.
2.- Que si se presiona INTRO que no haga nada, porque si estoy en el navegador y escribo algo en los campos, al presionar intro se va la consulta y me sale también el error de antes.

Un saludo y espero tu respuesta amigo!

Etiquetas: mysql, 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 12:14.