Non execution de requetes

ethan55 Messages postés 42 Statut Membre -  
kilian Messages postés 8854 Statut Modérateur -
Bonjour à tous.J'espère que vous vous éclatez bien.Moi,je suis en stage et je dois créer une base de données MySQL avec une interface PHP pour les enregistrements de la base,faire des stats sur la base...Le problème est que je n'arrive pas éxécuter mon code PHP(je travaille avec Easyphp Version 8.0).Je vous montre mon formulaire HTML :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1"/>
<title>Formulaire HTML</title>
</head>

<body>
<!--Listing 2.1 - formu.html -->
<FORM action="records26.php" method="post">

<H1><FONT color=black>NEW RECORD</FONT></H1>
<fieldset>
<legend>Please enter your informations:</legend>
<BR><BR>Client Name      :<INPUT type="text" name="Client_Name" size="20" maxlength="40"/>
Company Name      : <INPUT type="text" name="Company_Name" size="20" maxlength="40"/><BR><BR>
Date :<INPUT size="6" name="Date">(AAAA-MM-JJ) Time : <INPUT size="6" name="Time" >(HH:MM)<BR><BR>
Location :      <SELECT name="Location">
<OPTION value="1" selected><OPTION value="2">Australia<OPTION value="3">Austria
<OPTION value="4">Belgium<OPTION
value="5">Czech Republic<OPTION value="6">Denmark<OPTION value="7">France
<OPTION value="8">Germany<OPTION
value="9">Holland<OPTION value="10">India<OPTION value="11">Ireland<OPTION value="12">Italy<OPTION value="13">Malaysia<OPTION value="14">Norway<OPTION value="15">South Africa<OPTION value="16">South Korea<OPTION value="17">Spain<OPTION value="18">Sweden<OPTION value="19">Switzerland<OPTION value="20">Turkey<OPTION value="21">UK<OPTION value="22">US<OPTION value="23">Other</OPTION></SELECT><BR><BR>
Phone Call :<INPUT type="checkbox" name="Phone_Call" value="YES"> Repeat Call :<INPUT type="checkbox" name="Repeat_Call" value="YES"> Email Call :<INPUT type="checkbox" name="Email_Call" value="YES"><BR><BR>
Pre Sales :<INPUT type="checkbox" name="Pre_Sales" value="YES"> Post sales :<INPUT type="checkbox" name="Post_Sales" value="YES"><BR><BR>
DT INFO :<INPUT type="checkbox" name="DT_INFO" value="YES"> Software Type   : <INPUT name="Software_Type"><BR><BR>
Version      : <INPUT name="Version"> Other S/W&Version      : <INPUT name="Other_Version"><BR><BR>
Time Taken(Mins)   : <INPUT name="Time_Taken_Mins"> CASE NO   : <INPUT name="CASE_NO"><BR><BR>
Comments   : <textarea name="Comments" rows="5" cols="50"></textarea><BR><BR>
</fieldset>
<div align="center"><INPUT type="submit" name="submit" value="Valider"></div></FORM><BR><A
href="http://localhost/statistics.html">Cliquer ici pour
faire des recherches ou afficher les statistiques </A><BR><BR><A
href="http://localhost/res.html">Cliquer ici pour
faire des recherches sur un appel précis </A>

</body>

</html>

puis mon code php qui va avec:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1"/>
<title>Accuse de reception de formulaire</title>
</head>

<body>
<BODY background="fondecran.jpg" vlink="black">

<H1><font color="red"> Record</font></H1>
<?php
$connection=mysql_pconnect("localhost","root");

if (!$connection)
{
echo "Désolé,connexion au serveur impossible\n";
exit;
}

if (!mysql_select_db("s_c_l_s",$connection))
{
echo "Désolé,accès à la base impossible\n";
exit;
}


//recuperation des variables


