Téléchargement
illégal
Posez votre question Signaler

Non execution de requetes

ethan55 42Messages postés 8 juin 2005Date d'inscription - Dernière réponse le 9 juin 2005 à 23:06
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
Lire la suite 

Non execution de requetes »

33 réponses
Réponse
+0
moins plus
salut

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

bonne chance
Ajouter un commentaire
Réponse
+0
moins plus
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....
ethan55- 8 juin 2005 à 15:02
merci pour ta reponse je vais faire ce que tu m as dit et je te recontacte
ethan55- 8 juin 2005 à 15:13
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>
Ajouter un commentaire
Réponse
+0
moins plus
il ne manque pas un } à la fin ?

regarde la ligne qu'il te donne dans le fichier.
Ajouter un commentaire
Réponse
+0
moins plus
Tu as oublié de fermer le dernier bloc if....

PS: Encore posté en même temps.... :-(
Désolé Edoc...
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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...
Ajouter un commentaire
Réponse
+0
moins plus
j ai mis echo sur $requeteCompRk mais comment je la teste sur DOS?
Merci
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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...
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Vérifie bien que tu as ecris ton echo après avoir definis la variable
$requeteCompRk ...
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
je vais eeseyer ce que tu m as dit
Merci
Ajouter un commentaire
Réponse
+0
moins plus
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...
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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....
Ajouter un commentaire
Réponse
+0
moins plus
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
@+
Ajouter un commentaire
Réponse
+0
moins plus
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
@+
Ajouter un commentaire
Ce document intitulé « non execution de requetes » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?
non execution de requetes - page 2