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 26/04/2011, 01h49   #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 Mysqli et UNION

Bonjour.

Il m'est impossible de faire ceci : Est-ce que c'est à cause de Mysqli?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$resultat=$connexion->query("
 
SELECT * FROM `ori_comen` WHERE idimg='$idimg'
UNION
SELECT * FROM `ori_images` WHERE id='$idimg'
 
");
 
while ($ligne = $resultat->fetch_object()){
 
	echo $ligne->desc;
 
}
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 02h22   #2
Membre confirmé
 
Avatar de polkduran
 
pablo duran
Consultant informatique
Inscription : décembre 2009
Messages : 148
Détails du profil
Informations personnelles :
Nom : pablo duran
Âge : 28
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2009
Messages : 148
Points : 266
Points : 266
les 2 tables ont les mêmes nombre et noms de colonnes ?
polkduran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 02h32   #3
Membre du Club
 
Inscription : janvier 2010
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 317
Points : 62
Points : 62
Citation:
Envoyé par polkduran Voir le message
les 2 tables ont les mêmes nombre et noms de colonnes ?
Table : ori_comen
Code :
id idimg name desc date
Table : ori_images
Code :
id img_id titre images desc
Je voulais dans un même while afficher
idimg, name, desc, date, images

desc est un type de contenu différent genre
description des images et l'autres le commentaire.

pourquoi dans "desc" des commentaires, je ne peux pas
mettre d'appostrophes. j'ai même pas mis encore de filtre

voici le code de base :

coment.php?id=66
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
33
34
$connexion = new mysqli('localhost', 'root', 'asdf');
$connexion->select_db('origami');
 
if (mysqli_connect_errno()) {
	die('Echec de connexion!<br>');
}
 
$idimg=intval($_GET['id']);
 
$resultat=$connexion->query("
 
SELECT * FROM `ori_comen` WHERE idimg='$idimg'
 
");
 
while ($ligne = $resultat->fetch_object()){
 
	echo $ligne->name.' · ';
	echo $ligne->desc.' · ';
	echo $ligne->date;
	echo '<br>';
}
 
?>
 
<form method="POST" action="coment_add.php">
 
<input type="hidden" name="id" value="<?php echo $idimg; ?>">
 
Name:<br><input name="name" size="80"><br>
Desc:<br><input name="desc" size="80"><br>
 
<input type="submit" name="submit" value="update">
</form>
coment_add.php :
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
<?php
$connexion = new mysqli('localhost', 'root', 'asdf');
$connexion->select_db('origami');
 
if (mysqli_connect_errno()) {
	die('Echec de connexion!<br>');
}
 
$idimg=intval($_POST['id']);
$name=$_POST['name'];
$desc=$_POST['desc'];
 
if(!empty($idimg) && !empty($name) && !empty($desc)){
 
	$resultat=$connexion->query("
		INSERT INTO `origami`.`ori_comen` (`id`,`idimg`,`name`,`desc`,`date`) 
		VALUES (NULL,'$idimg','$name','$desc',CURDATE())
	");
	echo 'Enregistrement effectué avec succès!<br>';
	echo '<meta http-equiv="refresh" content="1;url='.$_SERVER['HTTP_REFERER'].'">';
	exit();
}
else{
	echo 'Formulaire non rempli correctement<br>';
	echo '<meta http-equiv="refresh" content="1;url='.$_SERVER['HTTP_REFERER'].'">';
	exit();
}
 
?>
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 03h11   #4
Membre confirmé
 
Avatar de polkduran
 
pablo duran
Consultant informatique
Inscription : décembre 2009
Messages : 148
Détails du profil
Informations personnelles :
Nom : pablo duran
Âge : 28
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2009
Messages : 148
Points : 266
Points : 266
il me paraît que ori_images.id et ori_comen.idimg sont les mêmes, càd, que dans ori_comen idimg fait référence a id de ori_images, si c'est le cas une simple jointure suffit

Code php :
1
2
3
4
 
$q = "select *
from ori_images i, ori_comen c
where i.id = c.idimg and i.id = $idimg";

le select * te donnera les colonnes de ori_images et celles de ori_comen
polkduran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 03h19   #5
Membre du Club
 
Inscription : janvier 2010
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 317
Points : 62
Points : 62
Merci! Je vais essayer ça

Ce que je voulais faire c'est prendre 3 items dans la table ori_curen
et 1 item dans l'autre et afficher dans le même while.

Citation:
Envoyé par polkduran Voir le message
il me paraît que ori_images.id et ori_comen.idimg sont les mêmes, càd, que dans ori_comen idimg fait référence a id de ori_images, si c'est le cas une simple jointure suffit

Code php :
1
2
3
4
 
$q = "select *
from ori_images i, ori_comen c
where i.id = c.idimg and i.id = $idimg";

le select * te donnera les colonnes de ori_images et celles de ori_comen
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 13h52   #6
Membre confirmé
 
Avatar de polkduran
 
pablo duran
Consultant informatique
Inscription : décembre 2009
Messages : 148
Détails du profil
Informations personnelles :
Nom : pablo duran
Âge : 28
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2009
Messages : 148
Points : 266
Points : 266
le problème c'est qu'il me semble que ne peux pas limiter le nombre de résultats de chaque requête (à vérifier) donc, tu ne sauras pas combien de ori_comen et de ori_images tu auras dans la requête, je pense que c'est mieux de séparer les deux requêtes et faire 2 while, c'est plus lisible et après si tu veux changer l'affichage des images par exemple tu n'as qu'à changer ce qui est dans le while des images
__________________
polkduran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 19h04   #7
Membre du Club
 
Inscription : janvier 2010
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 317
Points : 62
Points : 62
J'ai fini par le faire en deux requêtes.

Je voulais tester pour faire avec UNION
et ça ne peut pas fonctionner.

Merci pour les réponses polkduran,
j'apprécie. J'ai appris quelque chose
et j'approfondis dans mes connaissances.


Citation:
Envoyé par polkduran Voir le message
le problème c'est qu'il me semble que ne peux pas limiter le nombre de résultats de chaque requête (à vérifier) donc, tu ne sauras pas combien de ori_comen et de ori_images tu auras dans la requête, je pense que c'est mieux de séparer les deux requêtes et faire 2 while, c'est plus lisible et après si tu veux changer l'affichage des images par exemple tu n'as qu'à changer ce qui est dans le while des images
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 06h56.


 
 
 
 
Partenaires

Hébergement Web