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 :

[Access] odbc_result fait sauter la première ligne de odbc_result_all [ODBC]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par défaut [Access] odbc_result fait sauter la première ligne de odbc_result_all
    Je voudrais savoir s'il existe un résultat de ma requête pour faire différentes affichages en fonction de ça. J'utilise odbc_result pour tester cela mais le problème c'est que s'il y a bien des résultats, odbc_result_all() ne renvoie pas la premiere ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    $ObliQ="select numDossier from questionnaire";
     
    	$Obli=odbc_exec($connexion, $ObliQ) or die (print odbc_error());
    	//odbc_result_all($Obli); //affiche à partir du premier dossier
    	$dossier=odbc_result($Obli, "numDossier");
     
    	if ($dossier == "")
    	{
    		print ("il n'y a pas de dossier");
    	}
    	else
    	{
    		print ("Le numéro de dossier : ".$dossier);
    		odbc_result_all($Obli);		
    	}
    Ici il y a 8 dossier
    et il affiche

    Le numéro de dossier : 20070001
    numDossier
    20070002
    20070003
    20070004
    20070005
    20070006
    20070007
    20070008

    pourtant le odbc_result_all hors de la boucle affiche bien les dossiers à partir de 20070001.

    Ce que je ne comprend pas.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut

    Je ne maitrise pas du tout odbc, mais le même genre de problème se pose avec mysql

    Lorsque tu fais result_all, ça te renvoie tous les résultats qui n'ont pas encore été extraits. Or ton premier résultat est déjà extrait par un result juste avant. Donc il t'affiche tous les résultats à partir du 2e.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par défaut
    Merci de cette information.

    Quelle alternative alors pour avoir tout le résultat de la requête.

    Au fait je fais des extractions de données en fonction de plusieurs critères choisies par l'utilisateur. Et j'affiche les résultats dans un fichier csv. Je fais ce test pour que quand il n'y a pas de résultat, ça ne créer pas de fichier csv mais une autre page affichant qu'il n'y a pas de résultat correspondant aux critères.

    odbc_num_rows() ici renvoie -1 donc je ne peut pas l'utiliser.

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Comme Celira, je ne maitrise pas odbc, mais bon en lisant la doc là il semble effectivement que odbc_num_rows() renvoie -1 avec certains drivers dans le cas d'un SELECT.
    Donc tu as plusieurs possibilités plus ou moins casse pieds (tout dépend de la complexité d'affichage que tu veux en fait)

    1/ tu utilises odbc_next_result() dans une boucle while et pour chaque ligne tu écris en sortie dans ton csv.

    2/ tu bricoles : la première ligne, si y en a une tu la sors "a la main" dans ton fichier et tu utilises odb_result_all() pour sortir le reste

    3/ Moins bien mais le plus simple bien sur (mais bon vraiment pas top, je la donne au cas où ca ne soit pas un projet important, du bricolage ou autre) :
    tu fais deux fois de suite la requete.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par défaut
    j'ai plusieurs requêtes et j'affiche leur résultats cote à cote dans un fichier csv . Si je fais avec odbc_next_result() ça va vraiment me compliquer ma vie.

    pour l'instant je vais voir comment faire autrement mais si quelqu'un a une idée, c'est le bienvenu.

    Merci

  6. #6
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Je n'ai pas bien compris ce que tu appelles "cote a cote dans un fichier csv" ?
    Peux tu donner un exemple de la sortie que tu voudrais et que tu n'arrives pas a obtenir avec un odbc_next_result() ?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/04/2015, 16h31
  2. Réponses: 2
    Dernier message: 18/08/2010, 14h56
  3. delete la premire ligne de ma base de donnees access
    Par skillipo dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 05/12/2007, 18h02
  4. [ADO][Access] Première ligne saute
    Par WebPac dans le forum Bases de données
    Réponses: 17
    Dernier message: 05/03/2007, 16h06
  5. Comment sélectionner la première ligne ?
    Par MartinH dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/04/2004, 11h56

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