if(isset($_POST["Submit"])){
if(isset($_POST["Client_Name"])){
if(isset($_POST["Company_Name"])){
if(isset($_POST["Date"])){
if(isset($_POST["Time"])){
if(isset($_POST["Location"])){
if(isset($_POST["Phone_Call"])){
if(isset($_POST["Repeat_Call"])){
if(isset($_POST["Email_Call"])){
if(isset($_POST["Pre_Sales"])){
if(isset($_POST["DT_INFO"])){
if(isset($_POST["Software_Type"])){
if(isset($_POST["Version"])){
if(isset($_POST["Other_Version"])){
if(isset($_POST["Time_Taken_Mins"])){
if(isset($_POST["CASE_NO"])){
if(isset($_POST["Comments"])){
if(isset($_POST["Post_Sales"])){
//$Client_Name =$_POST['Client_Name'];
//$Company_Name=$_POST['Company_Name'];
//$Date=$_POST['Date'];
//$Time=$_POST['Time'];
//$Phone_Call=$_POST['Phone_Call'];
//$Repeat_Call=$_POST['Repeat_Call'];
//$Email_Call=$_POST['Email_Call'];
//$Pre_Sales=$_POST['Pre_Sales'];
//$Post_Sales=$_POST['Post_Sales'];
//$DT_INFO=$_POST['DT_INFO'];
//$Software_Type=$_POST['Software_Type'];
//$Version=$_POST['Version'];
//$Other_Version=$_POST['Other_Version'];
//$Time_Taken_Mins=$_POST['Time_Taken_Mins'];
//$CASE_NO=$_POST['CASE_NO'];
//$Comments=$_POST['Comments'];

include("config.inc");

//requete pour la table Company_Rafik
$requeteCompRk="INSERT INTO company_rafik(ID_NO,Client_Name,Company_Name,Date,Time,Phone_Call,Repeat_Call,Email_Call,Pre_Sales,Post_Sales,DT_INFO,Software_Type,Version,Location,Other_Version,Time_Taken_Mins,CASE_NO,Comments) values (NEXTVAL('SEQ_CLIENT')-1,'$Client_Name','$Company_Name','$Date','$Time','$Phone_Call','$Repeat_Call','$Email_Call','$Pre_Sales','$Post_Sales','$DT_INFO','$Software_Type','$Version','$Location','$Other_Version','$Time_Taken_Mins','$CASE_NO','$Comments')";

$resultat1=mysql_query($requeteCompRk,$connection);

}}}}}}}}}}}}}}}}}}
if(isset($resultat1))//si la mise à jour s'est bien effectuée
{echo"<p><b>New record.</b></p>";exit();}
else
{echo "<p>Record not done".
"<p></p>".mysql_error()."<p></p>";
}
mysql_close();

?>

</body>

</html>

Et voila le resultat que j 'obtiens quand je charge mon programme php dans mon navigateur:


Record

Record not done


Par conséquent,j ai l'impression qu'il n'y a rien dans $resultat1(ou meme peut-etre dans les variables recuperees de HTML).

En tout cas, je sais pas quoi faire et ca serait vraiment super sympa de regarder a quoi ressemble mon erreur.

Merci d'avance.
Ethan67

31 réponses

Utilisateur anonyme
 
salut

essaie de faire des "echo" de tes variables, pour voir si elles sont valides.

bonne chance
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Salut,

Tapes
echo $requeteCompRk;

Et tu pourras essayer la requête qui sera affichée sur ta page d'une manière plus directe (PhpMyAdmin, client Mysql etc...)
Tu sauras mieux d'ou vient l'erreur.

PS: Très lourde la partie avec les isset(), tu devrais essayer de condenser ça dans un truc plus simple....
0
ethan55 Messages postés 42 Statut Membre
 
merci pour ta reponse je vais faire ce que tu m as dit et je te recontacte
0
ethan55 Messages postés 42 Statut Membre
 
j ai fait echo $requeteCompRk mais maintenant il me met parse error a la derniere ligne du prog
Merci de me repondre qd vs pouvez et voici mon nouveau prog.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1"/>
<title>Accuse de reception de formulaire</title>
</head>

