Page 1 sur 2

Enregistrements multiples

Posté : 19 févr. 2006, 18:55
par Dom!
Bonjour à tous,

J'ai un formulaire ou je saisie mes données et une page qui traite celles ci comme cela :
<?php
require_once('cagnes.php'); 
include ("conffile.php");

@ mysql_pconnect($hostname, $user, $passwd) or die ("Impossible de se connecter");
mysql_select_db($dbname);

$journee = $_POST['journee'];
$date = $_POST['date'];
$heure = $_POST['heure'];
$id_equipe = $_POST['id_equipe'];
$no_match = $_POST['no_match'];
$match_aller = $_POST['match_aller'];
$adomicile = $_POST['adomicile'];
$adversaire = $_POST['adversaire'];
$lieu = $_POST['lieu'];
$temps = $_POST['temps'];
$distance = $_POST['distance'];
$remarques = $_POST['remarques'];
$score_cag = $_POST['score_cag'];
$score_adv = $_POST['score_adv'];
$photo_p = $_POST['photo_p'];
$photo_g = $_POST['photo_g'];

  
  if ($journee == '')
  	$journee = 0;
	
	$dir_out = array();
  $temp = implode(",",$dir_out);
 
  $semaine = strtotime($date);
  $semaine = strftime("%W", $semaine);
 
  $sql_ajout = 'insert into tb_matchs values (0,'.$journee.',"'.$date.'","'.$heure.'",'.$id_equipe.',"'.$no_match.'",'.$match_aller.','.$adomicile.',"'.$adversaire.'","'.$lieu.'","'.$temps.'","'.$distance.'","'.$temp.'","'.$remarques.'","'.$score_cag.'","'.$score_adv.'","'.$photo_p.'","'.$photo_g.'",'.$semaine.')';
  $nbsql += 1;
  $result_ajout = mysql_query($sql_ajout);
  $ecrire = 0;
  
  echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php?file=Page&name=liste_convoc&semaine=".$semaine."\">"; ?>
Mon probleme c'est de récuperer et d'enregistrer les valeurs de $dir_out rien de s'enregistre dans ma base !

Merci pour votre aide

Posté : 19 févr. 2006, 19:02
par ouckileou
Salut,

c'est quoi ce $dir_out ? il n'y a rien dedans et tu ne l'utilises même pas dans ta requête ?

Pour vérifier que ta requête s'exécute bien :
mysql_query($requete) or die(mysql_error());
ça affichera les erreurs qui surviennent éventuellement

Posté : 19 févr. 2006, 19:08
par Dom!
Pourtant je dis que temp = dir_out !

Ce n'est pas bon ?

Posté : 19 févr. 2006, 19:33
par ouckileou
oui, mais auparavant tu déclare $dir_out comme un tableau vide, et tu ne l'utilises plus ensuite

donc je ne comprend pas à quoi sert ce $dir_out dans le code que tu nous as donné

Posté : 20 févr. 2006, 11:47
par Dom!
Ok donc si je rajoute un $temp = $_POST['dir_out']; est ce que ca marche car pour le moment ca ne fonctionne pas !!!!

Merciiiii :shock:

Posté : 20 févr. 2006, 15:17
par ouckileou
ça marchera si tu as un champ de formulaire qui s'appelle "dir_out"

Pour savoir quoi faire, il faut savoir doù vient la variable et ce que tu veux en faire, pour le moment on ne sait pas grand-chose

Et on a bien compris que ça marche pas, mais il faut en savoir un peu plus maintenant :lol:

Posté : 20 févr. 2006, 15:45
par Dom!
Ha oui c'est vrai.

Donc j'ai un champ dans mon formulaire qui se nomme dir_in[] qui contient tous les joueurs de basket ball de mon club. L'utilisateur grace a un bouton envoi les joueurs qu'il choisit dans le champ dir_out[].

J'ai donc une liste de joueur que je veux enregistrer dans ma base sous la forme 1,8,5,10,18

Mais dir_out[] semble vide comment faire pour récuperer les valeurs ?

Merci pour votre aide :wink:

Posté : 20 févr. 2006, 18:25
par ouckileou
On peut voir le formulaire ? Je comprend pas comment ça marche :)

