Page 1 sur 1

Affichage tableau sous la condition.

Posté : 04 juil. 2008, 17:50
par Dom!
Bonjour,
Je dois réaliser un calendrier pour des rencontres sportives et tout fonctionnait mais depuis un certain temps cela ne fonctionne plus.
Grace au code ci-dessous je demande à l'utilisateur de renseigner le nombre de journée :
 <?php $nb = "" ; ?>
            <input name="nb" type="texte" size="2" class="champ" id="nb" value="<?php echo $nb; ?>" <?php if ($nb != "") echo "onfocus=blur();"; ?> />
              <?php if ($nb == "") echo " puis appuyer sur <input name='Submit3' type='button' class='bouton' onClick=MM_goToURL('parent','insert_calendrier.php');return document.MM_returnValue value='Ok'>"; ?>
          </p>
          <p class="parag"> 2&egrave;me Etape - Equipe =
            <select name="id_equipe" class="champ" id="select5">
                <option value="0" selected="selected">Aucun</option>
                <?php	
$sqldip = 'select abreviation, nom, id_equipe from tb_equipes order by sexe, abreviation';
// $nbsql += 1;
if ($resselectdip = mysql_query($sqldip)) {
while ($selectdip = mysql_fetch_array($resselectdip))
{                              
if ($id_equipe == $selectdip["id_equipe"])
$temp = " selected";
else 
$temp = "";							
echo '<option value="'.$selectdip["id_equipe"].'" '.$temp.'>'.$selectdip["abreviation"].'-'.$selectdip["nom"].'</option>';                               
}
}
?>
              </select>
Ensuite en fonction du nombre de journée le tableau s'affiche :
  <table width="100%" border="0" align="center" cellpadding="2" cellspacing="2" class="parag">
            <tr>
              <td colspan="2" bgcolor="#990000"><strong>MATCH ALLER</strong></td>
              <td rowspan="2" bgcolor="#990000"><strong>Visiteurs* aux</strong><strong><br />
                matchs RETOUR</strong></td>
              <td rowspan="2" bgcolor="#990000"><strong>Visiteurs* aux<br />
              </strong><strong>matchs ALLER</strong></td>
              <td colspan="2" bgcolor="#990000"><strong>MATCH RETOUR</strong></td>
            </tr>
            <tr>
              <td bgcolor="#990000"><strong>Date </strong><font size="-5">aaaa-mm-jj</font></td>
              <td bgcolor="#990000"><strong>N° Match</strong></td>
              <td bgcolor="#990000"><strong>N° Match</strong></td>
              <td bgcolor="#990000"><strong>Date<font size="-5"> </font></strong><font size="-5">aaaa-mm-jj</font></td>
            </tr>
            <?php 	
mysql_select_db($database_cagnes, $cagnes);		
for($i=1;$i<=$nb;$i++){
echo '<tr>';
echo '<td bgcolor="#000099"><input name="date_aller'.$i.'" type="text" class="champ" size="10" maxlength="10"></td>';
echo '<td bgcolor="#000099"><input name="no_match_aller'.$i.'" type="text" class="champ" size="4"></td>'; 
//print '<td bgcolor="#000099"><input name="visiteur_retour'.$i.'" type="text" class="champ" size="4"></td>'; 

echo '<td bgcolor="#000099"><select name="visiteur_retour'.$i.'" class="champ">'; 
$sqldip = 'select id_club, nom from tb_clubs order by id_club';
if ($resselectdip = mysql_query($sqldip)) {
while ($selectdip = mysql_fetch_array($resselectdip))						
echo '<option value="'.$selectdip["id_club"].'">'.$selectdip["nom"].'</option>';                              
}             
echo '</select></td>';
	  
echo '<td bgcolor="#000099"><select name="visiteur_aller'.$i.'" class="champ">'; 
$sqldipe = 'select id_club, nom from tb_clubs order by id_club';
if ($resselectdipe = mysql_query($sqldipe)) {
	while ($selectdipe = mysql_fetch_array($resselectdipe))						
	echo '<option value="'.$selectdipe["id_club"].'">'.$selectdipe["nom"].'</option>';                              
}             
	echo '</select></td>';  	  

echo '<td bgcolor="#000099"><input name="no_match_retour'.$i.'" type="text" class="champ" size="4" maxlength="4"></td>';
echo '<td bgcolor="#000099"><input name="date_retour'.$i.'" type="text" class="champ" size="10" maxlength="10"></td>';
echo '</tr>';
}
?>
          </table>
          <p class="parag">
            <input name="Submit" type="submit" class="bouton" value="Ajouter calandar" />
            &nbsp;&nbsp;&nbsp;</p>
        </form>
Mon probléme c'est que le tableau ne s'affiche pas... et je ne trouve pas pourquoi !
Merci pour votre aide...

Posté : 04 juil. 2008, 20:46
par Patriboom
Quand tu écris que le tableau ne s'affiche pas, inclus-tu l'en-tête (Match ALLER, visiteurs aux matchs RETOUR, etc) ?
En principe, cela devrait être affiché, car ce n'est pas régi par le serveur PHP.

Te lisant, je soupçonne que ce soit le contenu du tableau, la partie qui varie d'une commande à l'autre.
Au premier abord, ce semble normal, car je ne lis aucun traitement de la variable $nb qui la fasse passer du tableau $_GET ou $_POST à un traitement autonome.

La page du formulaire qui commande la production du tableau, ne semble pas envoyer ses informations (pas telle que présentée ici). Il faut que les INPUT soit envoyés à une page via une des commande suivante: GET ou POST. Nous n'en voyons pas dans le code que tu présentes.

