Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 25/04/2011, 04h50   #1
Membre du Club
 
Inscription : janvier 2010
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 317
Points : 62
Points : 62
Par défaut Attribuer un ID à une table selon la selection

Bonjour.

Mon exposé :

J'ai 10 catégories
SELECT * FROM catégories WHERE id=8

J'ai le produit 45,66,99 et 299 dans la catégorie 8.
qui correspond à l'id : 45,66,99 et 299.

Comment attribuer un ID pour avoir une table temporaire

pour obtenir ceci :

45 a le ID 1
66 a le ID 2
99 a le ID 3
299 a le ID 4

et ensuite pouvoir afficher la liste?

Ma solution serait :

SELECT INTO tmptable * FROM catégories WHERE id=8

mais ça marche pas.

En passant, j'ai deux tables
- 10 catégories
- 1000 produits
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2011, 08h03   #2
Membre du Club
 
Inscription : janvier 2010
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 317
Points : 62
Points : 62
Par défaut 1/2 de la solution trouvée.

J'ai trouvé une solution :

Code :
1
2
3
4
5
6
CREATE temporary TABLE `origami`.`tmpbd` (
`idnum` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
) ENGINE = MYISAM 
AS 
(SELECT * FROM ori_comen WHERE idimg=45);
SELECT * FROM tmpbd;
Mais ceci va créer une table temporaire que je pourrais exploiter
le temps de la requête. J'ai testé avec phpmyadmin mais
pas testé en PHP. Je ne sais pas jusque où que la requête va
être exploitable.

Qu'arrive-t-il si y a plusieurs internautes qui va dans la page
qui exécute la requête?


Citation:
Envoyé par dancom5 Voir le message
Bonjour.

Mon exposé :

J'ai 10 catégories
SELECT * FROM catégories WHERE id=8

J'ai le produit 45,66,99 et 299 dans la catégorie 8.
qui correspond à l'id : 45,66,99 et 299.

Comment attribuer un ID pour avoir une table temporaire

pour obtenir ceci :

45 a le ID 1
66 a le ID 2
99 a le ID 3
299 a le ID 4

et ensuite pouvoir afficher la liste?

Ma solution serait :

SELECT INTO tmptable * FROM catégories WHERE id=8

mais ça marche pas.

En passant, j'ai deux tables
- 10 catégories
- 1000 produits
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2011, 08h50   #3
Membre du Club
 
Inscription : janvier 2010
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 317
Points : 62
Points : 62
Par défaut en PHP, ça marche pas.

Si quelqu'un a une solution, je suis preneur. Je m'en remets à un pro.
Merci.

J'ai ça comme message :
Citation:
Fatal error: Call to a member function fetch_object() on a non-object in ***\comments.php on line 23
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$resultat=$connexion->query("
 
CREATE temporary TABLE `origami`.`tmpbd` (
`idnum` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
) ENGINE = MYISAM 
AS 
(SELECT * FROM origami.ori_comen WHERE idimg=45);
(SELECT * FROM origami.tmpbd);
 
");
 
while ($ligne = $resultat->fetch_object()){
 
	echo $ligne->idnum.' - ';
 
}
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2011, 09h17   #4
Membre du Club
 
Inscription : janvier 2010
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 317
Points : 62
Points : 62
Par défaut Résolu pour la syntaxe, une question reste

J'ai séparé en deux requêtes et ça marche.

Une requête pour la création temporaire
et un pour l'affichage.

Mysql ne supporte pas les requêtes multiples
dans une seule.

La version finale :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$connexion->query("
	CREATE temporary TABLE `origami`.`tmpbd` (
	`idnum` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
	) ENGINE = MYISAM 
	AS 
	(SELECT * FROM origami.ori_comen WHERE idimg='$idimg');
");
 
$resultat=$connexion->query("
	(SELECT * FROM origami.tmpbd ORDER BY idnum DESC);
");
 
while ($ligne = $resultat->fetch_object()){
 
	echo $ligne->idnum.' - ';
	echo $ligne->name.' - ';
	echo $ligne->desc.' - ';
	echo $ligne->date.'<br>';
 
}
Ceci peut aider d'autres personnes vu les recherches non fructueuse sur Google. Alors, j'ai testé pendant plusieurs fois autant avec phpmyadmin pour la syntaxe mysql et en PHP.

La question en suspends, c'est :

Qu'arrive-t-il lorsqu'il y a plusieurs requêtes en même temps, je veux dire plusieurs visiteurs sur la page?

Et que faut-il faire s'il y a problème.
dancom5 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 06h48.


 
 
 
 
Partenaires

Hébergement Web