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 :

Boucle qui me répète les données


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut Boucle qui me répète les données
    Bonjour,

    Pour afficher un camp d'upload, je demande à l'administrateur de renseigner la balise title et la balise ALT en français et en anglais.

    Ces champ sont générés via la base de données.

    Donc 2 langues = 2 champs ALT + 2 champs TITLE + 1champ upload pour chaque fichier et je désire en autoriser 5.

    Cependant, quand je fais ma boucle while cela double mes champs d'upload...

    Quelqu'un pourrait m'aider avec le code ci-dessous?

    Code php : 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
    $sql_lg = DbConnect::getInstance()->query("SELECT * FROM language_lang JOIN
        language ON id_language=language.id_language_lang 
        WHERE language_lang.code='".$_SESSION['lang']."' 
        GROUP BY language.code 
        ORDER BY language.code ASC");
    while($row = $sql_lg->fetch()){
        echo '<div class="col col3">'."\n";
        echo'<input type="file">'."\n";
        echo'</div>'."\n";
        echo '<div class="col col9">'."\n";
        echo 'preview';
        echo'</div>'."\n";
        echo '<div class="col col6">'."\n";
        echo '<label for="title_'.$row->code.'" class="block">'.TXT_TITLE_PIC.' '.$row->name.'</label>'."\n";
        echo '<input type="text" name="title_'.$row->code.'" id="title_'.$row->code.'">'."\n";
        echo'</div>'."\n";
        echo '<div class="col col6">'."\n";
        echo '<label for="alt_'.$row->code.'" class="block">'.TXT_ALT_PIC.' '.$row->name.'</label>'."\n";
        echo '<input type="text" name="alt_'.$row->code.'" id="alt_'.$row->code.'">'."\n";
        echo'</div>'."\n";
    }

    Merci d'avance,
    David

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ta requete renvoit 1 ou 2 résultats ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut
    Merci Sabotage.

    elle me revoie le bon nombre de champs pour alt et tile des images mais me met 2 fois le champ input file suite au code de mon premier message.
    Je ne sais pas comment tourner cette requete

    Or, on est bien d'accord que je peux avoir 15 langues, je n'ai besoin que d'un champ input file...

    Merci d'avance

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 324
    Par défaut
    Bonjour,

    normalement $_SESSION['lang'] aurait du être la clé étrangère, la je suis perdu...

    dans cette requete pas de clause WHERE ? ca retourne une table complète de traductions ? il y a un pas un problème de conception alors ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut
    Bonsoir PAPAJOKER,
    Oui j'ai bien une clause WHERE .

    La session lang est la lang choisie par l'utilisateur et / ou admin

    Non je ne pense pas que ce soit une probleme de structure de table...

    Avec les ressouces que je possède, je peux me permettre de faire correctement des tables intermédiaires dont j'ai l'utilité.
    La structure actuelle est amenée à évoluer donc je prévois le coup directement dans mes requetes.

    Ma tabl language est avec cette structure:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE IF NOT EXISTS `language` (
      `id_language_lang` int(11) NOT NULL AUTO_INCREMENT,
      `flag_url` varchar(80) DEFAULT NULL,
      `code` varchar(2) DEFAULT NULL,
      `active_back` int(11) DEFAULT NULL,
      `active_front` int(11) DEFAULT NULL,
      PRIMARY KEY (`id_language_lang`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

    Et ma table Language_lang(avec les traductions)

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE IF NOT EXISTS `language_lang` (
      `id_language_lang` int(11) NOT NULL AUTO_INCREMENT,
      `id_language` int(11) NOT NULL,
      `name` varchar(45) DEFAULT NULL,
      `code` varchar(2) DEFAULT NULL,
      PRIMARY KEY (`id_language_lang`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

    Tout cela fonctionne parfaitement jusqu'à présent. Mon souci suite à mon premier post c'est que quand je fais ma boucle while, il m'affiche PARTAIEMENT ce que je demande mais ma requete me mets 2 file input. mais j'en désire qu'un seul...

    Merci d'avance

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 324
    Par défaut
    Désolé je ne comprend strictement rien

    le plupart du temps un systeme de traduction est du type :

    lang_code, key, value
    fr , 'titre_image', 'Le titre de l'image'
    en,'titre_image', 'picture title'
    fr, 'ouvrir', 'ouvrir'
    en, 'ouvrir', 'open'
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT value from table WHERE lang_code=$_SESSION['lang'] AND key='ouvrir'

    avec toi, je ne comprend pas le contenu de language_lang et quel est la clé étrangère id_language ou code ?

Discussions similaires

  1. Boucle qui teste sur les paramètres
    Par ameura1 dans le forum WinDev
    Réponses: 12
    Dernier message: 05/09/2014, 11h24
  2. Réponses: 4
    Dernier message: 23/10/2009, 09h36
  3. Réponses: 5
    Dernier message: 20/07/2008, 18h31
  4. [AJAX] N'importe qui peut voir les données de mon fichier XML
    Par KoosMos dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 30/11/2007, 11h48
  5. Boucle qui parcourt tout les ligne d'un fichier text
    Par accro-macro dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 10/05/2007, 20h21

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