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

Langage PHP Discussion :

Problème de requête d'affichage


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut Problème de requête d'affichage
    Bonjour,

    J'ai deux tables dans ma base de données un concernant le chemin des images et l'autre les rubriques
    ci-dessous la structures des deux tables :


    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
     
    --
    -- Structure de la table `info_photo`
    --
     
    CREATE TABLE IF NOT EXISTS `info_photo` (
      `NUM` int(11) NOT NULL AUTO_INCREMENT,
      `COMMENT1` varchar(255) DEFAULT NULL,
      `PHOTO1` varchar(255) DEFAULT NULL,
      `PICTO1` varchar(255) DEFAULT NULL,
      `Rub_ID` smallint(6) DEFAULT NULL,
      PRIMARY KEY (`NUM`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
     
    --
    -- Structure de la table `rubrique`
    --
     
    CREATE TABLE IF NOT EXISTS `rubrique` (
      `Rub_ID` smallint(6) NOT NULL AUTO_INCREMENT,
      `Rub_Name` varchar(80) NOT NULL,
      `Rub_Desc` tinytext,
      `Rub_Date` date DEFAULT NULL,
      `Rub_Time` time DEFAULT NULL,
      PRIMARY KEY (`Rub_ID`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    Les photos sont stockés dans un dossier selon la catégorie, j'avais un problème d'upload au début avec votre aide j'ai pu corrigé et résoudre le problème.

    Maintenant le problème qui se pose c'est au niveau de la récupération des photo selon un menu déroulant. J'ai modifié le script original afin de faire correspondre à mes besoins mais voila c'est pas trop fameux le résultat
    ci-dessous le script pour l'affichage :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
    <?php
    // connexion a la base de données
       include("../fonction/connexion.php");
    // FONCTION de redimensionnement "a l affichage"
       include("../fonction/fctaffichimage.php");
    // -----------------------------------------------------------------------------------------------------
    // La base de données (MABASE) avec une table (MATABLE)
    // La table doit contenir (au moins) les champs suivants :
    // - NUM      (INT - 11 - auto-incremente - NotNull)
    // - COMMENT1 (VARCHAR - 255 - Null)
    // - PHOTO1   (VARCHAR - 255 - Null))
    // - PICTO1   (VARCHAR - 255 - Null)
    // Important : conserver le champ COMMENT1, il est nécessaire en mode AJOUTER
    // -----------------------------------------------------------------------------------------------------
    // mettre le nom de la table dans une variable :
       $table = 'info_photo';
       $tabler = 'rubrique';
    // REMARQUE : on peut utiliser ce fichier pour PLUSIEURS TABLES (de même structure)
    // $table = $_GET['CAT'];
    // (préciser le nom de la table a l'appel du fichier : MONFICHIER-LISTE.php?CAT=MATABLE)
     
    // sélection de toutes les fiches de la table
       $query = 'SELECT * FROM '.$table.','.$tabler.' WHERE '.$table['Rub_ID'].' = '.$tabler['Rub_ID'].' ORDER BY NUM DESC'; 
       $result = mysql_query($query)  or die('Erreur SQL ! '.$query.'<br/>'.mysql_error());
       $result = mysql_fetch_assoc($query);
       $Rub_Name = $result['Rub_Name'];
    // -----------------------------------------------------------------------------------------------------
    // Les photos et pictos sont stockés dans un dossier déprotège en écriture
       $chemincourt = "../repimages/".$Rub_Name."/";
    // -----------------------------------------------------------------------------------------------------
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head>
        <meta http-equiv="content-type" content="text/html; charset= UTF-8" />
        <title>MONFICHIER-LISTE.php</title>
    </head>
    <body><center>
    <div>
       <?php echo 'TABLE '.$table; ?><br/>
       <a href="MONFICHIER-FORM.php?CAT=<?php echo $table; ?>&TRAITER=AJOUTER">AJOUTER NOUVEAU</a>
    </div>
    <div>     
     
       <?php
    // formulaire de sélection
    echo '<form action="monfichier-list.php" enctype="multipart/form-data" method="post">';
    echo '<select name="frm_select_rubrique">';
    $Selected = 0;
    while ($row = mysql_fetch_array($result)){
    	if($Selected == 0){
    		echo '<option value="'.$row['Rub_ID'].'" selected="selected">'.$row['Rub_Name'].'</option>';
    		$Selected = 1;
    	} else {
    		echo '<option value="'.$row['Rub_ID'].'">'.$row['Rub_Name'].'</option>';
    	}
    }
    echo '</select>';
    echo '<input type="submit" value="Go"/>';
    echo '</form>';
    ?>
    <table border="1">
       <tr>
    <?php
    // -----------------------------------------------------------------------------------------------------
    // AFFICHAGE tant qu'il y a des fiches
    while ($val = mysql_fetch_array($result)) 
    { ?>
        <td>
    		<?php if ($val['PICTO1'] != "") { ?>
             <img alt="" <?php fctaffichimage($chemincourt.$val['PICTO1'], 100, 100) ?>>
          <?php } ?>
    	  <?php echo $val['COMMENT1']; ?><br/>
          <a href="MONFICHIER-FORM.php?CAT=<?php echo $table; ?>&TRAITER=MODIFIER&NUM=<?php echo $val['NUM']; ?>">
          MODIFIER</a>&nbsp;
          <a href="MONFICHIER-FORM.php?CAT=<?php echo $table; ?>&TRAITER=SUPPRIMER&NUM=<?php echo $val['NUM']; ?>">
          Supprimer</a><br/>
     
        </td>
    <?php
    } // fin while
    // -----------------------------------------------------------------------------------------------------
    ?>
       </tr>      
    </table>
    </div>
    </center></body></html>
    <?php // libération de la ressource et déconnexion
    mysql_free_result($result);
    ?>
    j'ai ce message d'erreur qui est généré sur ma page
    Erreur SQL ! SELECT * FROM info_photo,rubrique WHERE i = r ORDER BY NUM DESC
    Unknown column 'i' in 'where clause'
    Je comprends pas pourquoi il trouve cette valeur i pour Rub_ID

    Je vous remercie de votre aide

    Runcafre91

  2. #2
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Bonjour,

    ta requête devrait ressembler à

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM table1, table2 where table1.id = table2.id

    essaye :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query = 'SELECT * FROM '.$table.','.$tabler.' WHERE '.$table.'.Rub_ID = '.$tabler.'.Rub_ID ORDER BY NUM DESC';

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut
    Citation Envoyé par syl2095 Voir le message
    Bonjour,

    ta requête devrait ressembler à

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM table1, table2 where table1.id = table2.id
    essaye :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query = 'SELECT * FROM '.$table.','.$tabler.' WHERE '.$table.'.Rub_ID = '.$tabler.'.Rub_ID ORDER BY NUM DESC';
    Re,

    Merci de votre aide cela a résolu une partie du problème j'ai du retiré le fetch assoc car cela me posais un problème.

    Actuellement lorsque je choisi une catégorie et que je valide j'ai une erreur
    404 page introuvable
    Ci-dessous le code après correction la je vois pas trop d’où cela peux parvenir
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
     
     
    <?php
    // connexion a la base de données
       include("../fonction/connexion.php");
    // FONCTION de redimensionnement "a l affichage"
       include("../fonction/fctaffichimage.php");
    // -----------------------------------------------------------------------------------------------------
    // La base de données (MABASE) avec une table (MATABLE)
    // La table doit contenir (au moins) les champs suivants :
    // - NUM      (INT - 11 - auto-incremente - NotNull)
    // - COMMENT1 (VARCHAR - 255 - Null)
    // - PHOTO1   (VARCHAR - 255 - Null))
    // - PICTO1   (VARCHAR - 255 - Null)
    // Important : conserver le champ COMMENT1, il est nécessaire en mode AJOUTER
    // -----------------------------------------------------------------------------------------------------
    // mettre le nom de la table dans une variable :
       $table = 'info_photo';
       $tabler = 'rubrique';
    // REMARQUE : on peut utiliser ce fichier pour PLUSIEURS TABLES (de même structure)
    // $table = $_GET['CAT'];
    // (preciser le nom de la table a l'appel du fichier : MONFICHIER-LISTE.php?CAT=MATABLE)
     
    // sélection de toutes les fiches de la table
     
       $query = 'SELECT * FROM '.$table.','.$tabler.' WHERE '.$table.'.Rub_ID = '.$tabler.'.Rub_ID ORDER BY NUM DESC'; 
       $result = mysql_query($query)  or die('Erreur SQL ! '.$query.'<br/>'.mysql_error());
       $Rub_Name = $result['Rub_Name'];
    // -----------------------------------------------------------------------------------------------------
    // Les photos et pictos sont stockes dans un dossier déprotège en écriture
       $chemincourt = "../repimages/".$Rub_Name."/";
    // -----------------------------------------------------------------------------------------------------
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head>
        <meta http-equiv="content-type" content="text/html; charset= UTF-8" />
        <title>MONFICHIER-LISTE.php</title>
    </head>
    <body><center>
    <div>
       <?php echo 'TABLE '.$table; ?><br/>
       <a href="MONFICHIER-FORM.php?CAT=<?php echo $table; ?>&TRAITER=AJOUTER">AJOUTER NOUVEAU</a>
    </div>
    <div>     
     
       <?php
    // formulaire de sélection
    echo '<form action="monfichier-list.php" enctype="multipart/form-data" method="post">';
    echo '<select name="frm_select_rubrique">';
    $Selected = 0;
    while ($row = mysql_fetch_array($result)){
    	if($Selected == 0){
    		echo '<option value="'.$row['Rub_ID'].'" selected="selected">'.$row['Rub_Name'].'</option>';
    		$Selected = 1;
    	} else {
    		echo '<option value="'.$row['Rub_ID'].'">'.$row['Rub_Name'].'</option>';
    	}
    }
    echo '</select>';
    echo '<input type="submit" value="Go"/>';
    echo '</form>';
    ?>
    <table border="1">
       <tr>
    <?php
    // -----------------------------------------------------------------------------------------------------
    // AFFICHAGE tant qu'il y a des fiches
    while ($val = mysql_fetch_array($result)) 
    { ?>
        <td>
    		<?php if ($val['PICTO1'] != "") { ?>
             <img alt="" <?php fctaffichimage($chemincourt.$val['PICTO1'], 100, 100) ?>>
          <?php } ?>
    	  <?php echo $val['COMMENT1']; ?><br/>
          <a href="MONFICHIER-FORM.php?CAT=<?php echo $table; ?>&TRAITER=MODIFIER&NUM=<?php echo $val['NUM']; ?>">
          MODIFIER</a>&nbsp;
          <a href="MONFICHIER-FORM.php?CAT=<?php echo $table; ?>&TRAITER=SUPPRIMER&NUM=<?php echo $val['NUM']; ?>">
          Supprimer</a><br/>
     
        </td>
    <?php
    } // fin while
    // -----------------------------------------------------------------------------------------------------
    ?>
       </tr>      
    </table>
    </div>
    </center></body></html>
    <?php // liberation de la ressource et déconnexion
    mysql_free_result($result);
    ?>
    Merci de votre aide

    Runcafre91

  4. #4
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    tu as un fichier monfichier-list.php ?

    quelle est l'url dans ta barre d'adresse quand tu as la 404 ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut
    Citation Envoyé par syl2095 Voir le message
    tu as un fichier monfichier-list.php ?

    quelle est l'url dans ta barre d'adresse quand tu as la 404 ?
    Re,

    l'url de ma page est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    http://localhost/monsite/vue/monfichier-list.php
    Les valeurs de mon formulaire a priori n'est pas envoyé

    Merci de votre aide

    Runcafre91

  6. #6
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Comment est structuré ton site ?

    si tu as une erreur 404, c'est normal que t’aies pas les valeurs de ton formulaire.

Discussions similaires

  1. Problèmes de requêtes (affichage)
    Par Moxostoma dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/10/2009, 09h21
  2. Problème requête d'affichage d'une liste
    Par mLk92 dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/01/2007, 11h17
  3. Problème de requètes concurentes
    Par Emmanuel.G dans le forum XMLRAD
    Réponses: 3
    Dernier message: 08/08/2003, 16h51
  4. Réponses: 2
    Dernier message: 16/07/2003, 14h40
  5. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02

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