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 :

Mysqli et UNION [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut Mysqli et UNION
    Bonjour.

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
     
    }

  2. #2
    Membre très actif Avatar de polkduran
    Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 41
    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 : 155
    Par défaut
    les 2 tables ont les mêmes nombre et noms de colonnes ?

  3. #3
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    Citation Envoyé par polkduran Voir le message
    les 2 tables ont les mêmes nombre et noms de colonnes ?
    Table : ori_comen
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id idimg name desc date
    Table : ori_images
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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();
    }
     
    ?>

  4. #4
    Membre très actif Avatar de polkduran
    Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 41
    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 : 155
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  6. #6
    Membre très actif Avatar de polkduran
    Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 41
    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 : 155
    Par défaut
    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

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

Discussions similaires

  1. Problème requête avec UNION et ORDER BY
    Par Yann21 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 12/12/2003, 11h02
  2. [ODBC] erreur SQL pour les unions qui renvoient vide
    Par fabriceMerc dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 25/11/2003, 11h06
  3. UNION et COUNT(*)
    Par Goldust dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/08/2003, 09h30
  4. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04
  5. Créer une vue pour trier une requete UNION ?
    Par Etienne Bar dans le forum SQL
    Réponses: 3
    Dernier message: 03/01/2003, 20h22

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