Requête sql

Signaler
-
 PlatypusGeek -
bonjour à vous
je voudrais savoir à quel niveau ce trouve l'erreur dans la requête sql suivante

CREATE TABLE bot_conversationlog(

bot TINYINT( 3 ) UNSIGNED NOT NULL DEFAULT '0',
id INT( 11 ) NOT NULL AUTO_INCREMENT ,
input TEXT,
response TEXT,
uid VARCHAR( 255 ) DEFAULT NULL ,
enteredtimeTIMESTAMP( 14 ) NOT NULL ,
PRIMARY KEY ( id ) ,
KEY botid( bot )
) ENGINE MYISAM DEFAULT CHARSET utf8 COLLATE = utf8_unicode_ci;


ça fait deux jours que cela me tracasse la tête

merci d'avance.

j'ai egalement une autre preocupation. je voudrai envoyer un mail automatique à des personne qui s'enreigitre dans ma BD pour une incription avec leur parametres d'incription login et mot de passe. voici le code de ma page d'incription.php comment faire pour y inserer une requête d'envoie de email avec la fonction mail()?

<?php

session_start();
include('connexion.inc.php');

if(!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['age']) && !empty($_POST['pays']) && !empty($_POST['ville']) && !empty($_POST['quartier']) && !empty($_POST['adresse']) && !empty($_POST['mail']) && !empty($_POST['login']) && !empty($_POST['code']))

{

$id_user = "\N";

$nom = $_POST['nom'];

$prenom = $_POST['prenom'];

$age = $_POST['age'];

$pays = $_POST['pays'];

$ville = $_POST['ville'];

$quartier = $_POST['quartier'];

$adresse = $_POST['adresse'];

$mail = $_POST['mail'];

$login = $_POST['login'];

$code = $_POST['code'];

$idcom = connex('lengabou_awnet','param');

$requete = "INSERT INTO `lengabou_awnet`.`users` (`id_user`, `nom`, `prenom`, `age`, `pays`, `ville`, `quartier`, `adresse`, `mail`, `login`, `code`) VALUES (NULL, '".$_REQUEST['nom']."', '".$_REQUEST['prenom']."', '".$_REQUEST['age']."', '".$_REQUEST['pays']."', '".$_REQUEST['ville']."', '".$_REQUEST['quartier']."', '".$_REQUEST['adresse']."', '".$_REQUEST['mail']."', '".$_REQUEST['login']."', '".$_REQUEST['code']."')" ;
//$requete = "INSERT INTO users VALUES('$nom','$prenom','$age','$pays','$ville','$quartier','$adresse,'$mail','$login,'$code')";

$result = mysql_query($requete,$idcom);

//mysql_close($idcom);

if(!$result)

{

echo " Erreur d'insertion \n n� ".mysql_error()."
";

}

else

{

// echo " <script language="JavaScript" type="text/javascript"> alert('vous �te eneigistr� votre numero est : ".mysql_insert_id()."') </sript>";

sleep(5);

header('location:/index.php');
exit();
}

}

// else { echo " formulaire � compl�ter !

";}

?>

<form action= "<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="application/x-www-form-urlencoded">




vos informations

<table cellspacing ="20" class="style02" cellpadding="3" bgcolor="#AA00CC" align="center" border="0">

<tr><td> Nom : </td> <td> </td></tr>

<tr><td> Prénom : </td> <td> </td></tr>

<tr><td> Age : </td> <td> ans </td></tr>

<tr><td> Pays : </td> <td> </td></tr>

<tr><td> Ville : </td> <td> </td></tr>

<tr><td> Quartier : </td> <td> </td></tr>

<tr><td> TEL : </td> <td> </td></tr>

<tr><td> E-Mail : </td> <td> </td></tr>

<tr><td> login : </td> <td> </td></tr>

<tr><td> Mot de passe : </td> <td> </td></tr>

<tr>

<td colspan="2" bgcolor="slateblue" >



</tr>

MERCI pour votre generosité
niyckson

7 réponses


Premier soucis : pour ta requete, tu as quoi comme erreur, quand tu éxecute la requète ?

Deuxième question : Je ne comprend pas ton soucis... Tu connais la fonction mail, donc je suppose que tu sais t'en servir ^^
A la vue de ton code, tu sais ou placer les actions qui doivent s'éxecuter quand la requète d'insert se passe bien, il ne devrait pas être trop compliqué de trouver mettre l'appel à la fonction mail ^^
merci pour ta reponse vanhayato
l'erreur que j'ai est une erreur de syntaxe. la BD me retourne you have an error in your sql syntax. j'ai beau regardez je ne trouve pas l'erreur dans la syntaxe, la table que je veux créer ne se crée pas.

pour ma deuxieme question, j'ai préféré poster ici un code qui marche quand je le modifie pour l'envoie d'un mail automatique, plus rien ne donne.


niyckson

Pour ta requète essai enteredtimeTIMESTAMP( 14 ) NOT NULL , avec un espace entre enteredtime et TIMESTAMP

Sinon, le moyen le plus simple de savoir ou est l'erreur, c'est de lancer la requête avec juste la premiere ligne, puis tu drop la table, tu relance la requête en ajoutant la deuxième ligne etc etc etc

Pour le mail, es-tu sur que ton serveur à la possibilité d'envoyer des mails ^^
Essai de faire un script qui execute juste la fonction mail
<?php
  mail('email@example.com', 'sujet', 'message');
?>

Si ça fonctionne, place avant la redirection vers ton index. Ca devrait toujours fonctionner ^^ Après tu complète le message avec les infos que tu veux.
Si ça ne marche pas, c'est que ton serveur ne peut pas envoyer de mail...
je pense avoir trouver le pb de ma requête le TIMESTAMP ne prend pas de taille par defaut don au lieu de faire enteredtime TIMESTAMP (14)
je fais juste enteredtime TIMESTAMP sans donner une taille par defaut. mais je ne comprend pas pourquoi j'aimerai qu'on m'explique un peu ce qui ce passe.

vanhayato pour mon probleme d'envoi de mail je suis sur un hébergeur qui me donne un compte pop pour le service de mail.
niyckson

Salut,

Pour le champ timestamp ou on ne peut définir la taille, je pense que c'est tout simplement parce que le timestamp est fixe, il n'a pas de taille. Après je ne suis pas un expert en mysql, il faudrait peut être aller faire un tour sur le doc ^^

Pour le problème de la fonction mail. As-tu essayé de faire le test simple que je t'ai dis de faire ?
j'ai effectué le test mais comment savoir que le mail à été envoyé? j'ai regardé dans ma boite gmail que j'ai pris comme destinataire mai je n'ai pas eu de message,ni dans les spams ni dans la boite de reception. j'ai écrit la fonction tel que tu me la dit dans un fichier nommé mail.php
niyckson

Si tu ne reçoit pas, c'est parce que le mail n'est probablement pas parti....

Tu peux déjà voir ce que la fonction mail te retourne avec un petit var_dump.
Pour plus d'info sur la fonction mail : mail

Tu peux éventuellement afficher le php_info sur ton site pour voir si le module de mail est activé ou pas.