IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Equivalent à mysql_data_seek() ? [ODBC]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    Par défaut Equivalent à mysql_data_seek() ?
    Bonjour,

    Pour compenser un problème lié au driver odbc (je me connecte à SqlServer2005) :
    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.
    Je me suis refait ma propre fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    protected function _num_rows($result)
    	{
    		$i=0;
    		while($ligne = odbc_fetch_row($result)){
    			$i++;	
    		}
    		if( $i == 0 )	return -1;
    		else return $i;	
    	}
    le probleme : odbc_fetch_row() lit le 1er résultat contenu dans $result puis place le curseur sur le 2eme résultat et ainsi de suite. Donc, une fois que je connais le nombre de résultat contenu dans $result, j'ai l'air malin, car je ne peux plus avoir les résultats de ma requête......

    Avez vous une astuce qui me permettrai de passer outre?

    Je voudrais dans la mesure du possible ne pas faire 2 requêtes, car je trouve cela inutile. Au pire, je veux bien coder une fonction odbc_data_seek(), si vous avez un bon tuto sur la manipulation de resultat de requete.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    Par défaut
    J'lai bien feinté tiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	protected function _num_rows($result)
    	{
    		$i=0;
    		while($ligne = odbc_fetch_row($result)){
    			$i++;	
    		}
    		if( $i == 0 )	return -1;
    		else {
    			// Lit la ligne 0 du résultat qui n'existe pas, puis place le curseur sur le 1er résultat
    			// La prochaine lecture du resultat démarera sur le bon enregistrement
    			odbc_fetch_row($result,0);
    			return $i;	
    		}
    	}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/11/2002, 09h12
  2. equivalent à explode?
    Par djridou dans le forum Langage
    Réponses: 3
    Dernier message: 28/08/2002, 11h01
  3. [Kylix] Equivalent ShellExec en CLX
    Par Anonymous dans le forum EDI
    Réponses: 7
    Dernier message: 14/08/2002, 11h55
  4. Equivalent à ExeName pour une DLL
    Par Smortex dans le forum Langage
    Réponses: 7
    Dernier message: 16/07/2002, 21h07
  5. [Kylix] equivalent winsock avec kylix
    Par Victor dans le forum EDI
    Réponses: 2
    Dernier message: 08/05/2002, 07h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo