2010-04-08 4 views
0

Ma procédure PL/SQL renvoie un curseur. Il retourne toujours des données. Je récupère (oci_fetch_assoc) et l'enregistre dans un tableau. Si les résultats ont été trouvés, les clés du tableau seront des chaînes. Si le curseur n'a pas trouvé de données, il retournera la valeur 0, ainsi la clé du tableau sera numérique.Condition pour un tableau avec une chaîne en tant que clé

while($data = oci_fetch_assoc($cursor)){ 
    if(!isset($data[0])){ 
     ... 
    } 
... 
... 
} 

Quelle est la meilleure façon de vérifier que la matrice n'est pas seulement 0, mais contient des données?

Merci

+0

Je ne sais pas si je lis la bonne question, isset() vérifie si votre tableau [0] a une valeur attachée: S – studioromeo

+0

désolé ... ma procédure renvoie toujours un curseur. Quand j'ouvre mon premier curseur, je recueille des données. Après cela, je vérifie si des lignes ont été trouvées. S'il n'y en a pas, je vais ouvrir le curseur avec une instruction Select différente, qui retourne toujours 0. Donc, en PHP, j'obtiendrai toujours un tableau avec de la valeur. Le but de ma condition est de savoir si le tableau n'a pas seulement 0 comme valeur $ array [0] = 0). – Kel

Répondre

1

Voici ma solution:

if($data != array(0 => "0")){ 

et cela fonctionne

0
if(!empty($data[0])) { ... } 
+0

désolé ... ma procédure renvoie toujours un curseur. Quand j'ouvre mon premier curseur, je recueille des données. Après cela, je vérifie si des lignes ont été trouvées. S'il n'y en a pas, je vais ouvrir le curseur avec une instruction Select différente, qui retourne toujours 0. Donc, en PHP, j'obtiendrai toujours un tableau avec de la valeur. Le but de ma condition est de savoir si le tableau n'a pas seulement 0 comme valeur $ array [0] = 0). – Kel

0

Vous pouvez utiliser le '===' pour voir si les données $ [0] est égal à 0. Comme:

if($data[0]===0) { 
    // It really is the number 0 
} 
+0

désolé ... ma procédure renvoie toujours un curseur. Quand j'ouvre mon premier curseur, je recueille des données. Après cela, je vérifie si des lignes ont été trouvées. S'il n'y en a pas, je vais ouvrir le curseur avec une instruction Select différente, qui retourne toujours 0. Donc, en PHP, j'obtiendrai toujours un tableau avec de la valeur. Le but de ma condition est de savoir si le tableau n'a pas seulement 0 comme valeur $ array [0] = 0). – Kel

+0

OK. Mise à jour ma réponse – zaf

0

oci_fetch_assoc renvoie un assoc tableau iated, c'est-à-dire que les noms de colonnes sont des index dans le tableau.

essayer un de ces:

($data['firstColumn'] === 0) 
(reset($data) === 0) 

où « firstColumn » est le nom réel de la première colonne

Questions connexes