Il faut donc ajouter les balises <form type="POST" ...> et </form> la première page. Puis, il faut traiter la variable nb là où elle est, c'est-à-dire sans son tablau: $_POST["nb"] pour bâtir un for fonctionnel:
for ($i=1; $i<=$_POST["nb"]; $i++) {
}

Posté : 04 juil. 2008, 22:29
par Dom!
J'ai opté pour la methode GET et effectivement ca fonctionne parfaitement.

Merci encore pour votre aide.
Résolu :D

Posté : 06 juil. 2008, 16:46
par Dom!
Bonjour !!

Je réouvre ce sujet car aprés l'affichage de mon calendrier je cherche maintenant à l'enregistrer dans ma base de données...

J'ai réusi à élaborer un code mais celui ci n'a pas l'air de fonctionner... en effet il semble que les varaibles ne soient pas définies, mais comment puis je définir ce typ de vriables ?

voici mon code pour ajouter le calendrier :
<?php  
 require_once('../../Connections/cagnes.php'); 
require_once('../include/config.php');
$nb = $_GET['nb'];
// Matchs aller
for($i=1;$i<=$nb;$i++){
$journee = $i; 
$match_aller = 1; 
$temp = "date_aller".$i;
eval('$date = $'.$temp.';');  
$semaine = strtotime($date);
$semaine = strftime("%W", $semaine); 
$temp = "no_match_aller".$i;
eval('$no_match = $'.$temp.';'); 
$temp = "visiteur_retour".$i;
eval('$test = $'.$temp.';');
if ($test == "") {	
$adomicile = 1;
$temp = "visiteur_aller".$i;
eval('$adversaire = $'.$temp.';');
} else { 
$adomicile = 0;
$temp = "visiteur_retour".$i;
eval('$adversaire = $'.$temp.';');
}

$sql_ajout = 'insert into tb_matchs values (0,'.$journee.',"'.$date.'","",'.$id_equipe.',"'.$no_match.'",'.$match_aller.','.$adomicile.',"'.$adversaire.'","","","","","","","","","",'.$semaine.')';
$nbsql += 1;
$result_ajout = mysql_query($sql_ajout) or die(mysql_error()); 
$ecrire = 0;
}
// Matchs retour*
for($i=1;$i<=$nb;$i++){
$journee = $nb + $i;
$match_aller = 0;
$temp = "date_retour".$i;
eval('$date = $'.$temp.';');
$semaine = strtotime($date);
$semaine = strftime("%W", $semaine);
$temp = "no_match_retour".$i;
eval('$no_match = $'.$temp.';');
$temp = "visiteur_aller".$i;
eval('$test = $'.$temp.';');
if ($test == "") {	
$adomicile = 1;
$temp = "visiteur_retour".$i;
eval('$adversaire = $'.$temp.';');
} else { 
$adomicile = 0;
$temp = "visiteur_aller".$i;
eval('$adversaire = $'.$temp.';');
}	
$sql_ajout = 'insert into tb_matchs values (0,'.$journee.',"'.$date.'","",'.$id_equipe.',"'.$no_match.'",'.$match_aller.','.$adomicile.',"'.$adversaire.'","","","","","","","","","",'.$semaine.')';
$nbsql += 1;
$result_ajout = mysql_query($sql_ajout) or die(mysql_error()); 
$ecrire = 0;
}

// echo "<meta http-equiv=\"refresh\" content=\"2; url=http://www.cagnesbasket.com/index.php?file=Page&name=insert_calendrier&nb=\">";
?>
Merci pour votre aide...

Posté : 06 juil. 2008, 16:49
par katagoto
Je serais toi, j'éviterai sles eval(), c'est méchant, pourquoi tu ne sérialise pas ton tableau : regarde ma contribution, à un moment, dans la méthode genere(), je m'en sert

++

Posté : 06 juil. 2008, 17:02
par Dom!
Désolé mais je ne trouve rien sur genere()....
De plus mon probléme ne semble pas venir du fait que les varaibles ne sont pas définies... enfin je suppose...
Un des messages d'ereur affichés :

Notice: Undefined variable: date_aller1 in c:\program files\easyphp1-8\www\usc\intranet\administrateur\insert_calendrier_action.php(35) : eval()'d code on line 1

Notice: strtotime(): Called with empty time parameter in c:\program files\easyphp1-8\www\usc\intranet\administrateur\insert_calendrier_action.php on line 37

Merci pour votre aide..[/php]

Posté : 07 juil. 2008, 17:22
par Dom!
Dois je comprendre que personne ne veuille m'aider ?

:cry:

Posté : 07 juil. 2008, 17:47
par dunbar
Dois je comprendre que personne ne veuille m'aider ?

:cry:
Déjà avec ce genre de réflection tu risque des commentaires écrit en rouge :wink:


Sinon pour tes requetes je te conseil le site suivant
Tu y verra entre autre chose que pour faire une insertion il est préférable de lui indiquer dans quelle champs mettre tes valeurs
exemple :

INSERT INTO nom_de_ta_table (nom_champ_1,nom_champ_2) VALUES (valeur_champ_1, valeur_champ_2)

et pas
INSERT INTO nom_de_ta_table VALUES (valeur_champ_1, valeur_champ_2)

Posté : 07 juil. 2008, 18:30
par orgerix
Pas tout a fait exact. La première syntaxe n'entraine pas d'erreur (sous MySQl du moins). Elle prend les chams dans l'ordre dans lequel ils ont été déclarés lors de la création de la base de donnée.

Cependant, pour éviter les bugs, il est préférable d'utiliser la deuxième syntaxe