en plus, au début je le mettais dans un ' label ' le nom et il me les sortait bien, et la ca décalait tout..
bon j'ai bien les array qui vont bien, je cherche a intégrer ca dans JOUES comme un grand, et j'te tiens au jus
Code : Tout sélectionner
<?PHP
extract($_POST);
require ('conf.php');
$r_ids = $_POST['ids'];
$r_Dispo = $_POST['Dispo'];
$i = 1;
$ids = $r_ids[$i];
$Dispo = $r_Dispo[$i];
$i++;
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
DB_SERVER_PASSWORD)
or die('Impossible de se connecter : ' . mysql_error());
mysql_select_db(DB_DATABASE, $connect);
$sqlmatch = "SELECT id_match FROM `JOUES` order by id_match DESC LIMIT 0,1";
$resmatch = mysql_query($sqlmatch);
while($resultat = mysql_fetch_assoc($resmatch))
{
$match = $resultat['id_match'];
}
$sql = ("UPDATE JOUES SET `id_joueur` = '$ids', `Dispo` = '$Dispo' WHERE `id_match` = '$match'");
$res = mysql_query($sql);
?>Code : Tout sélectionner
$nb_reponses = count($ids);
for ($i = 1; $i<=$nb_reponses;$i++)
{
$id_joueur = $ids[$i];
$dispo = $Dispo[$i];
$sql = ("UPDATE JOUES SET `id_joueur` = '$id_joueur', `Dispo` = '$dispo' WHERE `id_match` = '$match'");
$res = mysql_query($sql);
echo $id_joueur;
echo '-';
echo $dispo;
echo '<br>';
}
$id_joueurs = '';
$dispos = '';
// concaténation des valeurs
for ($i = 1; $i<=$nb_reponses;$i++)
{
$id_joueurs .= $ids[$i] . ';';
$dispos .= $Dispo[$i] . ';';
}
//requête SQL
Ainsi on peut faire une seule requête qui contient tout notre bordel (ouais... pas d'autre nom à lui donner...).?PHP
/*partie simulation locale*/
$mysqli = mysqli_init();
$id_match = 712;
$lien = mysqli_real_connect($mysqli, "localhost", "root", "");
$ids = array(1=>1,2=>3,3=>5,4=>7);
$dispos = array (1 =>"Y",2=>"N",3=>"T", 4=>"Y");
$nb = count($ids);
/*on prend l'idée de xtg en faisant l'insertion en _une seule requete partie unique $requete; partie à développer $valeurs*/
$requete = "INSERT into foot.joues (id_joueur, id_match, dispo) VALUES ";
$valeurs = ""; //doit être vide au départ
for ($i = 1; $i <= $nb; $i++)
{
$id_joueur = $ids[$i];
$dispo = $dispos[$i];
//il faut que chaque série de valeurs soit encafrée par des parenthèses et séparée de la suivante pâr une virgule
// $virgule contient une virgule quand $i est inférieur au nombre de jeux de valeurs
$virgule = ($i < $nb) ? ",":"";
$valeurs .= "($id_joueur, $id_match,'$dispo')$virgule";
}
//on concatène les valeurs au début de la requete
$requete .= $valeurs;
print "<br>$requete<br>"; //vérification
mysqli_query($mysqli, $requete);
?>Code : Tout sélectionner
$nb = count($ids);
$requete = "INSERT into joues WHERE `id_match` = '$match' (id_joueur, Dispo) VALUES ";
$valeurs = ""; //doit être vide au départ
for ($i = 1; $i <= $nb; $i++)
{
$id_joueurs = $ids[$i];
$dispos = $Dispo[$i];
//il faut que chaque série de valeurs soit encafrée par des parenthèses et séparée de la suivante pâr une virgule
// $virgule contient une virgule quand $i est inférieur au nombre de jeux de valeurs
$virgule = ($i < $nb) ? ",":"";
$valeurs .= "($id_joueurs,$dispos)$virgule";
}
$requete .= $valeurs;
print "<br>$requete<br>"; //vérification
?>malgré ca, je pense que ca n'insert QUE, la derniere ids envoyée.INSERT into JOUES WHERE `id_match` = '2' (id_joueur, Dispo) VALUES (1,Y),(3,S),(4,S),(5,N),(7,A)