Controle doublons et champs existants insertion mysql

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

max6
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 168
Inscription: Dim Mai 18, 2003 1:37

Controle doublons et champs existants insertion mysql

Message le Sam Nov 06, 2004 20:44

Bonjour

Voici mon probleme :

J'ai 3 tables :

tbl_acteurs , tbl_acteurs_fiche, tbl_fiche


Je veux par le biais d'un formulaire inserer des données dans ces trois tables , jusque la rien de compliqué si ce n'est que je veux controler les champs et les doublons en meme temps !

J'ai ceci dans mon fichier insertion.php :



A savoir que j'ai 6 champs acteurs dans mon formulaire mais il se peut qu'il ne soit pas tous rempli et qu'il existe déja dans la table acteurs ....


Je récupére dabbord lID fiche de l'insert précendent :
$id_fiche = mysql_insert_id();



je vérifier si le champs est rempli
if ($nom_acteurs1)
{


je vérifie si l'acteur existe déja dans la table acteurs
$sql = "SELECT id_acteurs FROM tbl_acteurs WHERE nom_acteurs='$nom_acteurs1'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$row= mysql_fetch_array($req);

$id_acteurs = htmlentities(StripSlashes($row["id_acteurs"]));

si il existe : j'ajoute juste son ID dans la table acteurs_fiche
if($row==$nom_acteurs1)
{
$sql = "insert into tbl_acteurs_fiche(id_acteurs_fiche, id_acteurs, id_fiche) values(\"\",\"$id_acteurs\",\"$id_fiche\")";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}

Sinon je crée un enregistrement dans la table acteur , je recupere lid et je l'insere dans tbl_acteurs_fiche
else
{
$sql = "insert into tbl_acteurs(id_acteurs, nom_acteurs) values(\"\",\"$nom_acteurs1\")";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$id_acteurs = mysql_insert_id();
$sql = "insert into tbl_acteurs_fiche(id_acteurs_fiche, id_acteurs, id_fiche) values(\"\",\"$id_acteurs\",\"$id_fiche\")";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}

}





if ($nom_acteurs2)
{

$sql = "SELECT id_acteurs FROM tbl_acteurs WHERE nom_acteurs='$nom_acteurs2'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$row= mysql_fetch_array($req);

$id_acteurs = htmlentities(StripSlashes($row["id_acteurs"]));



if($row==$nom_acteurs2)
{
$sql = "insert into tbl_acteurs_fiche(id_acteurs_fiche, id_acteurs, id_fiche) values(\"\",\"$id_acteurs\",\"$id_fiche\")";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}
else
{
$sql = "insert into tbl_acteurs(id_acteurs, nom_acteurs) values(\"\",\"$nom_acteurs2\")";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$id_acteurs = mysql_insert_id();
$sql = "insert into tbl_acteurs_fiche(id_acteurs_fiche, id_acteurs, id_fiche) values(\"\",\"$id_acteurs\",\"$id_fiche\")";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}

}


.................
...............
...............
...........


Bien "évidemment ca fonctionne pas comme je veux !

Si quelqu'un peut m'aider ...
Merci par avance

jeroen
WRInaute accro
WRInaute accro
 
Messages: 2383
Inscription: Ven Aoû 30, 2002 13:35

Message le Sam Nov 06, 2004 23:12

Impossible de se plonger dans ton code...
Morcèle le et identifie plus précisement la partie qui bug...

Au début j'ai vu ça :

Je récupére dabbord lID fiche de l'insert précendent :
$id_fiche = mysql_insert_id();


Il me semble que le mysql_insert_id() n'est disponible qu'apres un insert..
ici il doit retourner false...

cr500
WRInaute impliqué
WRInaute impliqué
 
Messages: 275
Inscription: Mer Oct 13, 2004 13:57

Message le Dim Nov 07, 2004 10:38

moi je te conseil pour savori si la variable existe dutilisé

isset()

Code: Tout sélectionner
if(isset($variable))



attention si la variable issu d un formulaire


Code: Tout sélectionner
  $_REQUEST[variable]




  (= $variable )

max6
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 168
Inscription: Dim Mai 18, 2003 1:37

Message le Dim Nov 07, 2004 15:26

Ok pour la vérification du champs mais le probleme vient surtout du controle de l'existence de l'enregistrement dans ma table mysql , d'ou le select du début !

Le insert du début signifie qu'on le récupere apres un enregistrement que je n'ai volontairement pas mis dans le code puisque ca ne sert a rien dans le cas présent


Il faut juste combiner le controle du champ rempli et l'existence de l'enregisrement et procéder aux actions necessaires selon le résultat du select .


Max


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités