Valeur dynamique dans un champ de texte ...

Eléphant du PHP | 86 Messages

13 déc. 2005, 22:05

Bonsoir,
Je voudrais que mes managers d'équipes puissent modifier les infos de leurs équipes.
Afin d'éviter qu'ils n'aient à tout retaper, je voudrais que les valeurs soient déja dans les champs de texte et donc qu'ils ne changent que qu'ils le désire.
Pour aller chercher mes données j'utilise :
<?
//Infos de connexion
require ('_files/_db/config.php');
//Requête
$req = mysql_query("SELECT nom from lao_teams
WHERE nom = '". $_SESSION['team2'] ."'") or die(mysql_error());
//Conversion vers contenu 
while($contenu = mysql_fetch_array ($req)){
}
//je referme la connexion
mysql_close();
?>
Donc je voudrais que la valeur $contenu[nom] apparaisse dans mon champ de texte comme valeur à défaut, soit quelque chose comme ceci :

Code : Tout sélectionner

<input name="web" type="text" class="field" id="web" value="$contenu[nom]" maxlength="128" />
Seulement je n'arrive pas à intégrer ma valeur.
De plus je souhaiterais ne faire qu'une seule requête car j'ai d'autre informations en plus du nom (tag, e-mail, web, etc)

Si vous savez comment faire ... :)
Merci d'avance

Mammouth du PHP | 19672 Messages

13 déc. 2005, 22:08

Essaye en remplçant $contenu[nom] par $contenu['nom'] : en ne mettant pas les apostrophes (tu pourrais aussi utiliser des guillemets), PHP interprête l'index comme une constante dont la valeur est inexistante.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 86 Messages

13 déc. 2005, 22:15

oui j'avoue que j'ai écrit ca vire, a ce point la je suis d'accord mais en fait, je ne sais pas trop comment mettre mon
//Conversion vers contenu 
while($contenu = mysql_fetch_array ($req)){ 
} 
et quand ouvrir et fermer les { -> en bref je ne sais pas trop comment structurer le tout car
je voudrais avoir ca (ce n'est que le début) :
<table id="container" cellspacing="0" cellpadding="0">
          <form action="_files/_db/modifier_team.php" name="form1" method="post" >
            <tr>
              <td class="titre">&nbsp;</td>
              <td id="skyscraper">&nbsp;</td>
            </tr>
            <tr>
              <td class="content"><table width="100%" border="0" cellspacing="0" cellpadding="4" class="address">
                  <tr>
                    <td class="col1">Id : </td>
<td><?
//Infos de connexion
require ('_files/_db/config.php');
//Requête
$req = mysql_query("SELECT id,nom,tag,devise,web from lao_teams
WHERE nom = '". $_SESSION['team2'] ."'") or die(mysql_error());
//Conversion vers contenu 
while($contenu = mysql_fetch_array ($req)){
echo $contenu[id];
}
//je referme la connexion
mysql_close();
?></td>
                  </tr>
                  <tr>
                    <td class="col1">Nom  : </td>
                    <td><input name="nom2" type="text" class="field" value="<? echo $contenu['id']; ?>" id="nom2" maxlength="25" /></td>
                  </tr>
                  <tr>
                    <td class="col1">Tag : </td>
                    <td><input name="tag" type="text" class="field" id="tag" value="" maxlength="128" /></td>
[...]
Je ne sais pas comment faire...

Mammouth du PHP | 19672 Messages

13 déc. 2005, 22:26

Il faut procéder avec ordre. En premier lieu, respecter la syntaxe HTML : la balise <form> n'a rien à faire entre <table> et <tr> > soit ton formulaire est dans une cellule, soit il englobe tout le tableau.

Ensuite, tu dois créer le début de la structure du tableau avant ta boucle, la refermer après, et à l'intérieur, tu mets les éléments qui contiendront ls données récupérées. Ce qui donnerait quelque chose comme ceci:
<form action="_files/_db/modifier_team.php" name="form1" method="post" >
  <table id="container" cellspacing="0" cellpadding="0">
    <tr>
      <td class="titre">&nbsp;</td>
      <td id="skyscraper">&nbsp;</td>
    </tr>
    <tr>
      <td class="content">
        <table width="100%" border="0" cellspacing="0" cellpadding="4" class="address">
<?php
//Infos de connexion
require ('_files/_db/config.php');
//Requête
$req = mysql_query("SELECT id, nom, tag, devise, web FROM lao_teams
WHERE nom = '". $_SESSION['team2'] ."'") or die(mysql_error());
//Conversion vers contenu
while($contenu = mysql_fetch_array ($req))
{
?>
          <tr>
            <td class="col1">Id : </td>
            <td><?php echo $contenu['id']; ?>
            </td>
          </tr>
          <tr>
            <td class="col1">Nom : </td>
            <td><input name="nom2" type="text" class="field" value="<? echo $contenu['nom']; ?>" id="nom2" maxlength="25" /></td>
          </tr>
          <tr>
            <td class="col1">Tag : </td>
            <td><input name="tag" type="text" class="field" id="tag" value="<?php echo($contenu['tag']); ?>" maxlength="128" /></td>
          </tr>
          <!-- etc... -->
<?php
}
//je referme la connexion
mysql_close();
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 86 Messages

13 déc. 2005, 22:45

Okay je prend note, merci beaucoup pour ton aide, bonne soirée

Eléphant du PHP | 86 Messages

13 déc. 2005, 23:31

là j'ai essayé sur un truc tout simple (pour me tester)
<? 
//Infos de connexion
require ('_files/_db/config.php');
//Requête
$req = mysql_query("SELECT manager,leader,membre2,membre3,membre4,membre5 from lao_teams
WHERE nom = '". $_SESSION['team2'] ."'") or die(mysql_error());
//Conversion vers contenu 
while($contenu = mysql_fetch_array ($req))
{
?>
<?php echo $contenu['manager']; ?>
			</td>
            </tr>
            <tr>
              <td class="col1"><span class="Style5">Leader : </span></td>
              <td><? echo $contenu['leader']; ?></td>
            </tr>
            <tr>
              <td class="col1"><span class="Style5">Membres : </span></td>
              <td><? echo $contenu['membre2']; ?></td>
            </tr>
            <tr>
              <td class="col1">&nbsp;</td>
              <td><? echo $contenu['membre3']; ?></td>
            </tr>
            <tr>
              <td class="col1">&nbsp;</td>
              <td><? echo $contenu['membre4']; ?></td>
            </tr>
            <tr>
              <td class="col1">&nbsp;</td>
              <td><? echo $contenu['membre5'];
					}
					//je referme la connexion
					mysql_close(); ?>
et cela ne fonctionne pas... je n'ai pas du comprendre alors :(

Mammouth du PHP | 19672 Messages

13 déc. 2005, 23:51

... cela ne fonctionne pas...
Ça ne m'avance pas des masses pour te donner une piste de solution: Il serait utile de me préciser ce que tu obtiens en pointant sur les points que tu attends avec une valeur différente.

Es-tu d'abord sûr que le retour de MySQL contient bien les données attendues par exemple ?

Sinon, as-tu des messages d'erreurs et le cas échéant, lesquels ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 86 Messages

14 déc. 2005, 21:21

NOn c'est réglé, j'avais une petite erreur dans ma requête :)
Merci