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 :

enregistrement des résultat d'une requete dans des variables [ODBC]


Sujet :

PHP & Base de données

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Points : 65
    Points
    65
    Par défaut enregistrement des résultat d'une requete dans des variables
    Bonjour,
    Je réalise une interface avec php5 et en utilisant odbc pour acceder à ma base ACCESS.

    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $requeteN="select numDossierPROLOG from questionnaire where IdPatient=$IdPat";
    		$resultatN=odbc_exec($connexion,$requeteN);		
    		while(odbc_fetch_into($resultatN, $num))
    		{
    			$dossier = $num[0];
    			print $dossier."<br>";			
    		}
    Là il m'affiche bien tous les résultats de ma requete.
    Je voudrais maintenant enregistrer tous ces résultats dans des variables. Comment pourrais-je faire?

    Si je fais
    odbc_fetch_row($resultatN);
    il ne me retourne que le premier résultat trouvé.

    Si je fais
    odbc_fetch_row($resultatN, 1);
    il me retourne le premier puis le second (ici le dernier aussi) n fois.

    Merci de vos réponses

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Tu peux construire ton tableau toi-même dans ta boucle qui parcourt les résultats. Le exec renvoie une ressource, le into ou row permet de la parcourir, mais je sais pas si il y a une fonction toute prête qui te mettrais tout ça au propre dans un tableau directement.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Points : 65
    Points
    65
    Par défaut
    J'ai pensé à ça aussi, mais j'ai pas compris comment faire.
    J'ai essayer de plusieurs manière mais je tourne en rond.

    Comment récuperer le nombre de lignes ou de tuples dans le résultat?
    Comment récuperer les valeurs stockées dans $num[0] par exemple?

    Merci

  4. #4
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Pour le nombre de lignes dans le résultat, il y a odbc_num_rows
    http://fr.php.net/manual/fr/function.odbc-num-rows.php

    Pour parcourir les résultats il faut regarder dans la doc il y a pas mal de fonctions odbc_XXX dans lesquelles tu devrais trouver ton bonheur...


    Si dans ton while tu fais juste un truc du genre $res[] = $num ça marche pas ? pas de tableau à deux dimensions au final ?
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Points : 65
    Points
    65
    Par défaut
    je crois que la phrase n'est pas finie!!

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Points : 65
    Points
    65
    Par défaut
    ici odbc_num_row() retourne -1

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Points : 65
    Points
    65
    Par défaut
    ce que j'ai trouvé, c'est que les fonction odbc_.... parcours le resultat provenant de odbc_exec(),
    je n'ai pas trouvé de fonction qui parcours directement un tableau, ou une fonction qui retourne la taille d'un tableau.

    desesperé!!

  8. #8
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par maraly
    ici odbc_num_row() retourne -1
    Si il renvoie -1 c'est qu'il y a une erreur (cf doc), tu lui files bien $resultatN en paramètre ?

    Edit : en fait apparement ça dépend aussi du pilote odbc
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  9. #9
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par maraly
    je n'ai pas trouvé de fonction qui parcours directement un tableau, ou une fonction qui retourne la taille d'un tableau.
    odbc_fetch_array permet de parcourir tes enregistrements en les mettans dans un tableau.
    Pour avoir le nombre d'éléments d'un tableau c'est count.
    Pour le nombre de colonnes de ta ressource c'est odbc_num_fields.

    Ca suffit toujours pas
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Points : 65
    Points
    65
    Par défaut
    C'est un casse-tête pour moi!

    Si je fais comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    while ($entree = odbc_fetch_array($resultatND))
    {				
         print count($entree["date"])."<br>";
         //print $entree["date"]."<br>";
         while(list($cle,$val) = each($entree))
         {  					
             $$cle = $val;						
             print $cle."<br>";
             print $val."<br>";
          }				
    }

    J'ai les clés et leurs valeurs correspondates. Mais ça ne me résouy pas mon problème.

    Pour la première ligne de résultat, j'ai les même clés que la 2ème ligne et ainsi de suite. odbc_fetch_array() etant une fonction que lit une ligne et la met dans la table. Quand il va à la 2ème ligne, il met dans la table en écrasant le premier (ou est-ce que je me trompe?).

    Mon but étant de savoir si la date saisie par le client correspond à une des dates récuperées par la requete.

  11. #11
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mon but étant de savoir si la date saisie par le client correspond à une des dates récuperées par la requete.
    Si tu veux juste faire ça c'est au niveau de la requête qu'il faut intervenir. faire quelque chose dans cette idée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT id FROM table WHERE date=" . $date_a_tester
    Puis tester si il y a une ligne ou pas dans le résultat...
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

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

Discussions similaires

  1. [AC-2003] Enregistrer le résultat d'une requete dans une table
    Par JOSTAGE dans le forum Access
    Réponses: 3
    Dernier message: 31/07/2014, 14h46
  2. [MySQL] Insertion dans une table des résultats d'une requete
    Par PooSoft dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 01/06/2012, 14h22
  3. [AC-97] Création d'une table à partir des résultats d'une requete analyse croisée
    Par docjo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 11/11/2009, 21h46
  4. Réponses: 0
    Dernier message: 13/08/2007, 12h42
  5. Somme des résultat d'une requete
    Par Nathan dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/06/2006, 08h45

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