Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 21/09/2006, 15h08   #1
Débutant
 
Inscription : mai 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 958
Points : 615
Points : 615
Par défaut [Conception] Probleme pour mettre ajour ma base de donne

Voici mon code



ca ca marche
Code :
1
2
 
$sql="UPDATE table SET field='toto' WHERE id='1'";
mais ca ca marche pas
Code :
1
2
3
4
5
 
if(isset($_POST['f_id'])) $f_id=addslashes($_POST['f_id']);
    else $f_id=addslashes("");
 
$sql="UPDATE table SET field='toto' WHERE id='$f_id'";
Aidez-moi!!
Merci
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 15h11   #2
Membre habitué
 
Inscription : février 2005
Messages : 88
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2005
Messages : 88
Points : 101
Points : 101
Quelle est l'erreur?

EDIT: "....'$var'..." ca a pas lair super.
Essayes plutot "....".$var.".."
frenchi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 15h12   #3
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 69
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2005
Messages : 69
Points : 27
Points : 27
Bonjour,

fais un echo de ta requête pour voir ce qu'elle t'affiche.
denn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 15h15   #4
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
Code :
1
2
3
4
5
6
if(isset($_POST['f_id']))
     $f_id = $_POST['f_id'];
else
     $f_id = '';
 
$sql='UPDATE table SET field=\'toto\' WHERE id='.mysql_real_escape_string($f_id);
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 15h25   #5
Membre chevronné
 
Avatar de kankrelune
 
Inscription : décembre 2005
Messages : 766
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 766
Points : 745
Points : 745
Euh arrête moi si je me trompe mais id est censé être un int dans ta table... non... .. ?

donc

Code :
1
2
3
4
5
6
7
8
if(isset($_POST['f_id']))
{
      $sql = 'UPDATE table SET field=\'toto\' WHERE id='. (int) $_POST['f_id'];
      // traitement de la requete
}
else // f_id non soumis ça sert à rien de faire la requete
@ tchaOo°
kankrelune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 15h39   #6
Débutant
 
Inscription : mai 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 958
Points : 615
Points : 615
non, id est un id envoyé deèuis un formulaire avec la methode POST.

