Problème d'insertion dans la BD...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème d'insertion dans la BD...

par Psyko » 22 mai 2006, 19:38

Toujours pas de p'tit coup de pouce pour moi ? :cry:

par Psyko » 20 mai 2006, 11:05

Un p'tit Up pour avoir un p'tit coup de main supplémentaire please.. :roll:

par Invité » 18 mai 2006, 22:48

Euh.. oui sauf que là, tu créer un tableau qui s'appelle $equipie_sa qui va contenir les valeurs récupérées de la base... y a pas de lien avec ton formulaire ou $_POST ...
tu peux faire un p'tit "echo $_POST['equipe_sa'];" pour voir ce qu'il contient ? (ou un print_r($_POST); pour vérifier les index existant)
Le problème est peut-être lié à cela car lorsque je fais un echo, voici le message d'erreur :
Notice: Undefined index: equipe_sa in c:\program files\easyphp1-8\www\site_usc\admin\maj_class.php on line 135

Mais alors je mets quoi en condition ou comment je m'y prends pour le définir auparavant ? :s
Logiquement je suis d'accord, mais en pratique ? $nombre_matchs peut être égal à zero et donc la boucle ne jamais s'exécuter...
un p'tit echo encore une fois ? :)
Ca m'affiche le bon nombre de matchs, pas de problème sur ce point.
Damned ! manqué !! ;)
:wink:

par Ryle » 18 mai 2006, 12:47

- est ce que $_POST['equipe_sa'] est défini ?
Oui il l'est dans le formulaire de saisie :
$sql = 'SELECT equipe_sa FROM classement_sa ORDER BY equipe_sa ASC';
	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
	$i=0;
	while ($data = mysql_fetch_array($req))
	{
		$equipe_sa[$i]=$data['equipe_sa'];
		$i++;
	}
Euh.. oui sauf que là, tu créer un tableau qui s'appelle $equipie_sa qui va contenir les valeurs récupérées de la base... y a pas de lien avec ton formulaire ou $_POST ...
tu peux faire un p'tit "echo $_POST['equipe_sa'];" pour voir ce qu'il contient ? (ou un print_r($_POST); pour vérifier les index existant)
- est ce que $j est bien inférieur a $nombre_matchs ?
Dans la logique des choses, je pense que oui.
Logiquement je suis d'accord, mais en pratique ? $nombre_matchs peut être égal à zero et donc la boucle ne jamais s'exécuter...
un p'tit echo encore une fois ? :)
- quel est ton numéro de carte bleue ? (ben quoi, il a dit de pas hésiter à le questionner ?!)
...
Euuuh, m'en rappelle plus :roll: :wink:
Damned ! manqué !! ;)

par Invité » 18 mai 2006, 12:37

- as tu des messages d'erreur ?
Aucun..
- est ce que $_POST['equipe_sa'] est défini ?
Oui il l'est dans le formulaire de saisie :
$sql = 'SELECT equipe_sa FROM classement_sa ORDER BY equipe_sa ASC';
	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
	$i=0;
	while ($data = mysql_fetch_array($req))
	{
		$equipe_sa[$i]=$data['equipe_sa'];
		$i++;
	}
- est ce que $j est bien inférieur a $nombre_matchs ?
Dans la logique des choses, je pense que oui.
- est ce que $_POST['equipe_sa'.$x] est différent de $_POST['equipe_sa'.$y] ?
Oui, lorsque je fais des tests, j'entre 2 équipes différentes.
- quel est ton numéro de carte bleue ? (ben quoi, il a dit de pas hésiter à le questionner ?!)
...
Euuuh, m'en rappelle plus :roll: :wink:

par Ryle » 18 mai 2006, 11:56

