tester si une valeur est présente dans une table (erreur)

Eléphanteau du PHP | 23 Messages

20 janv. 2006, 14:16

bonjour,

voila mon soucis, je gère des compte utilisateur et je souhaite qu'a chaque identification je récupere la date de connexion, il y a 2 possibilité :

- Soit il y a déja eu une identification auquel cas je fais juste un update dans la table connexion

- Soit c'est la premiere connexion et je creer une nouvelle enregistrement dans la table connexion

a savoir que connexion a pour attribut "code_cnx, date_cnx et #code_user" et utilisateur "code_user, nom_user"

donc voici le code que j'ai taper a la vérification de l'identification :
<?php
session_start();



$nom = $_POST['nom'];
$login = $_POST['login'];
$pass = $_POST['pass'];


		mysql_connect("localhost", "root", "");
		mysql_select_db("annuaire"); 

		
		$sql = mysql_query("SELECT utilisateur.code_categ, code_user, nom_user, login_user, pass_user FROM categorie_user, utilisateur 
		WHERE categorie_user.code_categ = utilisateur.code_categ AND nom_user = '$nom' 
		AND login_user = '$login' AND pass_user = '$pass';");
		$data = mysql_fetch_array($sql);
		$code_user  = $data['code_user'];
		mysql_close ();

		mysql_connect("localhost", "root", "");
		mysql_select_db("annuaire"); 
		$sql2 = "select code_user from connexion where code_user = '$code_user';";
		$req2 = mysql_query($sql2) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
	
		if(mysql_numrows($sql)==0)
			{
				mysql_connect("localhost", "root", "");
				mysql_select_db("annuaire");
				$sql3 = "insert into connexion values ('','$code_user',  '".date("Y-m-d")."')";
				$req3 = mysql_query($sql3) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
				mysql_close ();
			}

		else
			{

				mysql_connect("localhost", "root", "");				
				mysql_select_db("annuaire");
				$sql4 = "UPDATE connexion SET date_cnx = '".date("Y-m-d")."' WHERE code_user = '$code_user'"; 
				$req4 = mysql_query($sql4) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

			}
si je vire mon test d'erreur l'insertion se fait (si aucun identification se fait donc si le code_user dans utilisateur ne se trouve pas dans connexion

et pareil pour l'update (si une identification a deja eu lieu et si le code se trouve dans les 2 table !!

donc voila je pense pas que mon test soit faux donc qu'est ce qui cloche ??

je m'en remet a vos connaissance

cordialement

st0nky ps: pour plus de clarté hésitez pas a me demander

Mammouth du PHP | 1029 Messages

23 janv. 2006, 10:29

A quoi sert ceci?
mysql_connect("localhost", "root", "");
        mysql_select_db("annuaire");
        $sql2 = "select code_user from connexion where code_user = '$code_user';";
        $req2 = mysql_query($sql2) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
ce n'est pas sur le sql2 que tu dois faire ton test?
 if(mysql_numrows($sql2)==0) 
L'expérience est la somme de toutes nos erreurs.