Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
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/09/2007, 10h01   #1
Invité régulier
 
Inscription : novembre 2004
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 26
Points : 7
Points : 7
Par défaut probleme de tableau

Bonjour,

cela fait plusieurs jours que je cherche et je ne trouve pas le probleme, car je dois faire fonctionner mon probleme pour lundi matin
Je m'explique

Je veux afficher dans toutes les lignes, une liste déroulante qui s'allimente automatiquement avec une table de critere
Je fournis juste la partie qui me pose probleme car quand j'enleve cette liste déroulante, le resultat fonctionne.

voici mon source :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
$sql="SELECT carnet_details.idcarnet,carnet_details.id as idtmp,carnet_details.idrubrique,carnet_details.observation,carnet.id,carnet.carnetclef 
	FROM carnet,carnet_details  
	WHERE carnet.id=carnet_details.idcarnet AND carnet.id='2' ";
 
	$qid=$cnx->prepare($sql);
	$qid->execute();
 
while ($row=$qid->fetch(PDO::FETCH_ASSOC))  
{ 
	$sql="SELECT COUNT(*) FROM rubrique WHERE iduser='1' ORDER BY nom";
	$rubrique=$cnx->prepare($sql);
	$rubrique->execute();
 
	if ($rubrique->fetchColumn()>0)
	{
	$sql="SELECT id,iduser,nom FROM rubrique WHERE iduser='1' ORDER BY nom";
	$rubrique=$cnx->prepare($sql);
	$rubrique->execute();
		echo "<select name=\"idrubrique[]\">";
		echo ligne_selected(" ","-1",$frm['idrubrique'][$i]);
 
		while( $row2=$rubrique->fetch(PDO::FETCH_ASSOC) )       
		{
			echo "<option value=".$row2['id'];
			if ($row2['id']==$row['idrubrique']) echo " SELECTED ";
			echo ">".$row2['nom']."</option>";
		}
		echo "</select>";  
 
	}
}
et j'obtiens le résultat suivant :

Citation:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.' in L:\www\application\essai.php:98 Stack trace: #0 L:\www\application\essai.php(98): PDOStatement->execute() #1 {main} thrown in L:\www\application\essai.php on line 98
je ne comprends pas le probleme

Merci par avance
hellosct1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2007, 11h04   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Avez-vous essayé de faire ce qui est indiqué à savoir spécifier le deuxième paramètre de la méthode prepare tel que array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => TRUE) probablement à la requête précédente ou de plus haut niveau ?

Il serait bon à l'avenir d'indiquer quelle ligne correspond au message d'erreur obtenu
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2007, 13h00   #3
Invité régulier
 
Inscription : novembre 2004
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 26
Points : 7
Points : 7
Bonjour

l'erreur vient de la ligne

Code :
1
2
 
$rubrique->execute();
le 1er qui verifie le nombre de ligne

meme si j'enleve ce test, le probleme est présent apres

sinon j'ai essayé la fonction indiquée, mais je n'ai pas su l'utiliser

merci par avance
hellosct1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2007, 13h41   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Code :
$qid = $cnx->prepare($sql, array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => TRUE));
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2007, 00h15   #5
Invité régulier
 
Inscription : novembre 2004
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 26
Points : 7
Points : 7
Bonjour

j'ai ouvert une deuxieme connexion pour gerer la liste déroulante
je trouve cela pas propre, mais bon, ca fonctionne
c'est le principal

merci
hellosct1 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 06h17.


 
 
 
 
Partenaires

Hébergement Web