Un enregistrement au lieu de 10 ...

Répondre
dededick
le 24/02/2007 à 16:41
dededick
Re-bonjour à tous! Nouveau problème:
Je récupère des entrées qui sont au nombre de 10 avec un $sql. Il m'affiche correctement les entrées, qui donnent lieu à un formulaire;
Je valide le formulaire et là, il ne me rentre que la dernière entrée dans ma table! Pourquoi?
Voici le code :
<?php
$sql = 'SELECT id_journee, nom_equipe, adversaire FROM resultat WHERE id_journee = "'.$id_journee.'"';

$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());

while ($data = mysql_fetch_array($req)) {

$id=$data['id'];
$id_journee = $data['id_journee'];
$nom_equipe = $data['nom_equipe'];
$adversaire = $data['adversaire'];
$adversaire = $_POST['adversaire'];

echo'
<input type="hidden" name="id_parieur" value="'.$data['id'].'"/>
<input type="hidden" name="id_journee" value="'.$data['id_journee'].'"/>
<input type="hidden" name="nom_equipe" value="'.$data['nom_equipe'].'"/>
<input type="hidden" name="adversaire" value="'.$data['adversaire'].'"/>
</form>';
// La ça marche
}
?>
// Page de validation
<?php
$sql = 'SELECT id, argent FROM membre WHERE pseudo = "'.$pseudo.'"';
$req = mysql_query ($sql) or die ('Erreur SQL !'.$sql.''.mysql_error());
$data = mysql_fetch_array ($req);
$id = $data['id'];
$argent = $data['argent'];
$_POST['adversaire'] = $adversaire;
$nom_equipe = $_POST['nom_equipe'];
$score_pari = $_POST['score_pari'];
if ($argent < 50)
{
echo "Vous n'avez pas assez d'argent!";
}
else
{
// On enlève les sous
$sql = 'UPDATE `membre` SET `argent` = "'.$argent.'" - 50 WHERE id = "'.$id.'"';
$req = mysql_query ($sql) or die ('Erreur SQL !'.$sql.''.mysql_error());

// On rentre le pari
$sql = 'INSERT INTO pari_ligue1 VALUES ("", "'.addslashes($_POST['id_journee']).'", "'.addslashes($id).'", "'.addslashes($nom_equipe).'", "'.addslashes($score_pari).'", "'.addslashes($adversaire).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
// La ça marche pas
?>

Il ne me rentre que les valeurs de la dernière ligne.
Merci beaucoup :)
XwZ
le 24/02/2007 à 18:42
XwZ
Salut,
je n'ai pas compris, tu fermes ton forumalaire dans ton while ... donc il devrait ne prendre que la première ligne.
Ensuite quand tu as plusieur champ d'un formulaire qui porte le même nom, il faut mettre des [] aprés pour que quand tu le poste tu puisses le récupérer via un tableau grave au foreach, par exemple :
<?php
while ($data = mysql_fetch_array($req)) {

// A quoi sert ces lignes si tu n'utilises pas les variables ?
$id=$data['id'];
$id_journee = $data['id_journee'];
$nom_equipe = $data['nom_equipe'];
$adversaire = $data['adversaire'];
$adversaire = $_POST['adversaire'];

echo'
<input type="hidden" name="id_parieur[]" value="'.$data['id'].'"/>
<input type="hidden" name="id_journee[]" value="'.$data['id_journee'].'"/>
<input type="hidden" name="nom_equipe[]" value="'.$data['nom_equipe'].'"/>
<input type="hidden" name="adversaire[]" value="'.$data['adversaire'].'"/>';
}
?>
</form>
<?php
foreach ( $_POST[ 'id_parieur' ] AS $indice => $valeur_parieur )
{
$id_journee = $_POST [ 'id_journee' ][ $indice ] ;
$nom_equipe = $_POST [ 'nom_equipe' ][ $indice ] ;
$adversaire = $_POST [ 'adversaire' ][ $indice ] ;

// ici tu mets tes requetes et tous ce que tu veux ...
}
?>

Voila ça devrait te convenir.
Si tu as envie de travailler assier toi et attend que &ccedil;a passe.
dededick
le 24/02/2007 à 18:58
dededick
Donc avec ce code, il me rentrera mes 10 matchs au lieu d'un seul?
Si c'est le cas merci, je vais tester le code au plus vite :)
dededick
le 25/02/2007 à 08:02
dededick
Désolé du double-post;
ça marche pile comme il faut :)
Merci beaucoup !
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours