Insertion des données dans 2tables !!
Résolu/Fermé
goldray
Messages postés
82
Date d'inscription
mercredi 24 septembre 2008
Statut
Membre
Dernière intervention
1 juin 2014
-
26 avril 2011 à 01:31
goldray Messages postés 82 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 1 juin 2014 - 27 avril 2011 à 17:17
goldray Messages postés 82 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 1 juin 2014 - 27 avril 2011 à 17:17
A voir également:
- Insertion des données dans 2tables !!
- Insertion signature word - Guide
- Insertion liste déroulante excel - Guide
- Insertion table des matières word - Guide
- Touche insertion clavier - Guide
- Effacer les données de navigation - Guide
5 réponses
peluchextoutou
Messages postés
197
Date d'inscription
dimanche 14 février 2010
Statut
Membre
Dernière intervention
10 octobre 2011
11
26 avril 2011 à 03:27
26 avril 2011 à 03:27
fais deux fois insert
goldray
Messages postés
82
Date d'inscription
mercredi 24 septembre 2008
Statut
Membre
Dernière intervention
1 juin 2014
8
26 avril 2011 à 03:52
26 avril 2011 à 03:52
Salut mon ami , j'ai 2fois insert , tout va bien , mais le probléme est lorsque je teste les 2 requetes !! il ya un erreur !!
je crois cette écriture est fausse :
if ($req) and ($req2) // je crois la faute est là avec $req c'est la 1ére requete et $req2 c'est la 2éme
{
echo " Ajout est fait";
}
else
{
echo "pas d'ajout";
}
et merciiii
je crois cette écriture est fausse :
if ($req) and ($req2) // je crois la faute est là avec $req c'est la 1ére requete et $req2 c'est la 2éme
{
echo " Ajout est fait";
}
else
{
echo "pas d'ajout";
}
et merciiii
peluchextoutou
Messages postés
197
Date d'inscription
dimanche 14 février 2010
Statut
Membre
Dernière intervention
10 octobre 2011
11
26 avril 2011 à 13:18
26 avril 2011 à 13:18
ce n'est pas un erreur, tu as juste une mauvaise syntaxe ;)
sql ne va pas retourner true ou false donc un if ne fonctionnera pas
essaie quelquechose du genre :
si tout se fait sans erreur, marque résolu, si tu as un erreur, copie-colle ici :)
et je te conseille de protéger ton script contre l'injection sql car n'importe qui pourrait vider tes tables en 1 seconde.. copie-colle moi ton code complet svp.
sql ne va pas retourner true ou false donc un if ne fonctionnera pas
essaie quelquechose du genre :
$req1 = "INSERT INTO (...)"; mysql_query($req1) or die(mysql_error()); puis $req2 = "INSERT INTO (...)"; mysql_query($req2) or die(mysql_error());
si tout se fait sans erreur, marque résolu, si tu as un erreur, copie-colle ici :)
et je te conseille de protéger ton script contre l'injection sql car n'importe qui pourrait vider tes tables en 1 seconde.. copie-colle moi ton code complet svp.
goldray
Messages postés
82
Date d'inscription
mercredi 24 septembre 2008
Statut
Membre
Dernière intervention
1 juin 2014
8
26 avril 2011 à 18:57
26 avril 2011 à 18:57
Salut à tous ,
voici mon nouveau problème :
je veux insérer 3 requetes en méme temps dans deux tables ....
mais 2requetes se réalisent avec succés mais une ne se réalise pas (c'est la requete $req1) , avec cette requete je veux que la valeur de Id_Client de la table Clients soit insérer au niveau de la table personne_physique , mais ce n'est pas le cas puisque j'aurai comme valeur chez id_Client de la table clients la valeur 1 ...et chez l'autre table j'aurai la valeur 0 !!! or je dois avoir le méme valeur chez les 2 c.a.d la valeur 1 ..... :voici les requetes :
if ((!empty($_POST['cin_client'])) AND (!empty($_POST['prenom_client'])))
{
$req= $bdd->prepare('INSERT INTO clients(Nom_Client,Tel_Client,GSM_Client,Adresse_Client) values(?,?,?,?)');
$req->execute(array($_POST['nom_client'],$_POST['tel_client'],$_POST['gsm_client'],$_POST['adresse_client']));
$req1= $bdd->query('Insert into personne_physique select Id_Client from Clients');
$req2= $bdd->prepare('INSERT INTO personne_physique(CIN_Client,Prenom_Client) values(?,?)');
$req2->execute(array($_POST['cin_client'],$_POST['prenom_client']));
}
et merci
voici mon nouveau problème :
je veux insérer 3 requetes en méme temps dans deux tables ....
mais 2requetes se réalisent avec succés mais une ne se réalise pas (c'est la requete $req1) , avec cette requete je veux que la valeur de Id_Client de la table Clients soit insérer au niveau de la table personne_physique , mais ce n'est pas le cas puisque j'aurai comme valeur chez id_Client de la table clients la valeur 1 ...et chez l'autre table j'aurai la valeur 0 !!! or je dois avoir le méme valeur chez les 2 c.a.d la valeur 1 ..... :voici les requetes :
if ((!empty($_POST['cin_client'])) AND (!empty($_POST['prenom_client'])))
{
$req= $bdd->prepare('INSERT INTO clients(Nom_Client,Tel_Client,GSM_Client,Adresse_Client) values(?,?,?,?)');
$req->execute(array($_POST['nom_client'],$_POST['tel_client'],$_POST['gsm_client'],$_POST['adresse_client']));
$req1= $bdd->query('Insert into personne_physique select Id_Client from Clients');
$req2= $bdd->prepare('INSERT INTO personne_physique(CIN_Client,Prenom_Client) values(?,?)');
$req2->execute(array($_POST['cin_client'],$_POST['prenom_client']));
}
et merci
peluchextoutou
Messages postés
197
Date d'inscription
dimanche 14 février 2010
Statut
Membre
Dernière intervention
10 octobre 2011
11
27 avril 2011 à 03:09
27 avril 2011 à 03:09
if ($_POST['cin_client'] AND $_POST['prenom_client']) { foreach($_POST AS $k => $v) // PROTECTION CONTRE INJECTION SQL { eval('$'. $k. ' = '. $bdd->real_escape_string($v). ";\n"); } // FIN PROTECTION $req = 'INSERT INTO clients SET Nom_Client="'.$nom_client.'",Tel_Client="'.$tel_client.'",GSM_Client="'.$gsm_client.'",Adresse_Client="'.$adresse_client.'"'; $bdd->query($req); unset($req); $req = 'INSERT INTO personne_physique SELECT Id_Client FROM clients'; $bdd->query($req); unset($req); $req = 'INSERT INTO personne_physique SET CIN_Client="'.$cin_client.'",Prenom_Client="'.$prenom_client.'"'; }
peluchextoutou
Messages postés
197
Date d'inscription
dimanche 14 février 2010
Statut
Membre
Dernière intervention
10 octobre 2011
11
27 avril 2011 à 03:13
27 avril 2011 à 03:13
et avec correction du Id_Client:
if ($_POST['cin_client'] AND $_POST['prenom_client']) { foreach($_POST AS $k => $v) // PROTECTION CONTRE INJECTION SQL { eval('$'. $k. ' = '. $bdd->real_escape_string($v). ";\n"); } // FIN PROTECTION $idcli = time(); $req = 'INSERT INTO clients SET Id_Client="'.$idcli.'",Nom_Client="'.$nom_client.'",Tel_Client="'.$tel_client.'",GSM_Client="'.$gsm_client.'",Adresse_Client="'.$adresse_client.'"'; $bdd->query($req); unset($req); $req = 'INSERT INTO personne_physique SET Id_Client="'.$idcli.'",CIN_Client="'.$cin_client.'",Prenom_Client="'.$prenom_client.'"'; }
peluchextoutou
Messages postés
197
Date d'inscription
dimanche 14 février 2010
Statut
Membre
Dernière intervention
10 octobre 2011
11
27 avril 2011 à 03:14
27 avril 2011 à 03:14
et pourquoi faire deux tables quand tu pourrait mettre ces infos dans une seule..
goldray
Messages postés
82
Date d'inscription
mercredi 24 septembre 2008
Statut
Membre
Dernière intervention
1 juin 2014
8
27 avril 2011 à 03:35
27 avril 2011 à 03:35
Salut mon amii ,merci beaucoup pour tes propositions ,je vais les vérifier ...pour l'injection ,je crois on l'utilise lorsque on créé un site_web or je vais faire cette Base de données pour une application_Web ..dans tout les cas merci bien ....
Mon ami , j'ai une table nommé clients ,qui posséde 2 tables filles (par géneralisation) , ces 2 tables ont des attributs communs qui j'ai les mis au niveau de la table clients , et chacune d'elle posséde ses attributs spécifiques ....Donc moi j'ai un formulaire nommé Ajout client , je vais ajouter les données soit à les tables client et personne_physique soit aux tables clients et personne_morale ...et j'ai mit les vérification des champs vides ou non pour que je fait la distinction entre les 2tables(personne_phy et celle morale ) ..
j'espére que tu m'as compris ....
et merci
Mon ami , j'ai une table nommé clients ,qui posséde 2 tables filles (par géneralisation) , ces 2 tables ont des attributs communs qui j'ai les mis au niveau de la table clients , et chacune d'elle posséde ses attributs spécifiques ....Donc moi j'ai un formulaire nommé Ajout client , je vais ajouter les données soit à les tables client et personne_physique soit aux tables clients et personne_morale ...et j'ai mit les vérification des champs vides ou non pour que je fait la distinction entre les 2tables(personne_phy et celle morale ) ..
j'espére que tu m'as compris ....
et merci
goldray
Messages postés
82
Date d'inscription
mercredi 24 septembre 2008
Statut
Membre
Dernière intervention
1 juin 2014
8
27 avril 2011 à 04:01
27 avril 2011 à 04:01
salut mon ami , d'aprés MYSQL il s'agit d'un erreur au niveau de la ligne 6 c.a.d au niveau de "contre injection" ...voici :
<?php
include("cnx.php");
if ($_POST['cin_client'] AND $_POST['prenom_client'])
{ foreach($_POST AS $k => $v) // PROTECTION CONTRE INJECTION SQL
{
eval('$'. $k. ' = '. $bdd->real_escape_string($v). ";\n");
} // FIN PROTECTION
$idcli = time(); $req = 'INSERT INTO clients SET Id_Client="'.$idcli.'",Nom_Client="'.$nom_client.'",Tel_Client="'.$tel_client.'",GSM_Client="'.$gsm_client.'",Adresse_Client="'.$adresse_client.'"'; $bdd->query($req); unset($req);
$req = 'INSERT INTO personne_physique SET Id_Client="'.$idcli.'",CIN_Client="'.$cin_client.'",Prenom_Client="'.$prenom_client.'"';
if ($req)
{
echo "ajout fait";
}
else
{
echo "pas d'ajout";
}
}
l'erreur géneré par MYSQL est :( ! ) Fatal error: Call to undefined method PDO::real_escape_string() in C:\wamp\www\menu_pr\cible.php on line 6
et merci :)
<?php
include("cnx.php");
if ($_POST['cin_client'] AND $_POST['prenom_client'])
{ foreach($_POST AS $k => $v) // PROTECTION CONTRE INJECTION SQL
{
eval('$'. $k. ' = '. $bdd->real_escape_string($v). ";\n");
} // FIN PROTECTION
$idcli = time(); $req = 'INSERT INTO clients SET Id_Client="'.$idcli.'",Nom_Client="'.$nom_client.'",Tel_Client="'.$tel_client.'",GSM_Client="'.$gsm_client.'",Adresse_Client="'.$adresse_client.'"'; $bdd->query($req); unset($req);
$req = 'INSERT INTO personne_physique SET Id_Client="'.$idcli.'",CIN_Client="'.$cin_client.'",Prenom_Client="'.$prenom_client.'"';
if ($req)
{
echo "ajout fait";
}
else
{
echo "pas d'ajout";
}
}
l'erreur géneré par MYSQL est :( ! ) Fatal error: Call to undefined method PDO::real_escape_string() in C:\wamp\www\menu_pr\cible.php on line 6
et merci :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
goldray
Messages postés
82
Date d'inscription
mercredi 24 septembre 2008
Statut
Membre
Dernière intervention
1 juin 2014
8
27 avril 2011 à 17:17
27 avril 2011 à 17:17
salut merci à tous , j'ai trouvé la solution pour l'insertion du dernier Identifient d'une table vers une autre ....
voici le code , je veux l'améliorer et éliminer les ambiguës...
mais j'ai des petites problémes , concernant la vérification des champs par exemple :
je veux que le champ Nom Client contient seulement des lettres(A-Za-z) si non un message d'erreur s'affiche ...
et merci
voici le code , je veux l'améliorer et éliminer les ambiguës...
<?php include("cnx.php"); if ((!empty($_POST['cin_client'])) AND (!empty($_POST['prenom_client']))) { $req= $bdd->prepare('INSERT INTO clients(Nom_Client,Tel_Client,GSM_Client,Adresse_Client) values(?,?,?,?)'); $req->execute(array($_POST['nom_client'],$_POST['tel_client'],$_POST['gsm_client'],$_POST['adresse_client']));unset($req); $idclt=0; $idclt=$bdd->lastInsertId(); $req2= $bdd->prepare('INSERT INTO personne_physique(CIN_Client,Prenom_Client,Id_Client) values(?,?,?)'); $req2->execute(array($_POST['cin_client'],$_POST['prenom_client'],$idclt)); if ($req2) { echo "ajout fait"; } else { echo "Ajout non effectué";} } elseif ((!empty($_POST['matricule_fiscale'])) AND (!empty($_POST['raison_sociale']))) { $req= $bdd->prepare('INSERT INTO clients(Nom_Client,Tel_Client,GSM_Client,Adresse_Client) values(?,?,?,?)'); $req->execute(array($_POST['nom_client'],$_POST['tel_client'],$_POST['gsm_client'],$_POST['adresse_client'])); $idclt2=0; $idclt2=$bdd->lastInsertId(); $req3= $bdd->prepare('INSERT INTO personne_morale(Matricule_Fiscale,Raison_Sociale,Id_Client) values(?,?,?)'); $req3->execute(array($_POST['matricule_fiscale'],$_POST['raison_sociale'],$idclt2)); if (($req) and ($req3)) { echo "Ajout fait";} else { echo "ajout non effectué"; } } else { echo "SVP saisir les données"; } ?>
mais j'ai des petites problémes , concernant la vérification des champs par exemple :
je veux que le champ Nom Client contient seulement des lettres(A-Za-z) si non un message d'erreur s'affiche ...
et merci