il est recupéré (et d'autre donnéé) grace a:
Code :
1
2
3
 
if(isset($_POST['f_id'])) $f_id=addslashes($_POST['f_id']);
    else $f_id=addslashes("");
ou
Code :
1
2
3
4
5
 
if(isset($_POST['f_id']))
     $f_id = $_POST['f_id'];
else
     $f_id = "'';
selon Hervé.

En fait la conditon
Code :
if(isset($_POST['f_id']))
n'est pas acceptee.

En d'autre mot dans la requette SQL ci-dessous, $f_id est égale à ""
($nom est une autre avraible recupéré envoyé avec la methode POST, qui fonctionne)
Code :
$sql='UPDATE table SET nom='.$nom.' WEHERE id='.$f_id;
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 15h49   #7
Membre chevronné
 
Avatar de kankrelune
 
Inscription : décembre 2005
Messages : 766
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 766
Points : 745
Points : 745
Je pense que tu confond id et int... id n'est pas un type de variable c'est juste le raccourcis pour identifiant... ton id est un nombre entier c'est donc un int (integer)... pour le reste... .. .

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if(isset($_POST['f_id']))
      $f_id = (int) $_POST['f_id'];
            else
                   $f_id = '';

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

if(!empty($nom) && $f_id !== '')
{
        $sql = 'UPDATE table SET field=\''.mysql_real_escape_string($nom).'\' WHERE id='.$f_id;
        // traitement de la requete
}
else // f_id ou nom non soumis ça sert à rien de faire la requete
@ tchaOo°

ps : t'es sur que ton champ nom s'appel field ? moi j'aurais plutot vu

Code :
1
2
$sql = 'UPDATE table SET nom=\''.mysql_real_escape_string($nom).'\' WHERE id='.$f_id;
        
kankrelune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 15h57   #8
Débutant
 
Inscription : mai 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 958
Points : 615
Points : 615
ben le id de
Code :
1
2
 
$sql = 'UPDATE table SET field=\''.mysql_real_escape_string($nom).'\' WHERE id='.$f_id;
correspond a mon champs id de ma table qui est bien un int
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 15h59   #9
Débutant
 
Inscription : mai 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 958
Points : 615
Points : 615
oui le champd field ou nom, ne me cause pas de probleme, en effet y a pas de coincidence dans ce que j'ai écrit.

Par contre mon champs id est réelle et en a bien un qui a pour valeur 1
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 16h00   #10
Membre chevronné
 
Avatar de kankrelune
 
Inscription : décembre 2005
Messages : 766
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 766
Points : 745
Points : 745
la dessus on est d'accord mais le champ nom s'appel bien field... .. ?

@ tchaOo°
kankrelune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 16h15   #11
Débutant
 
Inscription : mai 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 958
Points : 615
Points : 615
Bon, je vais etre plus précis
Dans ma table j'ai un field: id, id_owner, text_en,

voici maintenant mon code : (s'il y pas trop de faute de frappe...)

Code :
1
2
3
4
5
6
7
8
 
if(isset($_POST['f_slogan'])) $f_slogan=$_POST['f_slogan'];
   esle $f_slogan="";
if(isset($_POST['f_id'])) $f_id=$_POST['f_id'];
   esle $f_id="";
 
$sql='UPDATE user SET text_en=\''.$f_slogan_en.'\' WHERE id='$f_id;
mysql_query($sql) or die('ERROR SQL '.$sql.'<br>'.mysql_error());
$f_slogan et f_id sont valeur envoyé par le formulaire (method POST). $f_id correspond à la valeur du field id de ma table. Le field id de ma table est unique et autoincrément
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 16h18   #12
Membre chevronné
 
Avatar de kankrelune
 
Inscription : décembre 2005
Messages : 766
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 766
Points : 745
Points : 745
Ok... donc aucun champ field... tu m'étonne que ça marche pas... c'est quoi que tu veux mettre à jour avec ta variable $nom... .. .

@ tchaOo°
kankrelune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 16h21   #13
Débutant
 
Inscription : mai 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 958
Points : 615
Points : 615
Comprend pas pourquoi ce truc ne marche pas, ca dois marché!!
Code :
1
2
3
4
5
6
7
8
 
if(isset($_POST['f_slogan'])) $f_slogan=$_POST['f_slogan'];
   esle $f_slogan="";
if(isset($_POST['f_id'])) $f_id=$_POST['f_id'];
   esle $f_id="";
 
$sql='UPDATE user SET text_en=\''.$f_slogan_en.'\' WHERE id='$f_id;
mysql_query($sql) or die('ERROR SQL '.$sql.'<br>'.mysql_error());
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 16h22   #14
Membre chevronné
 
Avatar de kankrelune
 
Inscription : décembre 2005
Messages : 766
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 766
Points : 745
Points : 745
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if(isset($_POST['f_id']))
      $f_id = (int) $_POST['f_id'];
            else
                   $f_id = '';

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

if(!empty($f_slogan) && $f_id !== '')
{
        $sql = 'UPDATE user SET text_en=\''.mysql_real_escape_string($f_slogan).'\' WHERE id='.$f_id;
        // traitement de la requete
        mysql_query($sql) or die('ERROR SQL '.$sql.'<br>'.mysql_error());

}
else // f_id ou nom non soumis ça sert à rien de faire la requete
@ tchaOo°
kankrelune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 16h22   #15
Débutant
 
Inscription : mai 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 958
Points : 615
Points : 615
j'ai aussi essayà ca:
Code :
1
2
3
4
5
6
7
8
 
if(isset($_POST['f_slogan'])) $f_slogan=$_POST['f_slogan'];
   esle $f_slogan="";
if(isset($_POST['f_id'])) $f_id=$_POST['f_id'];
   esle $f_id="";
 
$sql='UPDATE user SET text_en=\''.$f_slogan_en.'\' WHERE id=\''.$f_id.'\'';
mysql_query($sql) or die('ERROR SQL '.$sql.'<br>'.mysql_error());
mais pas de résultat
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 16h27   #16
Membre chevronné
 
Avatar de kankrelune
 
Inscription : décembre 2005
Messages : 766
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 766
Points : 745
Points : 745
ouep mais $f_slogan_en n'existe pas dans ton script... essaye le code que je te donne et si ça ne marche pas met... .. .

Code :
1
2
3
4
5
 
echo '<pre>';
print_r($_POST);
echo '</pre>';
exit();
juste avant la requete et vérifie que les champ en question sont bien là... sinon ta requète s'éxecute mais les modification ne sont pas faites une fois que tu vérifie dans ta table ou tu as le die avec l'affichage de l'erreur qui s'execute... .. ?

@ tchaOo°

ps : met error_reporting à E_ALL dans ton php.ini ou error_reporting(E_ALL); au début de ton script le temps de le débuguer
kankrelune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 16h37   #17
Débutant
 
Inscription : mai 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 958
Points : 615
Points : 615
Bon , j'en ai eu marre, j'ai changer ma methode,

mon id je le fais pass en GEt avec l'url:
au lieus de le mettre dans un formulaire .

Je recupere le formulaire en POST et l'id en GET

ca marche.

Mais c'est dommage car j'aurais tous voulu faire a travers le formuaire. Exemple, les text, les nom et mon id stocke dans un "text field" ou "hidden Field". Tout ca envoyé avec le bouton Submit et recuperer dans l'autre page en POST. Bref

Si vous m'avez compris, car peut pas toujours été clair et si vous avec une meilleur methode, ben je suis à l'écoute
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 16h38   #18
Débutant
 
Inscription : mai 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 958
Points : 615
Points : 615
Oui mais mon probleme n'est pa savec slogan, mais "f_id", ou "id"....
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 18h49   #19
Membre chevronné
 
Avatar de kankrelune
 
Inscription : décembre 2005
Messages : 766
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 766
Points : 745
Points : 745
Si ça marche en get je vois pas pourquoi ça marcherait pas en post... fais ce que je t'ais dit dans mon dernier post... .. .

@ tchaOo°
kankrelune 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 +2. Il est actuellement 08h53.


 
 
 
 
Partenaires

Hébergement Web