Erreur dû a l'appel de la fonction mysql_query

Signaler
Messages postés
10
Date d'inscription
mardi 14 septembre 2010
Statut
Membre
Dernière intervention
17 septembre 2010
-
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
Bonjour tout le monde,

voila le bout de mon script qui ne va pas bien php :

<?php 

 

$hostname= "localhost";

$mysql_base = "dbemailcenter";

$user = "root";
$pass="";
$conn=mysql_connect($hostname,$user,$pass);

$db=mysql_select_db($mysql_base,$conn) or die ("impossible de se connecter à la base ") ;



//include("connection.php");
$nom=$_POST['name'];
$societe=$_POST['societe'];
    $position=$_POST['position'];
    $email=$_POST['email'];
    $tel=$_POST['tel'];
    $siteweb=$_POST['siteweb'];
     $objet=$_POST['objet'];
$detail=$_POST['text'];

 
 $date=date('Y-m-d');
 $sql=mysql_query("select * from `offreagence` where `email` ='$email' and `date_offre`= '$date'") or die("impossible de'executer la requette");
 $nombre=mysql_num_rows($sql);
 if($nombre==0)
 {
 
 $req=mysql_query("INSERT INTO `offreagence`  VALUES ('$nom','$societe','$position','$email','$tel','$siteweb','$objet','$detail','$date','')")or die("impossible d'inserer cette offre");
if ($req) {

  echo ' Merci pour votre contact, Nous vous répondons dans les plus briefs délais'; 

}
}
else


{echo 'Vous avez déjà envoyé une demande de contact';}

 
 ?>

ce code affiche le message suivante: impossible d'inserer cette offre et si j'enlève le or die le script n'affiche rien aidez moi dites moi qu'est ce qu'il ne marche pas dans le script et merci d'avance.

5 réponses

Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
Bonjour,


"INSERT INTO 'offreagence' VALUES ('$nom','$societe','$position','$email','$tel','$siteweb','$objet','$detail','$date','')"

Une requête INSERT, si tu avais chercher, ne se compose pas comme cela.

mais

"INSERT INTO table (champ_1,champ_2,...,champ_n) VALUES (valeur_1,valeur_2..., valeur_n)"

tu n'as pas besoin des ' ' autour du nom de ta table.
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Salut,

Lyle, au lieu d'écrire des âneries, tu devrais lire correctement ce qui est écrit. En l'occurrence, il n'a pas mis le nom de la table entre guillemet simple, mais entre guillemet oblique : `
La différence est fondamentale : les guillemets obliques servent à protéger le nom de la table s'il contient des caractères spéciaux (par exemple un tiret).
Autre ânerie : la liste des champs est facultative si on fournit toutes les valeurs (de tous les champs).
Le mieux pour aider n'est pas de raconter n'importe quoi, mais de proposer une démarche pour trouver le problème.

@siatu : au lieu de mettre simplement :
or die('....');

Affiche l'erreur MySQL, sinon tu ne pourras jamais avancer dans ton deboguage. Par exemple :
or die(mysql_errno().' : '.mysql_error());


--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
@neige :

Tu peut même en mettre que 2; même si tu as 10 champs...
Du moment que c'est le 2 premiers et que tout les autres ont une valeur par défaut... mais si tu Insert de cette façon il faut être sur que tu respecte l'ordre des champs. De plus cela à tendance à merdé avec les champ auto-incrémenter si tu met ''.

Ensuite les noms à la con pour les tables et bases auxquels ils faut ajouté les ` ` ; je suis désoler mais c'est à proscrire.
Un petit truc sur les régles de nommages
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Entre "c'est à proscrire" parce que certaines personnes ont décidé de conventions et "ça fonctionne" parce que les développeurs le permettent, il y a un gouffre. S'il est possible de mettre des noms à la con, on ne va empêcher personne de le faire. On peut l'en décourager, mais pas lui interdire.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Au passage : pense à jeter un oeil sur la doc de mysql_real_escape_string() parce que tel que tu procèdes actuellement c'est les ennuis assurés, ... c'est d'ailleurs peut être la source de tes soucis.


Cordialement,


Kohntark -