|
|
|
|
Bonjour encore ...
Cette fois ci j'ai fais gaffe au nom de ma base ... il ne devrait pas avoir d'erreur de ce coté là ... parce que je n'ai pas d'erreur ...
Par contre j'ai mes requête d'insert et d'update comme suit:
if ($tip == 'ins' && $nom != ''):
function insertion($nom,$email,$service)
{
mysql_query("INSERT INTO bd (id, e-mail, service, nom) VALUES ('', '$email', '$service', '$nom')");
}
elseif ($tip == 'mod' && $nom != ''):
function modification()
{
mysql_query("UPDATE bd SET e-mail = $email, service = $service, nom = $nom WHERE id = $id");
}
endif;
Mais il ne se passe rien ... je suis en Get, il reçoit bien les données ... mais c'est tout comme si ca n'envoyait rien à MySql ...
Je me demande si il n'y aurait pas un pb de configuration ... est ce possible ?
Ou est ce mon code qui n'est pas bon ??
Je suis sur EasyPhp, la dernière version
Merci d'avance pour votre aide
..:::ZIG1:::..
Tu ne fais que définir des fonctions (tu montres à php leur architecture, leur rôle...) mais tu ne les appelles pas (tu ne demandes pas à Php de les executer).
function insertion($nom,$email,$service)
{
mysql_query("INSERT INTO bd (id, e-mail, service, nom) VALUES ('', '$email', '$service', '$nom')");
}
function modification($email, $service, $nom)
{
mysql_query("UPDATE bd SET e-mail = $email, service = $service, nom = $nom WHERE id = $id");
}
if ($tip == 'ins' && $nom != ''){
insertion($nom,$email,$service);
}
elseif ($tip == 'mod' && $nom != ''){
modification($email,$service,$nom);
}
Sachant qu'en plus pour ta deuxième fonction tu avait utiliser des noms de variables qui n'existent pas dans la portée de la fonction. Ex: Une fonction qui additionne de 2, avec deux variable globales $a et $b. $a est le nombre à additionner, $b est le résultat: function plus_deux($nombre){
return $nombre+2;
}
$a=3;
$b=plus_deux($a); // $b sera égal à 5
Si j'avais fait :
$a=3;
function plus_deux(){
return $a+2;
}
$b=plus_deux(); // $b sera égal à 2
$b sera égal à deux. Car $a n'existe pas dans la fonction plus_deux(), $a est une variable globale. Comme il ne la trouve pas dans sa portée, il remplacera $a par 0. |
J'ai fait comme tu as dit ... mais le résultat est le même ...
|
Ok maintenant remplace ta fonction insertion par:
function insertion($nom,$email,$service)
{
mysql_query("INSERT INTO bd (id, e-mail, service, nom) VALUES ('', '$email', '$service', '$nom')");
echo "INSERT INTO bd (id, e-mail, service, nom) VALUES ('', '$email', '$service', '$nom')";
}
Puis execute la requête affichée sur la page en passant par PhpMyAdmin ou ce que tu veux, pourvu que tu puisses voir d'ou vient l'erreur. |
function insertion($nom,$email,$service) {
mysql_query("
INSERT INTO bd
(id, e-mail, service, nom)
VALUES
('', '".$email."', '".$service."', '".$nom."')
");
}
function modification($nom,$email,$service,$id) {
mysql_query("
UPDATE bd
SET e-mail='".$email."',
service= '".$service."',
nom= '".$nom."'
WHERE id='".$id."'
");
}
if ($tip== 'ins' && !empty($nom)){
insertion($nom,$email,$service);
}
elseif ($tip== 'mod' && !empty($nom)){
modification($email,$service,$nom,$id);
}
J'ai juste changer un peu le code au niveau syntaxe dans les requêtes sql. SInon tu as bien ouvert la connexion a la database avant cette portion de code ? Bahan Close the world.||.txen eht nepO |
Bon voilà une fonction que j'ai créé en php pour se conencter tranquillou a ta base :
/**************************************
* Affichage des erreurs
**************************************/
function print_erreur($erreur){
print("<CENTER><FONT color=red>".$erreur."</FONT></CENTER>");
}
/**************************************
* Connexion a une database
**************************************/
function faire_requete($requete,$bdd){
$host="le nom d'hote";
$user="le nom du user";
$pass="le mot de passe";
if(!($id=mysql_connect($host,$user,$pass))){
print_erreur("Erreur de connexion à ".$host." pour l'utilisateur ".$user.".");
exit();
}
if(!(mysql_select_db($bdd,$id))){
print_erreur("Erreur ".mysql_errno($id)." : ".mysql_error($id)." : Erreur de sélection de ".$bdd.".");
exit();
}
if(!($result=mysql_query($requete,$id))){
print_erreur("Erreur ".mysql_errno($id)." : ".mysql_error($id).".<BR><BR>");
print_erreur("<DIV align=left>Votre requête est la suivante : <BR>".$requete."</DIV>");
exit();
}
return $result;
if(!(mysql_free_result($result))){
print_erreur("Erreur ".mysql_errno($id)." : ".mysql_error($id)." : Libération de la mémoire utilisée pour la requête ".$requete);
exit();
}
if(!(mysql_close($id))){
print_erreur("Erreur ".mysql_errno($id)." : ".mysql_error($id)." : Fermeture de la connexion<BR>");
exit();
}
}
Tu places ça dans une fichier .inc et tu fais un include pour pouvoir utiliser la fonction. Puis dans ta page où tu fais ta fonction : if ($tip== 'ins' && !empty($nom)){
$res_ins=faire_requete("
INSERT INTO bd
(id, e-mail, service, nom)
VALUES
('', '".$email."', '".$service."', '".$nom."')
","nom_de_ta_base");
}
elseif ($tip== 'mod' && !empty($nom)){
$res_up=faire_requete("
UPDATE bd
SET e-mail='".$email."',
service= '".$service."',
nom= '".$nom."'
WHERE id='".$id."'
","nom_de_ta_base");
}
Sachant qu'il vaut mieux quand même eviter certains caracteres coimme le "-" pour un nom de champ. Bahan Close the world.||.txen eht nepO |
L'insertion fonctionne
|
$QUERY = mysql_query("SELECT * FROM bd");
$question = faire_requete("$QUERY, bd1");
$RESULTat = mysql_num_rows($question);
Non ^_^ ce n'est pas bon. En fait le premier argument de ma fonction faire_requete() est une chaine de caractere qui est la requete. Quand tu fais un mysql_query tu executes la requete. Donc la bonne syntaxe : $resultat_de_ta_requete=faire_requete("SELECT * FROM bd","bd1");
Fais attention aux " ^_^. Bahan Close the world.||.txen eht nepO |
Salut à tous!
|