Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 26/01/2010, 15h35   #1
Invité régulier
 
Inscription : septembre 2008
Messages : 72
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 72
Points : 9
Points : 9
Par défaut 1 formulaire pour remplir 2 tables

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 :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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());
Romuald632 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2010, 20h58   #2
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Si tu veux que l'on t'aide sur ce problème, il va falloir nous en dire un peu plus.

Déjà, quel est le message d'erreur ??
__________________
Pierre
1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
3. Un code rapide c'est bien, un code maintenable c'est mieux
...

Why was the font tag an orphan ? Because it didn't have a font-family.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2010, 04h57   #3
Membre chevronné
 
Avatar de hornetbzz
 
Homme
Directeur commercial
Inscription : octobre 2009
Messages : 474
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 44
Localisation : France

Informations professionnelles :
Activité : Directeur commercial

Informations forums :
Inscription : octobre 2009
Messages : 474
Points : 681
Points : 681
Envoyer un message via Skype™ à hornetbzz
Tu n'as pas dû chercher bien longtemps..

Déjà, utilises un éditeur correct, au moins tu verras qu'il te manque des guillemets et que d'autres guillemets sont mal placées dans ta seconde requête.

Ensuite, vérifies ta requête: pourquoi ce point virgule en fin de cette ligne :
Code :
$sql = 'UPDATE **** SET nom_site="'.$nom_site.'" WHERE id_site="'.$_POST['id_site']."';
Enfin, un détail html, on écrit <br/> et pas <br>.

Pour moi, cela serait donc :
Code :
1
2
3
4
$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());
hornetbzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2010, 14h44   #4
Invité régulier
 
Inscription : septembre 2008
Messages : 72
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 72
Points : 9
Points : 9
Bonjour;
Voilà mon message d'erreur:
Code :
1
2
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
Je pense que le problème vient de l'id_site , mais je trouve pas
Romuald632 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2010, 09h32   #5
Invité régulier
 
Inscription : septembre 2008
Messages : 72
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 72
Points : 9
Points : 9
Bonjour,
J'ai lu le message, j'ai supprimé le point-virgule en fin de ligne, mais rien ni fait, ça ne fonctionne pas !
Je cherche d'autres solutions, notamment en supprimant les "VALUE"
Code :
$sql = 'UPDATE site SET id_site="'.$id_site.'" promotion="'.$promotion.'" WHERE id_site="'.$_POST['id_site'].'"';
Du coup mon message d'erreur est le suivant :
Code :
1
2
Erreur SQL !UPDATE site SET id_site="" promotion="O" WHERE id_site=""
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 'promotion="O" WHERE id_site=""' at line 1
Romuald632 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2010, 18h00   #6
Invité régulier
 
Inscription : septembre 2008
Messages : 72
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 72
Points : 9
Points : 9
Rebonjour à tous, j'ai toujours mon problème pour remplir ma table et uploader l'autre
J'ai modifier mon code :
Code :
1
2
3
4
5
6
7
//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());
Maintenant j'arrive à updater ma table, mais le INSERT ne se fait plus !!!
Romuald632 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2010, 18h28   #7
Invité régulier
 
Inscription : septembre 2008
Messages : 72
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 72
Points : 9
Points : 9
Bonjour,
J'ai supprimé les "mysql_real_escape_string..."
Romuald632 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 21h10.


 
 
 
 
Partenaires

Hébergement Web