Bonjour.
J'exécute une requête SELECT sur une base oracle depuis PHP.
Comment fait-on pour savoir si le résultat est vide?
J'ai bien essayé la fonction oci_num_rows mais elle ne fonctionne pas avec une requête SELECT.
Merci.
Bonjour.
J'exécute une requête SELECT sur une base oracle depuis PHP.
Comment fait-on pour savoir si le résultat est vide?
J'ai bien essayé la fonction oci_num_rows mais elle ne fonctionne pas avec une requête SELECT.
Merci.
Si la tableau retourné par ton Query est supérieur à 0, alors la requête n'est pas vide .
Bonjour et merci pour ta réponse.
Tu pourrais m'écrire le code pour être plus explicite?![]()
Bonsoir,
oci_num_rows
A+.
Peut-on voir ton code qui ne fonctionne pas avec oci_num_rows?
A+.
Voici le code qui ne marche pas (ça indique que le login n'est pas dans la base alors qu'il y est)
et voici ce qu'on peut lire dans la documentation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $cursor=oci_parse($connexion,"SELECT * FROM RELUTILISATEURS WHERE UTILISATEUR_LOGIN='".$login."'"); oci_execute($cursor); if(oci_num_rows($cursor)>0) echo "déjà dans la base"; else echo "pas dans la base"; oci_free_statement($cursor);
Sinon, j'ai une autre méthode:Note:
Cette fonction ne retourne pas le nombre de lignes sélectionnées. Pour les commandes de type SELECT, cette fonction va retourner le nombre de ligne qui ont été lues dans le buffer avec oci_fetch*().
Mais c'est peut-être inefficace?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $cursor=oci_parse($connexion,"SELECT COUNT(*) AS NBRESULTATS FROM RELUTILISATEURS WHERE UTILISATEUR_LOGIN='".$login."'"); oci_execute($cursor); if (oci_fetch_object($cursor)->NBRESULTATS>0) $messageerreurs.="Le login existe déjà. Choisissez-en un autre.<br>"; oci_free_statement($cursor);
Première chose :
Pourquoi utiliser le * , alors que visiblement du ne retourne qu'un seul éléments.
D'après la doc ton code devrais être ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $cursor=oci_parse($connexion,"SELECT UTILISATEUR_LOGIN FROM RELUTILISATEURS WHERE UTILISATEUR_LOGIN='".$login."'"); oci_execute($cursor); $result = oci_fetch_object($cursor); if (oci_num_rows($result)>0) $messageerreurs.="Le login existe déjà. Choisissez-en un autre.<br>"; oci_free_statement($cursor);
Bonjour.
J'ai bien tapé ton code mais ça ne marche pas: il ne reconnaît pas un login qui est déjà dans la base.![]()
Bon recommençon depuis le début.
Cela donne quoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $sql = "SELECT UTILISATEUR_LOGIN FROM RELUTILISATEURS WHERE UTILISATEUR_LOGIN='".$login."'" echo $sql ;
tu peu faire une requeteet tu récupères la valeur dans variable et tu fait une condition si
Code : Sélectionner tout - Visualiser dans une fenêtre à part select count(*) from ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part if(!empty(variable){...}else {...}
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager