Page 1 sur 1

1 formulaire pour 2 tables

Posté : 26 janv. 2010, 15:57
par Romuald632
Bonjour,
J'ai un formulaire qui doit à la fois remplir une table et mettre à jour la deuxième.
Pour remplir la première pas de problème, par contre ça coince dans mon UPDATE pour la deuxième table.
Voilà mon code :
mysql_connect("localhost", "root","");
mysql_select_db('***');

if(isset($_POST['prog_promo']))      $prog_promo=$_POST['prog_promo'];
else      $prog_promo="";

if(isset($_POST['prog_promo']))      $nom_site=$_POST['prog_promo'];
else      $nom_site="";

if(isset($_POST['date_debut_promo']))      $date_debut_promo=$_POST['date_debut_promo'];
else      $date_debut_promo="";

if(isset($_POST['date_fin_promo']))      $date_fin_promo=$_POST['date_fin_promo'];
else      $date_fin_promo="";

if(isset($_POST['texte_promo']))      $texte_promo=$_POST['texte_promo'];
else      $texte_promo="";

if(isset($_POST['lien_web']))      $lien_web=$_POST['lien_web'];
else      $lien_web="";

if(isset($_POST['promotion']))      $promotion=$_POST['promotion'];
else      $promotion="";

if( isset($_POST['upload']) )
{
    $content_dir = '../logos_promotion/';

    $tmp_file = $_FILES['logo_prog_promo']['tmp_name'];

    if( !is_uploaded_file($tmp_file) )
    {
        exit("Le fichier est introuvable");
    }

// on vérifie maintenant l'extension
    $type_file = $_FILES['logo_prog_promo']['type'];

    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'png') && !strstr($type_file, 'gif') )
    {
        exit("Le fichier n'est pas une image");
    }

// on copie le fichier dans le dossier de destination
    $logo_prog_promo = $_FILES['logo_prog_promo']['name'];

    if( !move_uploaded_file($tmp_file, $content_dir . $logo_prog_promo) )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }
}

mysql_query("SET NAMES 'utf8'");

$sql="INSERT INTO *** (id_site_promotion,prog_promo,logo_prog_promo,date_debut_promo,date_fin_promo,texte_promo,lien_web) 
VALUES('".mysql_real_escape_string('')."','".mysql_real_escape_string($prog_promo)."','".mysql_real_escape_string($logo_prog_promo)."','".mysql_real_escape_string($date_debut_promo)."','".mysql_real_escape_string($date_fin_promo)."','".mysql_real_escape_string($texte_promo)."','".mysql_real_escape_string($lien_web)."')";mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

$sql = 'UPDATE **** SET nom_site="'.$nom_site.'" WHERE id_site="'.$_POST['id_site']."';
(id_site,nom_site,logo_site,presentation_site,description_site,lien_site,copie_ecran_site,rubrique_id,visible,promotion) 
VALUES('','','','','','','','','','".mysql_real_escape_string($promotion)."')';mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
Merci de votre aide

Re: 1 formulaire pour 2 tables

Posté : 26 janv. 2010, 22:25
par Invité
Hello,

Si tu veux que quelqu'un t'aide donne plus d'informations. Quel est le comportement ? Quel message d'erreur, etc.

Re: 1 formulaire pour 2 tables

Posté : 27 janv. 2010, 11:33
par Invité
Bonjour,

essaye plutôt cette requête :
UPDATE maTable 
SET nom_site="monSite",
id_site = "",
nom_site = "",
logo_site = "",
.........
WHERE id_site=idDuSite;
Bien évidemment, remplace maTable, monSite, idDuSite en fonction de la table et des champs de ta base

Re: 1 formulaire pour 2 tables

Posté : 27 janv. 2010, 12:27
par jojo1000

$sql = 'UPDATE **** SET nom_site="'.$nom_site.'" WHERE id_site="'.$_POST['id_site']."';
(id_site,nom_site,logo_site,presentation_site,description_site,lien_site,copie_ecran_site,rubrique_id,visible,promotion)
VALUES('','','','','','','','','','".mysql_real_escape_string($promotion)."')';mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());[/php]

Merci de votre aide
Y a des trucs qui collent pas ici normalement :
UPDATE **** SET nom_site="'.$nom_site.'" WHERE id_site="'.$_POST['id_site']
la requête se limite à cette ligne.

Re: 1 formulaire pour 2 tables

Posté : 27 janv. 2010, 15:59
par Romuald632
Bonjour,
Voilà mon message d'erreur :
Erreur SQL !UPDATE site SET nom_site="Nom" WHERE id_site="'; (id_site,nom_site,logo_site,presentation_site,description_site,lien_site,copie_ecran_site,rubrique_id,visible,promotion) VALUES('','','','','','','','','','O')
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"'; (id_site,nom_site,logo_site,presentation_site,description_site,lien_site,co' at line 1 #-o 

Re: 1 formulaire pour 2 tables

Posté : 27 janv. 2010, 16:04
par stealth35
c'est a moitié le bordel ton code la, tu melange la syntax d'un UPDATE avec la syntax d'un INSERT

Re: 1 formulaire pour 2 tables

Posté : 27 janv. 2010, 16:06
par Romuald632
A force de chercher ça devient complètement le borderl tu veux dire !!!

Re: 1 formulaire pour 2 tables

Posté : 27 janv. 2010, 16:14
par stealth35
ta une grosse erreur de syntax, c'est quoi ca :
$sql = 'UPDATE **** SET nom_site="'.$nom_site.'" WHERE id_site="'.$_POST['id_site']."';
(id_site,nom_site,logo_site,presentation_site,description_site,lien_site,copie_ecran_site,rubrique_id,visible,promotion)
VALUES('','','','','','','','','','".mysql_real_escape_string($promotion)."')';mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
ca devrai simplement ressembler a ca :wink:
$sql = 'UPDATE **** SET nom_site="'.$nom_site.'" WHERE id_site="'.$_POST['id_site']."';
mysql_query($sql) or exit('Erreur SQL !'.$sql.'<br />'.mysql_error());

Re: 1 formulaire pour 2 tables

Posté : 01 févr. 2010, 19:07
par Romuald632
Bonjour,
Excusez pour ma réponse tardive !
J'ai apporté des modifications à mon formulaire et à mes tables.
Le souci que je rencontre aujourd'hui c'est que le INSERT INTO ne se fait plus, par contre le UPDATE fonctionne !!!

Code : Tout sélectionner

//Insertion dans la base "Promotion" $sql="INSERT INTO promotion (id_site_promotion,site_id,date_debut_promo,date_fin_promo,texte_promo) VALUES('".mysql_real_escape_string('')."','".mysql_real_escape_string($site_id)."','$date_debut_promo','$date_fin_promo','".mysql_real_escape_string($texte_promo)."')"; //Mise à jour base "Site" $sql = 'UPDATE site SET promotion="'.$promotion.'" WHERE id_site="'.$_POST['id_site'].'"'; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
J'y perd mon latin...
Merci de votre aide

Re: 1 formulaire pour 2 tables

Posté : 01 févr. 2010, 19:11
par stealth35
il te met quoi comme erreur

par contre le coup du mysql_real_escape_string sur la chaine vide, ca sert a rien, d'ailleur c'est peu etre de la qu'est ton erreur, puisque mysql attand un INT et tu lui donne un STRING, a la place met NULL (dans les guillemets) , d'ailleur c'est pas obligatoir de mettre ton id dans ta requete

Re: 1 formulaire pour 2 tables

Posté : 01 févr. 2010, 19:27
par Romuald632
Bonjour,
Effectivement j'ai supprimé les "mysql_real_escape_string..." et maintenant ça fonctionne.
Merci de ton aide :D