Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Consulta conceptual sobre if

Estas en el tema de Consulta conceptual sobre if en el foro de PHP en Foros del Web. Al ejecutar un Select quiero que: Si tiene registros haga un proceso. Si no hay registros no hace nada. Tengo este código y si el ...
  #1 (permalink)  
Antiguo 30/04/2017, 12:46
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años, 7 meses
Puntos: 7
Pregunta Consulta conceptual sobre if

Al ejecutar un Select quiero que:
Si tiene registros haga un proceso.
Si no hay registros no hace nada.
Tengo este código y si el Select tiene registros debe entrar al If sino debe salir.

Código PHP:
$sql "SELECT campo1, campo2 FROM tabla WHERE campo3 = 'valor'";

if (
$stm $Conexion->query($sql)) {

    
//----- PROCESAR IF


Pero al ejecutarlo, si la tabla tiene o no tiene registros igual entra al If.
Por qué?
__________________
Todos somos iguales. NO! a la violencia de género.
  #2 (permalink)  
Antiguo 30/04/2017, 13:35
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.139
Antigüedad: 13 años, 8 meses
Puntos: 171
Respuesta: Consulta conceptual sobre if

Código PHP:
$sql "SELECT campo1, campo2 FROM tabla WHERE campo3 = 'valor'";

if (
$stm $Conexion->query($sql)){
    if (
$stm->num_rows >= 0) {
//IF QUE SE EJECUTA SI HAY AL MENOS 1 registro
    
}else{
//LO QUE PASA SI NO HAY REGISTROS
    
}

__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 30/04/2017, 14:07
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Respuesta: Consulta conceptual sobre if

Cita:
Iniciado por petit89 Ver Mensaje
Código PHP:
$sql "SELECT campo1, campo2 FROM tabla WHERE campo3 = 'valor'";

if (
$stm $Conexion->query($sql)){
    if (
$stm->num_rows >= 0) {
//IF QUE SE EJECUTA SI HAY AL MENOS 1 registro
    
}else{
//LO QUE PASA SI NO HAY REGISTROS
    
}

Hola,

Una pequeña corrección, petit89:

Código PHP:
Ver original
  1. if ($stm->num_rows > 0) {

o

Código PHP:
Ver original
  1. if ($stm->num_rows >= 1) {
  #4 (permalink)  
Antiguo 01/05/2017, 01:07
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años, 7 meses
Puntos: 7
Pregunta Respuesta: Consulta conceptual sobre if

Gracias por sus respuestas, pero eso significa que el
Código PHP:
if ($stm $Conexion->query($sql)){ 
está de más?
Por qué no simplemente verifico que hayan registros o no?
Código PHP:
if ($stm->num_rows >= 0) {
//IF QUE SE EJECUTA SI HAY AL MENOS 1 registro
    
}else{
//LO QUE PASA SI NO HAY REGISTROS
    

Por que el primer If solamente verifica que exista una variable respuesta. Cierto?
__________________
Todos somos iguales. NO! a la violencia de género.
  #5 (permalink)  
Antiguo 01/05/2017, 08:43
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.139
Antigüedad: 13 años, 8 meses
Puntos: 171
Respuesta: Consulta conceptual sobre if

No esta demas... quizas el if, pero la variable no; porque en ella se establece la conexión a la base de datos y consulta con los datos especificos a la tabla de la que deseas conocer la información, luego se re-utiliza para conocer en base a la SQL los registros que existen, quizas puedes sacarlo del if, dejandola separada.. pero no esta demas.

Código PHP:
Ver original
  1. $stm = $Conexion->query($sql); //ejecutas query con conexión
  2.  
  3. if ($stm->num_rows >= 1) {
  4. //IF QUE SE EJECUTA SI HAY AL MENOS 1 registro
  5.     }else{
  6. //LO QUE PASA SI NO HAY REGISTROS
  7. }

$stm siempre tendra almanecada la información que has requerido, no lo puedes eliminar
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #6 (permalink)  
Antiguo 01/05/2017, 12:38
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años, 7 meses
Puntos: 7
Pregunta Respuesta: Consulta conceptual sobre if

Cita:
Iniciado por petit89 Ver Mensaje
No esta demas... quizas el if, pero la variable no; porque en ella se establece la conexión a la base de datos y consulta con los datos especificos a la tabla de la que deseas conocer la información, luego se re-utiliza para conocer en base a la SQL los registros que existen, quizas puedes sacarlo del if, dejandola separada.. pero no esta demas.

Código PHP:
Ver original
  1. $stm = $Conexion->query($sql); //ejecutas query con conexión
  2.  
  3. if ($stm->num_rows >= 1) {
  4. //IF QUE SE EJECUTA SI HAY AL MENOS 1 registro
  5.     }else{
  6. //LO QUE PASA SI NO HAY REGISTROS
  7. }

$stm siempre tendra almanecada la información que has requerido, no lo puedes eliminar
Entonces la sentencia
Código PHP:
if ($stm $Conexion->query($sql)) 
significa que se está preguntado si se hizo la conexión con la base de datos y si la variable $stm existe o no. Cierto?
__________________
Todos somos iguales. NO! a la violencia de género.
  #7 (permalink)  
Antiguo 01/05/2017, 13:25
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: Consulta conceptual sobre if

En el primer if estarias verificando si la consulta se ejecuto correctamente, no la conexión

Código PHP:
Ver original
  1. $sql = "SELECT campo1, campo2 FROM tabla WHERE campo3 = 'valor'";
  2.  
  3. if ($stm = $Conexion->query($sql)){ // Esto verifica que la sentencia SQL se ejecuto corectamente
  4.     if ($stm->num_rows > 0) {
  5. //IF QUE SE EJECUTA SI HAY AL MENOS 1 registro
  6.     }else{
  7. //LO QUE PASA SI NO HAY REGISTROS
  8.     }
  9. }
  10. else{
  11.  // La consulta fallo por algun motivo
  12. }
__________________
Unset($vida['malRollo']);

Etiquetas: registro, select, sql, tabla
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 21:21.