Posté : 21 févr. 2006, 10:47
par Dom!
Alors je vous mets mon formulaire :
<form id="form1" name="form1" method="post" action="index.php?file=Page&name=insert_convoc_action">
  <p>&nbsp;</p>
  <table width="100%" border="0" cellspacing="0" class="parag">
    <tr>
      <td colspan="4" align="right" bgcolor="#FFFFFF"><div align="left"><font color="#000099"><strong>INFORMATIONS 
        MATCH</strong></font><?
		  if ($id_equipe != 0) {
		  	print "<p>Liste saisie</p>";
			
			$sqldip = 'select no_match, journee from tb_matchs where id_equipe = '.$id_equipe.' and match_aller = 1 order by daterenc';
			print "<p>Matchs Aller<br>";		
			if ($resselectdip = mysql_query($sqldip)) {
        		 while ($selectdip = mysql_fetch_array($resselectdip))
		         {
				 print "-".$selectdip["journee"]." - ".$selectdip["no_match"]."<br>";
				 }
			}
			print "</p>";
			
			$sqldip = 'select no_match, journee from tb_matchs where id_equipe = '.$id_equipe.' and match_aller = 0 order by daterenc';
			print "<p>Matchs Retour<br>";		
			if ($resselectdip = mysql_query($sqldip)) {
        		 while ($selectdip = mysql_fetch_array($resselectdip))
		         {
				 print "-".$selectdip["journee"]." - ".$selectdip["no_match"]."<br>";
				 }
			}
			print "</p>";
		  } ?></div></td>
    </tr>
    <tr>
      <td width="23%" align="left">Journ&eacute;e</td>
      <td width="37%"><input name="journee" type="text" class="champ" value="0" size="2" maxlength="2" /></td>
      <td width="20%" align="left">N&deg; Match</td>
      <td width="20%"><input name="no_match" type="text" class="champ" id="no_match" size="15" maxlength="255" /></td>
    </tr>
    <tr>
      <td align="left">Date* ( Sous forme : 2006-02-19 ) </td>
      <td><input name="date" type="text" class="champ" id="date" size="15" maxlength="255" /></td>
      <td align="left">Heure</td>
      <td><input name="heure" type="text" class="champ" id="heure" size="15" maxlength="255" /></td>
    </tr>
    <tr>
      <td align="left">Equipe*</td>
      <td colspan="3"><select name="id_equipe" class="champ" id="id_equipe">
          <option value="0" selected="selected">Aucun</option>
          <? 
					if (isset($id_equipe) == 0)
						$id_equipe = 0;
						
$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 = "";
								
								 print '<option value="'.$selectdip["id_equipe"].'" '.$temp.'>'.$selectdip["abreviation"].'-'.$selectdip["nom"].'</option>';
                                 
         }
    }
?>
      </select></td>
    </tr>
    <tr>
      <td colspan="2" align="left"><div align="center">Aller
        <input name="match_aller" type="radio" class="champ" value="1" checked="checked" />
        &nbsp;&nbsp;
        <input name="match_aller" type="radio" class="champ" value="0" />
        Retour</div></td>
      <td colspan="2" align="left"><div align="center">A domicile
        <input name="adomicile" type="radio" class="champ" value="1" checked="checked" />
        &nbsp;&nbsp;
        <input name="adomicile" type="radio" class="champ" value="0" />
        Exterieur</div></td>
    </tr>
    <tr>
      <td align="left">Adversaire*</td>
      <td><input name="adversaire" type="text" class="champ" id="adversaire" size="15" maxlength="255" />
      </td>
      <td align="left">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr valign="top">
      <td align="left">Lieu</td>
      <td colspan="3"><textarea name="lieu" cols="45" rows="3" id="textarea"></textarea></td>
    </tr>
    <tr>
      <td align="left">Temps</td>
      <td><input name="temps" type="text" class="champ" id="temps" size="15" maxlength="255" /></td>
      <td align="left">Distance</td>
      <td><input name="distance" type="text" class="champ" id="distance" size="15" maxlength="255" /></td>
    </tr>
    <tr>
      <td align="left">&nbsp;</td>
      <td>&nbsp;</td>
      <td align="left">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="2" align="left"><strong>Liste Dirigeants</strong></td>
      <td align="left">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="4" align="left"><table width="100%" border="0" cellspacing="0">
          <tr align="center" valign="middle" class="parag">
            <td width="46%"><div align="center">Liste</div></td>
            <td width="8%"><div align="center"></div></td>
            <td width="46%"><div align="center">Selection</div></td>
          </tr>
          <tr align="center" valign="middle" class="parag">
            <td><div align="center">
                <select name="dir_in[]" size="4" multiple="multiple" class="champ" id="select">
                  <? 
$sqldip = 'select id_membre, nom, prenom from tb_membres where dirigeant = 1 order by nom';
   // $nbsql += 1;
	if ($resselectdip = mysql_query($sqldip)) {
         while ($selectdip = mysql_fetch_array($resselectdip))
         {
                                 print '<option value="'.$selectdip["id_membre"].'">'.$selectdip["nom"].' '.$selectdip["prenom"].'</option>';
                                 
         }
    }
