Foros del Web » Programando para Internet » PHP »

Sentencia SQL

Estas en el tema de Sentencia SQL en el foro de PHP en Foros del Web. Código: Código: $sql = mysql_query("SELECT * FROM PISO A LEFT JOIN ZONA B ON A.ZONA = B.ZONA WHERE A.GESTION = 'En venta' AND B.NOMBRE = ...
  #1 (permalink)  
Antiguo 11/11/2004, 13:04
 
Fecha de Ingreso: noviembre-2004
Mensajes: 133
Antigüedad: 13 años, 1 mes
Puntos: 0
Sentencia SQL

Código:
Código:
$sql = mysql_query("SELECT *
       FROM PISO A LEFT JOIN ZONA B ON A.ZONA = B.ZONA 
       WHERE A.GESTION = 'En venta' AND 
          B.NOMBRE = '$nom'
          ORDER BY A.ZONA ASC, A.ESTADO DESC, A.PRECIO ASC", $conexion);

Esta sentencia esta correcta no me da ningun error pero me pasa algo curioso, es lo siguiente la variable $nom le doy el siguiente valor: $nom = B.NOMBRE asi me escribe todos, pero para que lo haga tiene que ir escrita sin comillas es decir:


Código:
Código:
$sql = mysql_query("SELECT *
       FROM PISO A LEFT JOIN ZONA B ON A.ZONA = B.ZONA 
       WHERE A.GESTION = 'En venta' AND 
          B.NOMBRE = $nom
          ORDER BY A.ZONA ASC, A.ESTADO DESC, A.PRECIO ASC", $conexion);
bien, esa variable coge losdatos de un form, en el form que en este campo coge los datos asi:


Código PHP:
Código:
<?php 
$zonas 
mysql_query("SELECT NOMBRE FROM ZONA "$conexion); //aqui coge las zonas
?>
        </td>
        <td><select name='zona'>
    <?php
if ($nom != "")

printf("<option>$nom</option>");//aqui pone la ultima zona q escogio
}
$no ""//aqui pone una en blanco que su valor seria B.NOMBRE
printf("<option>$no</option>");
while(
$row mysql_fetch_array($zonas)) { 
  
$nom $row["NOMBRE"]; 
printf("<option>$nom</option>");//cargo la lista con las zonas
    
}?>
          </select>

bien pues si pincho en cualquier zona que no sea la que esta en blanco me da error, y lo que antes comentaba de las comillas que no tiene sentido tampoco, que estoy haciendo mal?¿ porque no me funciona con y sin comillas y porque si escojo otra zona que no se la que esta en blanco me lo hace mal, al principiom de la pagina hago esto para introducirle el valor a $nom:


Código:
Código:
$nom = $_POST['zona'];
if ($nom == "")
   {echo ("sin zona ");
    $nom = "B.NOMBRE";
   }
Un saludo y gracias de antemano.
  #2 (permalink)  
Antiguo 11/11/2004, 13:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Deberías hacer algunas validaciones ..

Ejemplo:

Si no hay elementos en tu lista (bajo el filtrado de la zona elegida) .. entonces no generes tu lista o bien muestra un elemento "no hay resultados".

Código PHP:
if (mysql_num_rows($zonas) > 0){
  while(
$row mysql_fetch_array($zonas)) { 
      
$nom $row["NOMBRE"]; 
      
printf("<option>$nom</option>");//cargo la lista con las zonas 
    
}
} else {
     echo 
"<option>No hay resultados</option>";

por otro lado .. deberías usar value en tus option . .aunque sea lo mismo que el valor que presentas en la lista:

echo "<option value="$nom">$nom</option>";

Y no se vé donde haces <select name="nose"> ni donde lo cierras </select>

Un saludo,
  #3 (permalink)  
Antiguo 11/11/2004, 13:27
 
Fecha de Ingreso: diciembre-2003
Mensajes: 23
Antigüedad: 14 años
Puntos: 0
¿Podrías concretar a que te refieres cuando dices que "te da error" al seleccionar una opción que no esta en blanco?

Asi de entrada lo que creo que no esta bién en el código es que habría que darle valores a los option que al fin de al cabo es lo que se envía del formulario, y con lo que luego supongo haces la consulta:

Código HTML:
<option value="1">valor 1</option> 
Un saludo
  #4 (permalink)  
Antiguo 12/11/2004, 02:22
 
Fecha de Ingreso: noviembre-2004
Mensajes: 133
Antigüedad: 13 años, 1 mes
Puntos: 0
Si era por el value. Pero sigue passando lo siguiente y no entiendo pq si pongo en el select

Código:
B.NOMBRE= '$nom'
funciona cuando hay una zona elegida y en cambio si pongo:

Código:
B.NOMBRE= $nom
funciona cuando no hay una zona elegida, es decir yo antes regojo la varibale $nom y hago esto:

Código:
 If ($nom == "")
                   {
                          $nom = "B.NOMBRE";
                    }
Y en la caja de texto aparece perfectamente escrito, pq sucede esto.


Graciasy saludos!!
  #5 (permalink)  
Antiguo 12/11/2004, 03:15
 
Fecha de Ingreso: noviembre-2004
Mensajes: 133
Antigüedad: 13 años, 1 mes
Puntos: 0
Como se pueden meter ifs dentro de la consulta?¿ puedo conparar el if es decir el bucle que hacia fuera pa validar meterlo dentro asi si $nom = '' escribe B.NOMBRE y sino ....

se puede hacer esto, salu2
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 01:29.