<body>
<BODY background="fondecran.jpg" vlink="black">

<H1><font color="red"> Record</font></H1>
<?php
$connection=mysql_pconnect("localhost","root");

if (!$connection)
{
echo "Désolé,connexion au serveur impossible\n";
exit;
}

if (!mysql_select_db("s_c_l_s",$connection))
{
echo "Désolé,accès à la base impossible\n";
exit;
}


//recuperation des variables

if(isset($_POST["Submit"]) AND isset($_POST["Client_Name"]) AND isset($_POST["Company_Name"]) AND isset($_POST["Date"]) AND isset($_POST["Time"]) AND isset($_POST["Location"]) AND isset($_POST["Phone_Call"]) AND isset($_POST["Repeat_Call"]) AND isset($_POST["Email_Call"]) AND isset($_POST["Pre_Sales"]) AND isset($_POST["DT_INFO"]) AND isset($_POST["Software_Type"]) AND isset($_POST["Version"]) AND isset($_POST["Other_Version"]) AND isset($_POST["Time_Taken_Mins"]) AND isset($_POST["CASE_NO"]) AND isset($_POST["Comments"]) AND isset($_POST["Post_Sales"]))

{




$Client_Name =$_POST['Client_Name'];
$Company_Name=$_POST['Company_Name'];
$Date=$_POST['Date'];
$Time=$_POST['Time'];
$Phone_Call=$_POST['Phone_Call'];
$Repeat_Call=$_POST['Repeat_Call'];
$Email_Call=$_POST['Email_Call'];
$Pre_Sales=$_POST['Pre_Sales'];
$Post_Sales=$_POST['Post_Sales'];
$DT_INFO=$_POST['DT_INFO'];
$Software_Type=$_POST['Software_Type'];
$Version=$_POST['Version'];
$Other_Version=$_POST['Other_Version'];
$Time_Taken_Mins=$_POST['Time_Taken_Mins'];
$CASE_NO=$_POST['CASE_NO'];
$Comments=$_POST['Comments'];

include("config.inc");

//requete pour la table Company_Rafik
$requeteCompRk="INSERT INTO company_rafik(ID_NO,Client_Name,Company_Name,Date,Time,Phone_Call,Repeat_Call,Email_Call,Pre_Sales,Post_Sales,DT_INFO,Software_Type,Version,Location,Other_Version,Time_Taken_Mins,CASE_NO,Comments) values (NEXTVAL('SEQ_CLIENT')-1,'$Client_Name','$Company_Name','$Date','$Time','$Phone_Call','$Repeat_Call','$Email_Call','$Pre_Sales','$Post_Sales','$DT_INFO','$Software_Type','$Version','$Location','$Other_Version','$Time_Taken_Mins','$CASE_NO','$Comments')";
echo "$requeteCompRk";
$resultat1=mysql_query($requeteCompRk,$connection);

mysql_close();

?>

</body>

</html>
0
Utilisateur anonyme
 
il ne manque pas un } à la fin ?

regarde la ligne qu'il te donne dans le fichier.
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Tu as oublié de fermer le dernier bloc if....

PS: Encore posté en même temps.... :-(
Désolé Edoc...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ethan55 Messages postés 42 Statut Membre
 
Merci beaucoup les gars,vous etes trop sympas.Jai fait ce que vous m avez dit et plus de message d erreur.
MAIS,ce script php sert a effectuer des nouveaux enregistrements dans la base de donnes de l'entreprise ou je travaille.Et quand je fais un test en faisant un nouvel enregistrement via le formulaire HTML correspondant ,ensuite je fais un "SELECT *FROM ..."sur DOS(via Mysql),il me met Empty set.Donc il n'ya pas eu d'enregistrement fait.
Par conséquent je ne sais pas si le script PHP récupère bien les donnees HTML
Merci de me répondre quand vous pouvez
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Comme je te le disais, le mieux est de faire un echo sur $requeteCompRk

Comme ça tu auras la requête générée par Php, tu pourras voir ce qu'il en est en la testant dirctement sous dos...
0
ethan55 Messages postés 42 Statut Membre
 
j ai mis echo sur $requeteCompRk mais comment je la teste sur DOS?
Merci
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Sous Windows 2000 (et peut être Xp). Tu fais un copier sur ta requête.

Tu vas sous Dos, tu ouvres une session sur ton client Mysql et tu as juste à cliquer droit pour coller
0
ethan55 Messages postés 42 Statut Membre
 
J ai fait ce que tu m as dit mais il me met erreur de syntaxe(je crois que c normal ,il ne connait pas $...)
Alors?
Merci
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Il faut que tu prennes le résultat d'un echo en Php, il te faut la requête interprétée par Php et non pas celle qui est écrite dans ton code...
0
ethan55 Messages postés 42 Statut Membre
 
Ecoute,quand je charge maintenant le fichier php sur le navigateur.
L interface m'affiche Record qui est le titre de mon fichier php.Mais pas de resultat de l'echo $requeteCompRk ,donc comment j observe la requete interpretee par PHP?
Merci,excuse moi je debute depuis 1 semaine en php,donc j ai un peu de mal
Merci beaucoup
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Vérifie bien que tu as ecris ton echo après avoir definis la variable
$requeteCompRk ...
0
ethan55 Messages postés 42 Statut Membre
 
OUI j ai fait l echo avant .Ecoute, maintenat j ai fait un petit pg pour voir si le code recuperait bien les donnees html
Je te montre le code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>Hello!</title>
</head>

<body>


<?php
$connection=mysql_pconnect("localhost","root");

if (!$connection)
{
echo "Désolé,connexion au serveur impossible\n";
exit;
}

if (!mysql_select_db("s_c_l_s",$connection))
{
echo "Désolé,accès à la base impossible\n";
exit;
}
if(isset($_POST["Client_Name"])){
$Client_Name =$_POST['Client_Name'];
echo "$Client_Name";}
mysql_close();
?>

</body>

</html>

et la ca marche il recupere bien les donnes
Je pense qu il y a plutot un pb sue le mysql_query()
Qu es tu en penses?
Merci
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Ben c'est pour ca qu'il faudrait voir ce que donne la requête, chose qu'on ne peut voir qu'avec un echo sur la variable qui contient ta requête....

Mais je crois que l'echo ne se fait pas parce qu'il est dans un bloc conditionnel. Et que ce bloc ne s'execute pas....
Tu dois avoir un isset() qui bloque tout, un champs pas rempli ou une erreur de syntaxe... Bref il ya une donnée $_POST qu ne passe pas là-dedans je pense:
if(isset($_POST["Submit"]) AND isset($_POST["Client_Name"]) AND isset($_POST["Company_Name"]) AND isset($_POST["Date"]) AND isset($_POST["Time"]) AND isset($_POST["Location"]) AND isset($_POST["Phone_Call"]) AND isset($_POST["Repeat_Call"]) AND isset($_POST["Email_Call"]) AND isset($_POST["Pre_Sales"]) AND isset($_POST["DT_INFO"]) AND isset($_POST["Software_Type"]) AND isset($_POST["Version"]) AND isset($_POST["Other_Version"]) AND isset($_POST["Time_Taken_Mins"]) AND isset($_POST["CASE_NO"]) AND isset($_POST["Comments"]) AND isset($_POST["Post_Sales"])) 
Bonne chance pour le trouver :-D
0
ethan55 Messages postés 42 Statut Membre
 
je vais eeseyer ce que tu m as dit
Merci
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Un ptit truc pour remplacer ce gros bloc de if, tu mets tous ces champs post dans un tableau:
$form_inputs=array('Submit','Client_Name','Company_Name','Date','Time') ;

Tu crées une variable booléenne nommée $tout_remplis
Puis avec foreach, tu crées une boucle qui vérifie chaque champs:
$tout_remplis=True; // Par défaut on dit que tout est remplis
foreach $form_inputs as $input
{
         if (!isset($_POST[$input]))
         {
                   $tout_remplis=False; //Un champs n'a pas été remplis
          }
}

// Si $tout_remplis=True alors continuer etc...
0
ethan55 Messages postés 42 Statut Membre
 
Merci beaucoup pour ton truc.Mais,le insert into ne marche toujours pas.Jen ai marre j ai l impression qu il n y a pas de lien avec la base
Si tu me trouves une esquisse de solution ,je suis preneur.
Merci d avance

                
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Enlève ta condition avec les isset() juste pour faire un test (commente le avec ses accolades) pour laisser le bloc en dessous s'executer, comme ça on pourra voir ce que donne l'echo sur ta requête....
0
ethan55 Messages postés 42 Statut Membre
 
Super Kilian j ai fait ce que tu m as dit et ils me disent toutes ces erreurs:




Notice: Undefined index: Submit in c:\program files\easyphp1-82\www\rec3.php on line 39

Notice: Undefined index: Phone_Call in c:\program files\easyphp1-82\www\rec3.php on line 44

Notice: Undefined index: Email_Call in c:\program files\easyphp1-82\www\rec3.php on line 46

Notice: Undefined index: Pre_Sales in c:\program files\easyphp1-82\www\rec3.php on line 47

Notice: Undefined index: DT_INFO in c:\program files\easyphp1-82\www\rec3.php on line 49

Warning: main(config.inc): failed to open stream: No such file or directory in c:\program files\easyphp1-82\www\rec3.php on line 57

Warning: main(): Failed opening 'config.inc' for inclusion (include_path='.;C:/Program Files/EasyPHP1-82\php\pear\') in c:\program files\easyphp1-82\www\rec3.php on line 57

Notice: Undefined variable: Location in c:\program files\easyphp1-82\www\rec3.php on line 61
Erreur de syntaxe près de '('SEQ_CLIENT')-1,'rtrt','rtrtr','','','','YES','','','YES','',''' à la ligne 1

Tout ce bloc {
Erreur de syntaxe près de '('SEQ_CLIENT')-1,'rtrt','rtrtr','','','','YES','','','YES','',''' à la ligne 1} etant les donnees que j ai rentre dans le formulaire

C deja bien,comme ca on peut voir sur quelles erreurs on doit travailler
Merci de me repondre quand tu peux
@+
0
ethan55 Messages postés 42 Statut Membre
 
Super Kilian j ai fait ce que tu m as dit et ils me disent toutes ces erreurs:




Notice: Undefined index: Submit in c:\program files\easyphp1-82\www\rec3.php on line 39

Notice: Undefined index: Phone_Call in c:\program files\easyphp1-82\www\rec3.php on line 44

Notice: Undefined index: Email_Call in c:\program files\easyphp1-82\www\rec3.php on line 46

Notice: Undefined index: Pre_Sales in c:\program files\easyphp1-82\www\rec3.php on line 47

Notice: Undefined index: DT_INFO in c:\program files\easyphp1-82\www\rec3.php on line 49

Warning: main(config.inc): failed to open stream: No such file or directory in c:\program files\easyphp1-82\www\rec3.php on line 57

Warning: main(): Failed opening 'config.inc' for inclusion (include_path='.;C:/Program Files/EasyPHP1-82\php\pear\') in c:\program files\easyphp1-82\www\rec3.php on line 57

Notice: Undefined variable: Location in c:\program files\easyphp1-82\www\rec3.php on line 61
Erreur de syntaxe près de '('SEQ_CLIENT')-1,'rtrt','rtrtr','','','','YES','','','YES','',''' à la ligne 1

Tout ce bloc {
Erreur de syntaxe près de '('SEQ_CLIENT')-1,'rtrt','rtrtr','','','','YES','','','YES','',''' à la ligne 1} etant les donnees que j ai rentre dans le formulaire

C deja bien,comme ca on peut voir sur quelles erreurs on doit travailler
Merci de me repondre quand tu peux
@+
0