?>
                </select>
            </div></td>
            <td><p align="center">
                <input name="Submit2" type="button" class="bouton" value="<<" onclick='return DeplacerItemDeVers("dir_out[]", "dir_in[]")' />
              </p>
                <p align="center">
                  <input name="Submit3" type="button" class="bouton" value=">>" onclick='return DeplacerItemDeVers("dir_in[]", "dir_out[]")' />
              </p></td>
            <td><div align="center">
                <select name="dir_out[]" size="4" multiple="multiple" class="champ" id="dir_out">
                </select>
            </div></td>
          </tr>
      </table></td>
    </tr>
    <tr>
      <td align="left">&nbsp;</td>
      <td>&nbsp;</td>
      <td align="left">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td align="left">&nbsp;</td>
      <td>&nbsp;</td>
      <td align="left">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="4" align="left" bgcolor="#FFFFFF"><div align="left"><font color="#000099"><strong>INFOS 
        RESULTATS </strong></font></div></td>
    </tr>
    <tr valign="top">
      <td align="left">R&eacute;sum&eacute;</td>
      <td colspan="3"><font size="-2">S&eacute;lectionner le texte 
        avant de mettre en forme</font>
          <div align="right" id="outils">
            <div align="center"><img class="out" src="../../../images/title.gif" width="32" height="16" align="middle" onmouseover="this.className='over';" onmouseout="this.className='out';" onclick="formattitre('b');" /> <img class="out" src="../../../images/bold.gif" width="16" height="16" align="middle" onmouseover="this.className='over';" onmouseout="this.className='out';" onclick="format('b');" /> <img class="out" src="../../../images/italic.gif" width="16" height="16" align="middle" onmouseover="this.className='over';" onmouseout="this.className='out';" onclick="format('i');" /> <img class="out" src="../../../images/link.gif" width="32" height="16" align="middle" onmouseover="this.className='over';" onmouseout="this.className='out';" onclick="lien();" /> <br />
                <textarea name="remarques" cols="45" rows="3" id="remarques"></textarea>
            </div>
          </div></td>
    </tr>
    <tr>
      <td align="left">Score Cagnes</td>
      <td><input name="score_cag" type="text" class="champ" id="score_cag" size="15" maxlength="255" /></td>
      <td align="left">Score Adversaire</td>
      <td><input name="score_adv" type="text" class="champ" id="score_adv" size="15" maxlength="255" /></td>
    </tr>
    <tr>
      <td align="left">Lien Photo P</td>
      <td><input name="photo_p" type="text" class="champ" id="photo_p" size="15" maxlength="255" /></td>
      <td align="left">Lien Photo G</td>
      <td><input name="photo_g" type="text" class="champ" id="photo_g" size="15" maxlength="255" /></td>
    </tr>
    <tr>
      <td align="left">&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td valign="top">&nbsp;</td>
    </tr>
    <tr>
      <td align="left"><input name="Submit" type="submit" class="bouton" value="Ajouter convoc" onclick='return SelectionnerItems()' /></td>
      <td>&nbsp;</td>
      <td><input name="Submit22" type="button" class="bouton" value="Retour" onclick="history.go(-1);" /></td>
      <td valign="top">&nbsp;</td>
    </tr>
  </table>
  <p>&nbsp;</p>
</form>
Merci pour votre aide car je desespere !!!!!!!!

Posté : 21 févr. 2006, 22:28
par Dom!
Personne pour mon cas ?? :cry: de l'aiiiiide pleeeeaaaseeeee

Posté : 21 févr. 2006, 22:56
par ouckileou
C'est quand même bizarre ce fonctionnement, et ce "déplacerItem" vers dir_out

Pour ne sélectionner et transmettre que certains items, ce ne serait pas plus simle avec des cases à cocher ???

enfin il faut que récupère la variable dir_out en effet avec un truc du genre :
$temp = $_POST['dir_out'];

Posté : 21 févr. 2006, 23:03
par Dom!
Le probleme c'est que j'ai plus de 300 personne dans dir_out !!!! donc les cases à cocher c'est difficile.

Maintenant pour que je comprenne bien la valeur de dir_out dans mon cas est "array" ce qui est normal puisque je met :
$dir_out = array();
Ensuite je dis :
  $temp = implode(",",$dir_out);
Pourquoi dans ce cas la quand je met echo $temp; rien ne s'écrit ?

Posté : 21 févr. 2006, 23:21
par ouckileou
on revient au début...
$dir_out = array(); // initialise $dir_out comme tableau vide
$temp = implode(",",$dir_out); // dans $temp rassemble les valeurs du tableau en les séparant par des virgules => pas de valeurs, pas de virgules
Il faut donc qe tu récupères ta variable $dir_out transmise par POST, comme les autres

Posté : 21 févr. 2006, 23:28
par Dom!
Ok nous sommes d'accord !

Mais le probleme c'est que je mets $dir_out=$_POST['dir_out']; et aucune valeur n'est transmise !

Dois je faire quelque chose dans le formulaire ??

Posté : 21 févr. 2006, 23:34
par ouckileou
Si je lis bien, quand tu cliques sur un "dir_in", ça rajoute une option dans "dir_out"

Mais est-ce que tu les sélectionnez ces options ? si tu ne les sélectionnes pas, rien ne sera transmis