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 29/01/2007, 15h16   #1
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 122
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 122
Points : 32
Points : 32
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 :
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
maraly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 16h10   #2
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 15h56   #3
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 122
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 122
Points : 32
Points : 32
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
maraly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 16h02   #4
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 16h03   #5
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 122
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 122
Points : 32
Points : 32
je crois que la phrase n'est pas finie!!
maraly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 16h14   #6
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 122
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 122
Points : 32
Points : 32
ici odbc_num_row() retourne -1
maraly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 16h19   #7
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 122
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 122
Points : 32
Points : 32
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é!!
maraly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 16h25   #8
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 16h30   #9
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2007, 13h56   #10
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 122
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 122
Points : 32
Points : 32
C'est un casse-tête pour moi!

Si je fais comme ça

Code :
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.
maraly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2007, 14h24   #11
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Code :
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 :
"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)
Amara 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 01h14.


 
 
 
 
Partenaires

Hébergement Web