begin process at 2012 05 31 04:18:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

PHP, boucles while et formulaires


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

PHP, boucles while et formulaires

mardi 20 janvier 2009 à 18:54:14 | PHP, boucles while et formulaires

rinpe

Bonjour,

Cela fait maintenant trop de temps que je cherche désespérement une solution en parcourant les forums, mais aucun des cas que j'ai lu ne ressemble (même un petit peu) au mien :(

J'ai créé une page d'administration qui permet de corriger un texte déjà rentré dans ma base de donnée.
Cette base de données contient plusieurs tables dont les 2 suivantes : "articles" et "type".

Mon formulaire est composé d'une liste déroulante proposant les types (table type) et d'un éditeur de texte correspondant au champ "texte2" de l'article (table articles). Ces deux tables sont reliées par l'identifiant du type : "id-type" pour la table type et "Xid_type" pour la table articles.

En bref, je voudrais que lorsqu'on sélectionne un type, s'affiche (dans l'éditeur) le contenu existant du champ "texte2" de l'article correspondant pour que l'administrateur puisse le modifier.

 j'espère être assez claire..

Voici mon code actuel. Je n'ai aucun message d'erreur renvoyé et la liste des types s'affiche normalement.
Mais dans l'éditeur ne s'affiche que le "texte2" correspondant au dernier type de la liste !

<? include ("../../connexion/dbconnect.php"); ?>
 
<form method="post" action="../modifications/insert1.php">
  <p>Modification du texte d'introduction des pages du groupe 1 : </p>
  <p>&nbsp;</p>
      <table width=372 align="center">
           
            <tr>
              <td width="346" rowspan="2" valign="middle"><p align="left">Type  :
                  <select name="type">
                   
<?

  $sql = "SELECT * FROM type where id_type=15 or id_type=11 or id_type=16 or id_type=18";
 
  $resultat = mysql_query($sql, $connexion);
  $num = mysql_num_rows($resultat);
 
  echo "<option value=\"\" selected>Choisissez</option>";
 
  For ($i=0;$i<$num;$i++)
  {
     $row = mysql_fetch_array($resultat);
     echo "<option value=".$row['id_type'].">".$row['nom_type']."</option>\n";
  
     $sql2 = "SELECT * FROM articles where Xid_type=".$row['id_type']."";
  
     $resultat2 = mysql_query($sql2, $connexion);

     while ($row2 = mysql_fetch_array($resultat2, MYSQL_ASSOC))
        {
         $affichage = $row2['texte2'];
        } 

   }
?>

                      </select>
              </p>          </td>
              <td width="10" valign="middle">&nbsp;</td>
            </tr>
            <tr>
              <td valign="middle">&nbsp;</td>
            </tr>
      </table>
    <br />

  <div align="center">

    <textarea name="texte" cols="50" rows="15"><? echo $affichage ?></textarea>
      <input type="submit" value="Envoyer" />
  </div>

</form>

Que faire ? Auriez-vous une piste svp ?

Merci d'avance...

mardi 20 janvier 2009 à 19:28:06 | Re : PHP, boucles while et formulaires

kohntark

Membre Club
Salut,

Oui, c'est bien normal que tu n'affiches que la dernière ligne puisque $affichage est réécrit à chaque boucle while.
Il te faut utiliser Javascript.

Quand c'est simple c'est mieux !! :o)
Voici une idée :

$sql = "SELECT type.id_type, type.nom_type, articles.texte2
FROM type, articles
WHERE type.id-type = Xid_type AND id_type=15
or type.id_type=11 or type.id_type=16 or type.id_type=18";

1 fonction JS :
function afficherTexte2(truc) {
   document.getElementById("texte").innerText = truc;
}



<form>
<select>
<option>choississez</option>

$q = mysql_query($sql);
while ($res = mysql_fetch_array($q, MYSQL_ASSOC) {
    echo '<option value='.$res['id_type'].' onclick="afficherTexte2('.$res['texte2'].');">'.$res['nom_type'].'</option>';
}
</select>
</form>

Je te laisse mettre en forme le code.


Kohntark -

mardi 20 janvier 2009 à 21:20:35 | Re : PHP, boucles while et formulaires

rinpe

merci pour ta réponse rapide,

Je vais tenter ta solution..

mercredi 21 janvier 2009 à 08:08:54 | Re : PHP, boucles while et formulaires

kohntark

Membre Club
Excuse moi, j'ai un peu écrit à l'arrache hier.

Fais plutôt un truc comme ça :

$sql = "SELECT type.id_type, type.nom_type, articles.texte2
FROM type, articles
WHERE type.id-type = Xid_type AND id_type=15
or type.id_type=11 or type.id_type=16 or type.id_type=18";

1 fonction JS :
function afficherTexte2(truc) {
   document.getElementById("texte").innerHTML = truc;
}


<form>
<select onchange="afficherTexte2(this.options[this.selectedIndex].value);">
<option value="">choississez</option>

if (false === $q = mysql_query($sql)) die("traitement de l'erreur");
while ($res = mysql_fetch_array($q, MYSQL_ASSOC) {
    echo '<option value="'.$res['id_type'].'">'.$res['nom_type'].'</option>';
}
</select>
</form>


C'est encore loin d'être top, mais ça fonctionnera mieux

Kohntark -



Cette discussion est classée dans : table, mysql, type, id, articles


Répondre à ce message

Sujets en rapport avec ce message

problème de mise à jour de base de données [ par rildspael ] Ben en fait maintenant j'ai refait ce code, je me suis concentré, j'ai tout analysé mais rien ne marche encore et je ne comprends pas : le voici :Donc Sélectionner les lignes différentes entre deux tables [ par Mikemadest ] Bonjour,J'ai cherché sans trouver de réponse à mon problème,ce qui m'amène à vous poser cette question !D'avance je m'excuse si j'ai raté la solution Afficher une ligne d'une table mysql [ par Alferox ] Bonjours,bon bin une question de base toute con.Je voudrais afficher uniquement la ligne qui port l'id 2 d'une table. Il n'y a pas plus simple que de MySQL : changement de l'ID dans une table [ par DJDX ] Bonjour groupe!Ma question peut parraître simple, mais je n'ai aucune idée comment résoudre mon "problême".si je tape ce codemysql_select_db($base, Probleme d'affichage dans une liste déroulante [ par JohnInsane ] Bonjour à tous, Voilà j'ai un problème, j'ai fais un script où l'on choisit une catégorie dans une liste déroulante qui est dans la table cat où j'a MySQL_INSERT_ID mais pour le delete ???? [ par ripoux ] Hello,Peut-être l'aurez-vous compris dans le titre...Je cherche un moyen pour faire un delete de plusieur table relié entre elle.Pour un Insert, il ex Probleme recuperation de l'id d'une table pour insérer dans une autre par la methode update [ par Alpha911 ] Bonjour,Je test plusieurs methodes pour pouvoir prendre l'id d'une table qui et la recopier dans une autre table j'ai 2 tables UTILISATEUR et une autr je comprends pas le probleme [ par Teclis01 ] voici l erreur:Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\creerfacture.ph Comment savoir le dernier ID (MySQL) [ par ImmortalPC ] Salut, j'ai un super problème. j'ai une table comme cela : CREATE TABLE `test` ( `ID` int(11) NOT NULL auto_increment, `sujet` varchar(255) NOT NULL MySql [ par jnbrunet ] Salut,Quelle est la manière la plus simple et la plus courte pour défénir combien de champs de ma table on la valeur "2" dans la section ID?j'avais pe


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales