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 .
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde
Mes Articles/Critiques :
Merise - Guide pratique
PHPExcel
PostgreSQL : Administration et exploitation d'une base de données
PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle
Bonjour et merci pour ta réponse.
Tu pourrais m'écrire le code pour être plus explicite?![]()
Bonsoir,
oci_num_rows
A+.
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde
Mes Articles/Critiques :
Merise - Guide pratique
PHPExcel
PostgreSQL : Administration et exploitation d'une base de données
PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle
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);
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde
Mes Articles/Critiques :
Merise - Guide pratique
PHPExcel
PostgreSQL : Administration et exploitation d'une base de données
PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle
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 ;
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde
Mes Articles/Critiques :
Merise - Guide pratique
PHPExcel
PostgreSQL : Administration et exploitation d'une base de données
PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle
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 {...}
Partager