Foros del Web » Programando para Internet » PHP »

in_array php

Estas en el tema de in_array php en el foro de PHP en Foros del Web. Estimados, junto con saludar les quiero solicitar su ayuda nuevamente, ir al grano. resulta que tengo una consulta sql con PDO que me retorna un ...
  #1 (permalink)  
Antiguo 07/03/2017, 16:02
 
Fecha de Ingreso: diciembre-2008
Mensajes: 88
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta in_array php

Estimados,
junto con saludar les quiero solicitar su ayuda nuevamente, ir al grano. resulta que tengo una consulta sql con PDO que me retorna un arreglo con la informacion con este codigo:
Código PHP:
public function getValidaDeudasNfc($p_idnfc)
    {
        try
        {                                                          
            
$stmt $this->conn->prepare("CALL getvalidadeudasnfc(:p_idnfc);");
            
$stmt->bindparam(":p_idnfc",$p_idnfc);
            
$stmt->execute();
            
$row $stmt->fetchAll();
            return 
$row;
        }
        catch(
PDOException $ex)
        {
            return 
$stmt;
            echo 
$ex->getMessage();
        }
    } 
y si asigno el resultado de la funcion a una variable y la imprimo obtengo este arreglo:
Código PHP:
$deudasNFC=$admin_nfc->getValidaDeudasNfc($p_idnfc);
print_r($deudasNFC); 
Array ( [0] => Array ( [deuda_iddeuda] => 4092 [0] => 4092 ) [1] => Array ( [deuda_iddeuda] => 4091 [0] => 4091 ) [2] => Array ( [deuda_iddeuda] => 4093 [0] => 4093 ) [3] => Array ( [deuda_iddeuda] => 4095 [0] => 4095 ) )

hasta aqui todo bien, el problema viene cuando tengo un arreglo con valores que traigo desde la capa del cliente los cuales quiero saber si estan en el array anterior pero aun que se que existen in_array dice que no existen.

esto trae el array desde la capa cliente:

Array ( [0] => 4091 [1] => 4092 [2] => 4093 [3] => 4095 )

y aqui el if que los compara:

Código PHP:
foreach ($p_iddeuda as $valor
            {
                
                
                if(
in_array($valor$deudasNFC['deuda_iddeuda'])==true)
                {
                    echo 
"SI existe \n";
                }
                else
                {
                    echo 
"no existe \n ";
                    
                }
            } 
  #2 (permalink)  
Antiguo 07/03/2017, 17:37
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: in_array php

Hola, no te funciona porque lo que te trae el fetchAll del PDO es un array con elementos cuyo valor es otro array, deberias recorrer aquel array mas no el de la capa clientes:


Código PHP:
Ver original
  1. foreach($deudasNFC as $deuda) {
  2.     if (in_array($deuda['deuda_iddeuda'], $p_iddeuda) === TRUE) {
  3.         echo "SI existe deuda {$deuda['deuda_iddeuda']}\n";
  4.     }
  5.     else {
  6.         echo "No existe deuda {$deuda['deuda_iddeuda']}\n";
  7.     }
  8. }

Pruebalo.

Etiquetas: pdo, sql, variable
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 09:30.