Controle doublons et champs existants insertion mysql
4 messages • Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
Controle doublons et champs existants insertion mysql
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
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
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 :
Il me semble que le mysql_insert_id() n'est disponible qu'apres un insert..
ici il doit retourner false...
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...
moi je te conseil pour savori si la variable existe dutilisé
isset()
attention si la variable issu d un formulaire
isset()
- Code: Tout sélectionner
if(isset($variable))
attention si la variable issu d un formulaire
- Code: Tout sélectionner
$_REQUEST[variable]
(= $variable )
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
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
4 messages • Page 1 sur 1
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 :
- insertion dans un champs Mysql de type BLOB
- Requete Mysql probleme doublons
- effacer es doublons d'une table mysql [script]
- probleme insertion en serveur mysql
- mysql : insertion d'un champ vide
- [mysql] insertion si pas dans la table
- Script php/mysql de contrôle des échanges de liens
- Problemes insertion avec formulaire dans mysql
Consultez la description détaillée des produits ou services de Google suivants : Google Video Store
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum