Page 1 sur 1

Probleme MySQL informations pas dans le bon ordre

Posté : 17 nov. 2014, 20:44
par EthanQuix
Bonjour a tous, je viens vers vous car j'ai un probleme.
En effet, je cree un formulaire d'inscription, tout marche bien, aucune erreur mais, quand je regarde ma table mysql il y a un probleme.
En effet,j'ai 6 colonnes (ID (qui s'auto incrémente) LOGIN , PRENOM , NOM , CLASSE , MOTDEPASSEMD5)
Et, le problème est que pour l'id il n'y a pas de problème, mais le LOGIN contient les informations de CLASSE , le NOM les informations de LOGIN et CLASSE le LOGIN.
Ducoup cela est assez génant ^^ mais PRENOM et MDP contiennent bien ce qu'ils doivent contenir.
SI jamais vous savez quel est le problème, toute aide est la bienvenue :D
<!DOCTYPE html>
<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') 

{
	// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
	if 
	(
	
	(isset($_POST['login']) && !empty($_POST['login']))
	 && 
	 (isset($_POST['prenom']) && !empty($_POST['prenom']))
	  &&
	   (isset($_POST['nom']) && !empty($_POST['nom']))
	     &&
		   (isset($_POST['classe']) && !empty($_POST['classe']))
	         &&
		       (isset($_POST['pass']) && !empty($_POST['pass']))
	             && 
	               (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))
	   ) 
		   
		   
		   {
	// on teste les deux mots de passe
	if ($_POST['pass'] != $_POST['pass_confirm']) {
		$erreur = 'Les 2 mots de passe sont différents.';
	}
	else {
		$base = mysql_connect ('bonjourr', 'commentcava', 'bienettoi');
		mysql_select_db ('moyenilpleut', $base);

		// on recherche si ce login est déjà utilisé par un autre membre
		$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_real_escape_string($_POST['login']).'"';
		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
		$data = mysql_fetch_array($req);

		if ($data[0] == 0) {
		$sql = 'INSERT INTO membre VALUES("", 
		"'.mysql_real_escape_string($_POST['login']).'",
		"'.mysql_real_escape_string($_POST['prenom']).'",
		"'.mysql_real_escape_string($_POST['nom']).'",
		"'.mysql_real_escape_string($_POST['classe']).'",
		"'.mysql_real_escape_string(md5($_POST['pass'])).'")';
		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

		session_start();
		$_SESSION['login'] = $_POST['login'];
		header('Location: membre.php');
		exit();
		}
		else {
		$erreur = 'Un membre possède déjà ce login.';
		}
	}
	}
	else {
	$erreur = 'Au moins un des champs est vide.';
	}
}
?>
<html>
<head>
<title>Inscription</title>
<link href="../css/login2.css" rel="stylesheet" type="text/css">
</head>

<body id="login">



<input type="submit" name="inscription" value="Inscription a l'espace membre"><br />
<form action="inscription.php" method="post">




Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />




Prenom : <input type="text" name="prenom" value="<?php if (isset($_POST['prenom'])) echo htmlentities(trim($_POST['prenom'])); ?>"><br />






Nom : <input type="text" name="nom" value="<?php if (isset($_POST['nom'])) echo htmlentities(trim($_POST['nom'])); ?>"><br />








Classe : <input type="text" name="classe" value="<?php if (isset($_POST['classe'])) echo htmlentities(trim($_POST['classe'])); ?>"><br />



<br />






Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />





Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />






<input type="submit" name="inscription" value="Inscription">



</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;
?>
</body>
</html>

Re: Probleme MySQL informations pas dans le bon ordre

Posté : 18 nov. 2014, 01:20
par Genova
Pour éviter de s'embrouiller il est possible (et même recommandé) de préciser les noms des champs lors d'une insertion en base de donnée. L'ordre des valeurs devant être le même que celui des champs :
INSERT INTO ta_table
(champ1, champ2, champ3)
VALUES (valeurChamp1, valeurChamp2, valeurChamp3)