Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & ODBC
PHP & ODBC Forum d'entraide sur ODBC avec PHP. Avant de poster -> FAQ ODBC
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/06/2006, 11h50   #1
Nouveau Membre du Club
 
Avatar de Artusamak
 
Inscription : mai 2006
Messages : 76
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 76
Points : 30
Points : 30
Par défaut Compter le nombre de résultats

Bonjour à tous, j'utilise ODBC pour faire l'interface entre mon source et ma BDD Access et j'ai un petit soucis.

Je voudrais calculer le nombre de résultats d'une requête. J'ai utilisé odbc_num_rows() sauf que la fonction me renvoie une erreur (valeur : -1).

Voilà le source :

Code :
1
2
3
4
5
6
7
8
9
10
 
 
		$connexion=odbc_connect("BaseEtude","","");
		$requete="Select * From Operation Where Reference='$param_reference' ORDER BY DateDebut, Temps, Initiales";
		$retour=odbc_exec($connexion,$requete);
		echo "<p>Nombre de lignes : ".$nbr_lignes=odbc_num_rows($retour)."</p>";
		while(odbc_fetch_row($retour))
		{
			echo "<tr><td>".odbc_result($retour,"DateDebut")."</td></tr>";
		}

Si vous avez une explication, je suis preneur =) Merci
Artusamak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 11h56   #2
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Code :
1
2
3
4
5
6
7
8
$connexion=odbc_connect("BaseEtude","","");
		$requete="Select * From Operation Where Reference='$param_reference' ORDER BY DateDebut, Temps, Initiales";
		$retour=odbc_exec($connexion,$requete);
		echo "<p>Nombre de lignes : ".$nbr_lignes=odbc_num_rows($retour)."</p>";
		while($row=odbc_fetch_row($retour))
		{
			echo "<tr><td>".$row['DateDebut']."</td></tr>";
		}

essaye comme ca plutot
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 13h31   #3
Nouveau Membre du Club
 
Avatar de Artusamak
 
Inscription : mai 2006
Messages : 76
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 76
Points : 30
Points : 30
Ça ne fonctionne pas mieux =)

odbc_num_rows renvoit toujours -1 (normal le code n'a pas changé ^^)
Artusamak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2006, 17h44   #4
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
alors si je comprends bien le problème vient de là :
Code :
echo "<p>Nombre de lignes : ".$nbr_lignes=odbc_num_rows($retour)."</p>";
Ton $retour est pas vide ?

Et en passant dans la doc, qu'est ce que je vois :

Citation:
odbc_num_rows() retourne le nombre de lignes dans un résultat ODBC. odbc_num_rows() retournera -1 en cas d'erreur. Pour les commandes INSERT, UPDATE et DELETE, odbc_num_rows() retourne le nombre de ligne affectées. Pour les commandes SELECT, cela PEUT être le nombre de lignes disponibles, mais ce n'est pas certain.
Note: odbc_num_rows() après un SELECT retournera -1 avec de nombreux pilotes.
mais surtout surtout ceci :
Citation:
Note: odbc_num_rows() après un SELECT retournera -1 avec de nombreux pilotes.
Donc tu as la réponse à ta question

Sinon tu as une autre solution c'est de rajouter un count(*) dans ta requete ou une nouvelle requete
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2006, 23h33   #5
Nouveau Membre du Club
 
Avatar de Artusamak
 
Inscription : mai 2006
Messages : 76
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 76
Points : 30
Points : 30
Ah ça c'est pas bête le coup du COUNT ^^ Merci du tuyau. J'avais matté la doc, mais je n'avais pas vu que cela pouvait provenir du pilote.

Je vais éviter de changer de pilote, c'est une solution un peu foireuse ^^

Je teste le COUNT je vous tient au courant. Merci tu me sors de l'impasse

==[EDIT]==

Ça fonctionne. Merci =)
Artusamak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2006, 12h03   #6
Candidat au titre de Membre du Club
 
Inscription : juin 2003
Messages : 50
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 50
Points : 14
Points : 14
Envoyer un message via MSN à Félix62
bonjour,

même cas de figure seulement le count me renvoie :
Citation:
Resources id#4
avec :
Code :
1
2
3
4
 
$sql="SELECT count(*) FROM Tabcarto WHERE (((Tabcarto.DATEREAL)>#12/31/2005#) AND ((Tabcarto.ETAT)='document de travail'))";
$total = odbc_do($cnx_verif,$nbenrg);
echo 'total ='.$total;
j'ai d'ailleurs lancé un post à ce sujet ...
Félix62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h14.


 
 
 
 
Partenaires

Hébergement Web