Pour simplifier un peu, c'est ici que tu fais le insert :
if (isset($_POST['equipe_sa'])) {      
	$serie='classement_sa'; 
   for ($j=0,$x=0,$y=1;$j<$nombre_matchs;$j++,$x=$x+2,$y=$y+2) { 
		if ($_POST['equipe_sa'.$x]!=$_POST['equipe_sa'.$y]) { 
			$sql = 'INSERT INTO matchs_sa (journee_sa, equipe_dom_sa, equipe_ext_sa, score_dom_sa, score_ext_sa) VALUES ("'.$_POST['jour'].'", "'.$_POST['equipe_sa'.$x].'", "'.$_POST['equipe_sa'.$y].'", "'.$_POST['score'.$x].'", "'.$_POST['score'.$y].'")';
			$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
Maintenant les questions :
- as tu des messages d'erreur ?
- est ce que $_POST['equipe_sa'] est défini ?
- est ce que $j est bien inférieur a $nombre_matchs ?
- est ce que $_POST['equipe_sa'.$x] est différent de $_POST['equipe_sa'.$y] ?
- quel est ton numéro de carte bleue ? (ben quoi, il a dit de pas hésiter à le questionner ?!)
...

Problème d'insertion dans la BD...

par Psyko » 18 mai 2006, 11:42

Voila, j'ai écrit un petit script permettant d'entrer les résultats d'une journée de football et d'en batir en classement à l'aide d'une attribution de points selon les scores.

Le programme tourne, aucun souci là dessus je pense.
Simplement, il n'y a pas moyen d'insérer mes résultats dans ma base de données !

PS : Ca n'a marché qu'une seule fois, mais je n'ai pas compris pourquoi puisque le code est resté inchangé :shock:

Voici le code de la page qui permet de mettre à jour les données à partir d'un formulaire préalablement saisit :
<?
$connexion=mysql_connect("localhost", "root", "");
$db=mysql_select_db("bd_usc");

	
	$sql = 'SELECT equipe_sa FROM classement_sa';
	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
	$i=0;
					
	while ($data = mysql_fetch_array($req))
		{
		$equipe_sa[$i]=$data['equipe_sa'];
		$i++;
		}
	
	$nombre_matchs=$i/2;
	
	

			
	if (isset($_POST['equipe_sa']))

		{     
		  $serie='classement_sa';
		  for ($j=0,$x=0,$y=1;$j<$nombre_matchs;$j++,$x=$x+2,$y=$y+2)
			{ 
			  if ($_POST['equipe_sa'.$x]!=$_POST['equipe_sa'.$y])
				{
				
				$sql = 'INSERT INTO matchs_sa (journee_sa, equipe_dom_sa, equipe_ext_sa, score_dom_sa, score_ext_sa) VALUES ("'.$_POST['jour'].'", "'.$_POST['equipe_sa'.$x].'", "'.$_POST['equipe_sa'.$y].'", "'.$_POST['score'.$x].'", "'.$_POST['score'.$y].'")';
				$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());			
			
			$sql = 'SELECT * FROM '.$serie.' WHERE equipe_sa="'.$_POST['equipe_sa'.$x].'"';
			$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
			while ($data = mysql_fetch_array($req))
					{
					$bp_sa=$data['bp_sa']+$_POST['score'.$x];
					$bc_sa=$data['bc_sa']+$_POST['score'.$y];
					$sql = 'UPDATE '.$serie.' SET bp_sa="'.$bp_sa.'", bc_sa="'.$bc_sa.'" WHERE equipe_sa="'.$_POST['equipe_sa'.$x].'"';
					$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
					}
			$sql = 'SELECT * FROM '.$serie.' WHERE equipe_sa="'.$_POST['equipe_sa'.$y].'"';
			$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
			while ($data = mysql_fetch_array($req))
					{
					$bp_sa=$data['bp_sa']+$_POST['score'.$y];
					$bc_sa=$data['bc_sa']+$_POST['score'.$x];
					$sql = 'UPDATE '.$serie.' SET bp_sa="'.$bp_sa.'", bc_sa="'.$bc_sa.'" WHERE equipe_sa="'.$_POST['equipe_sa'.$y].'"';
					$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
					}
			if ($_POST['score'.$x]>$_POST['score'.$y])
				{
				$sql = 'SELECT * FROM '.$serie.' WHERE equipe_sa="'.$_POST['equipe_sa'.$x].'"';
				$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
				while ($data = mysql_fetch_array($req))
					{
					$v_sa=$data['v_sa']+1;
					$pts_sa=$data['pts_sa']+4;
					$sql = 'UPDATE '.$serie.' SET pts_sa="'.$pts_sa.'", v_sa="'.$v_sa.'" WHERE equipe_sa="'.$_POST['equipe_sa'.$x].'"';
					$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
					}
				$sql = 'SELECT * FROM '.$serie.' WHERE equipe_sa="'.$_POST['equipe_sa'.$y].'"';
				$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
				while ($data = mysql_fetch_array($req))
					{
					$d_sa=$data['d_sa']+1;
					$pts_sa=$data['pts_sa']+1;
					$sql = 'UPDATE '.$serie.' SET pts_sa="'.$pts_sa.'",d_sa="'.$d_sa.'" WHERE equipe_sa="'.$_POST['equipe_sa'.$y].'"';
					$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
					}
				}
			elseif ($_POST['score'.$x]==$_POST['score'.$y])
				{
				$sql = 'SELECT * FROM '.$serie.' WHERE equipe_sa="'.$_POST['equipe_sa'.$x].'"';
				$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
				while ($data = mysql_fetch_array($req))
					{
					$n_sa=$data['n_sa']+1;
					$pts_sa=$data['pts_sa']+2;
					$sql = 'UPDATE '.$serie.' SET pts_sa="'.$pts_sa.'", n_sa="'.$n_sa.'" WHERE equipe_sa="'.$_POST['equipe_sa'.$x].'"';
					$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
					}
				$sql = 'SELECT * FROM '.$serie.' WHERE equipe_sa="'.$_POST['equipe_sa'.$y].'"';
				$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
				while ($data = mysql_fetch_array($req))
					{
					$n_sa=$data['n_sa']+1;
					$pts_sa=$data['pts_sa']+2;
					$sql = 'UPDATE '.$serie.' SET pts_sa="'.$pts_sa.'", n_sa="'.$n_sa.'" WHERE equipe_sa="'.$_POST['equipe_sa'.$y].'"';
					$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
					}			
				}
			elseif ($_POST['score'.$x]<$_POST['score'.$y])
				{
				$sql = 'SELECT * FROM '.$serie.' WHERE equipe_sa="'.$_POST['equipe_sa'.$x].'"';

				$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
				while ($data = mysql_fetch_array($req))
					{
					$d_sa=$data['d_sa']+1;
					$pts_sa=$data['pts_sa']+1;
					$sql = 'UPDATE '.$serie.' SET pts_sa="'.$pts_sa.'",d_sa="'.$d_sa.'" WHERE equipe_sa="'.$_POST['equipe_sa'.$x].'"';
					$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
					}
				$sql = 'SELECT * FROM '.$serie.' WHERE equipe_sa="'.$_POST['equipe_sa'.$y].'"';
				$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
				while ($data = mysql_fetch_array($req))
					{
					$v_sa=$data['v_sa']+1;
					$pts_sa=$data['pts_sa']+4;
					$sql = 'UPDATE '.$serie.' SET pts_sa="'.$pts_sa.'", v_sa="'.$v_sa.'" WHERE equipe_sa="'.$_POST['equipe_sa'.$y].'"';
					$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
					}
					}
				}
				
			$sql = 'SELECT * FROM '.$serie.' WHERE equipe_sa="'.$_POST['equipe_sa'.$x].'"';
			$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
			while ($data = mysql_fetch_array($req))
					{
					$difference=($data['bp_sa'])-($data['bc_sa']);
					$sql = 'UPDATE '.$serie.' SET diff_sa='.$difference.' WHERE equipe_sa="'.$_POST['equipe_sa'.$x].'"';
					$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
					}
			$sql = 'SELECT * FROM '.$serie.' WHERE equipe_sa="'.$_POST['equipe_sa'.$y].'"';
			$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
			while ($data = mysql_fetch_array($req))
					{
					$difference=($data['bp_sa'])-($data['bc_sa']);
					$sql = 'UPDATE '.$serie.' SET diff_sa='.$difference.' WHERE equipe_sa="'.$_POST['equipe_sa'.$y].'"';
					$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
					}
			}
		}
	echo 'Matchs correctement mis à jour !<br>';
	echo '<a href="../classement_sa.php"> Voir le Classement </a>';

mysql_close();
?>
Merci de votre précieuse aide et n'hésitez pas à me questionner si vous voulez plus de détails.