Vous n'êtes pas connecté - 1 Membre connecté
Catégories
Graphisme
Flash (49)
Print (65)
Programmation
PHP (64)
Base de données (17)
ASP (2)
CSS (25)
Hardware
PC (34)
Mac (14)
Linux (5)
Divers
Blabla (251)
908 Sujets
12105 Réponses
Programmation > Base de données > [php&bdd] erreur d' une req...
[php&bdd] erreur d' une requête
 Bonjour,
(Je suis le nouveau venu et comme sur chaque forum il y a des balises differentes, je sais pas ici quelle balise correspond à celle du code. Je m' excuse)

Je suis un etudiant. Je sui chargé de faire la base des données pour la jestion des notes de l' institut ou je fais mes etudes.

J' ai le probleme dans la partie suivante du code:


IF(isset($_POST['Supprimer_Etudiant'])) {   $query='DELETE FROM Etudiant WHERE ID='. $_GET['ID_Etudiant'];     IF (($result = mysql_query($query)) == 0) { echo mysql_error() . $query; } }  



Quand j' essaye de supprimer un nom d' étudiant l' erreur sql s' affiche sur l' ecrane:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1DELETE FROM Etudiant WHERE ID=

Je copie la même requête dans le terminal et je la lance en ajoutant la valeure quelconque(Par exemple ID=13) et là ça marche bien. Peut-être je n' arrive à recouperer le variable:
$_GET['ID_Etudiant']


Mais quand je teste avec

IF (isset($_GET['ID_Etudiant'])) {   echo $_GET['ID_Etudiant']; }  



$_GET['ID_Etudiant'] 
s' affiche sur l' ecran.
Aidez moi s' il vous plait à trouver la faute.
Voici mon code (voir plus bas la partie concernée):

 
<?php
require_once '../connectIFG.php';
?>
 
 
 
<?php
 
echo '<h1 align=center>Ajouter un etudiant</h1>
<form name=form_etudiant method=POST action="./Ajouter_Etudiant.php">
 
<table border=1 align=center>
 
<TR>
<TD>
<label> Prenom </label> 
</TD>
<TD>
<input type="text" name="Etudiant_Prenom"><BR>
</TD>
</TR>
 
<TR>
<TD>
<label> Nom </label> 
</TD>
<TD>
<input type="text" name="Etudiant_Nom"><BR>
</TD>
</TR>
 
<TR>
<TD>
<label> Adresse </label> 
</TD>
<TD>
<input type="text" name="Adresse"><BR>
</TD>
</TR>
 
<TR>
<TD>
<label> Date_Naissence </label> 
</TD>
<TD>
<input type="text" name="Date_Naissance"><BR>
</TD>
</TR>
 
<TR>
<TD>
<input type="submit" name=Valider_Etudiant value="valider">'
;
 
IF (isset(
$_GET['ID_Etudiant'])) { 
echo 
'<input type=submit name="Supprimer_Etudiant" value="supprimer"/>
'
;
}
 
echo 
'
</TD>
</TR>
</TABLE>
</form>
'
;
 
 
 
IF (isset(
$_GET['ID_Etudiant'])){   //ICI JE TESTE SI JE RECOUPERE  LE VARIABLE    $_GET['ID_Etudiant']  
 
echo $_GET['ID_Etudiant'];}
 
    IF (isset(
$_POST['Valider_Etudiant'])) { 
 echo 
$_POST[""]; 
      
       
$query='INSERT INTO Etudiant
         (ID,Prenom,Nom,Addresse,Date_Naissence)   
         VALUES ("",
                    "' 
$_POST["Etudiant_Prenom"] . '",
                    "' 
$_POST["Etudiant_Nom"] . '",
                    "' 
$_POST["Adresse"] . '",
                    "' 
$_POST["Date_Naissance"] . '"
                    )'
;
 
 
      IF ((
$result mysql_query($query)) == 0) {
    echo 
mysql_error($query);
      } 
   }
 
 
     
      IF(isset(
$_POST['Supprimer_Etudiant'])) {   // CETTE PARTIE DU CODE QUI NE MARCHE PAS
 
$query='DELETE FROM Etudiant WHERE ID='$_GET['ID_Etudiant'];
 
 
IF ((
$result mysql_query($query)) == 0) {
    echo 
mysql_error() . $query;
      }
}
 
 
 
  
$query='select * from Etudiant GROUP BY Nom';
 
 IF ((
$result mysql_query($query)) == 0) {
    echo 
mysql_error() . $query;
  } 
 
 
    else{
        
echo
'
<table border=1 align=center>
<TR>
<TH> Prenom</TH>
<TH>Nom</TH>
<TH>Adresse</TH>
<TH>Date_Naissance</TH>
</TR>'
;
while (
$row=mysql_fetch_array($result)){
echo 
'
<TR>
<TD>'
.$row['Prenom'].'
</TD>
<TD>
<a href="./Ajouter_Etudiant.php?ID_Etudiant='
.$row['ID']. '">'.$row['Nom'].'</a>
</TD>
<TD>'
.$row['Addresse'].'
</TD>
<TD>'
.$row['Date_Naissence'].'
</TD>
</TR>
'
;
}
echo 
'</table>';
}
 
?> 
je vous remercie d' avance.
Posté le 09 05 2007 à 13h02
otar - Membre

Réponses - [php&bdd] erreur d' une req...
trop bon trop con, je viens de mettre en syntaxe ton post, je sais que c'est dur de retenir plusieurs syntaxe mais il y a bien caché sur le site une FAQ avec les options de mise en page.

Bon courage pour ton truc en tout cas
Posté le 09 05 2007 à 13h22
Narno - Modérateur - www
ok,

euh...
action="./Ajout er_Etudiant.php?ID_Etudiant =XX
Car tu recharge ta page donc ton $_GET[''] sera vide

ps : sauf erreur de ma part c'est un trou de sécurité ton truc de passer l'ID j'espère qu'avant de supprimer tu test l'existance d'un session ou d'un cookie avec un mot de passe en md5().

Bon courage
Posté le 09 05 2007 à 13h49
psykoyo - Membre
Je te remercie beaucoup.
Ton conseil a bien rémédié à mon programme. Maintenent c'est une autre question qui s' impose mais je sais pas te la poser ou non.
Il s' agit du code pareil où il faut verifier trois ou quatre lignes.
Si tu est d' accord, je te la poserai.
Posté le 09 05 2007 à 14h34
otar - Membre
bonjour et bienvenue,

si tu as une autre question sur ce même bout de code continue ce sujet, si ton problème n'as rien à voir crée un nouveau sujet ça permet d'optimiser les recherches par là suite.

Si tu crée un nouveau sujet, regarde dans la FAQ pour la mise en forme de ton code etc...

tu dispose également d'une balise [ code ] qui n'est pas listée mais maintenant tu sais :)
Posté le 09 05 2007 à 18h51
Neoblue - Modérateur - www
 Bonjour,
quand je suis l' idée de psykoyo (voir audessus) pas de problemes avec la suppression. Au revanche les autres problemes qui n' existaient pas avant surgissent maintenent.
Quand je fais l' insertion le message suivant d' erreur sql s' affiche:

[B]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1SELECT * FROM Etudiant WHERE ID=Supprimer l etudiant N [/B]

ce qui ne doit pas s afficher car cette requete qui est incluse bans le message d' erreur SQL est ecrite dans le bloc de [B]if [/B]

 if (isset($_GET['ID_Etudiant'])) {    

           echo $_GET['ID_Etudiant'];
           $query='SELECT * FROM Etudiant WHERE ID='.$_GET['ID_Etudiant'];

     if (($result = mysql_query($query)) == 0) {
      echo mysql_error() . $query;
      } 

$row=mysql_fetch_array($result);
echo 'Supprimer l etudiant N '.$_GET['ID_Etudiant'].' '.$row[Prenom] ;

}   



le variable $_GET['ID_Etudiant'] , dont la valeure est ID d' etudiant se crée lors du clique sur le lien (qui correspond au nom d' étudiant ).
Comme le lien n' étant pas encore touché $_GET['ID_Etudiant'] ne doit pas encore exister et donc le message d' erreur dejà cité ne doit pas etre affiché.

Apres avoir cliquer sur le lien et puis sur le bouton "supprimer " la ligne contenante ce lien supprime et après tout marche bien. Meme apres l' insertion aucune message d' erreur
ne s' affiche plus. Ne pouviez vous pas me dir de quoi s' agit-il?
Merci pour l' attention.
Voici mon code qui est un peu changé (l' erreur doit etre jusqu' au premier commentaire):



<?php
require_once '../connectIFG.php';
?>

<?php


   
if (isset($_POST['Valider_Etudiant'])) { 
 
      
       
$query='INSERT INTO Etudiant
         (ID,Prenom,Nom,Addresse,Date_Naissence)   
         VALUES ("",
                    "' 
$_POST["Etudiant_Prenom"] . '",
                    "' 
$_POST["Etudiant_Nom"] . '",
                    "' 
$_POST["Adresse"] . '",
                    "' 
$_POST["Date_Naissance"] . '"
                    )'
;
 

      if ((
$result mysql_query($query)) == 0) {
    echo 
mysql_error($query);
      } 
   }

echo 
$_GET['ID_Etudiant'];

  if (isset(
$_GET['ID_Etudiant'])) {    

           echo 
$_GET['ID_Etudiant'];
           
$query='SELECT * FROM Etudiant WHERE ID='.$_GET['ID_Etudiant'];

     if ((
$result mysql_query($query)) == 0) {
      echo 
mysql_error() . $query;
      } 

$row=mysql_fetch_array($result);
echo 
'Supprimer l etudiant N '.$_GET['ID_Etudiant'].' '.$row[Prenom] ;

}   
     
      if(isset(
$_POST['Supprimer_Etudiant'])) {   

 
$query='SELECT * FROM Etudiant WHERE ID='.$_GET['ID_Etudiant'];

if ((
$result mysql_query($query)) == 0) {
    echo 
mysql_error() . $query;
      }

 
$row=mysql_fetch_array($result);
 echo 
' L etudiant N '.$row['ID'].' '.$row[Prenom].' '.$row['Nom'].'
 '
.'a ete  supprime' ;

$query='DELETE FROM Etudiant WHERE ID='$_GET['ID_Etudiant']; 


if ((
$result mysql_query($query)) == 0) {
    echo 
mysql_error() . $query;
      }
}

echo 
'<h1 align=center>Ajouter un etudiant</h1>
<form name=form_etudiant method=POST action="./Etudiant_Ajouter.php?ID_Etudiant='
.$_GET['ID_Etudiant'].' ">
//  L '    
E   R   R  E  U  R          D   O  I   T          Ê     T   R    E             D   A   N   S            L   A            P     A    R   T    I   E             D  U     C   O  D   E         J   U   S   Q    U    E      I   C   I
<table border=1 align=center>

<
TR>
<
TD>
<
labelPrenom </label
</
TD>
<
TD>
<
input type="text" name="Etudiant_Prenom"><BR>
</
TD>
</
TR>

<
TR>
<
TD>
<
labelNom </label
</
TD>
<
TD>
<
input type="text" name="Etudiant_Nom"><BR>
</
TD>
</
TR>

<
TR>
<
TD>
<
labelAdresse </label
</
TD>
<
TD>
<
input type="text" name="Adresse"><BR>
</
TD>
</
TR>

<
TR>
<
TD>
<
labelDate_Naissence </label
</
TD>
<
TD>
<
input type="text" name="Date_Naissance"><BR>
</
TD>
</
TR>

<
TR>
<
TD>
<
input type="submit" name=Valider_Etudiant value="valider">';

if (isset($_GET['
ID_Etudiant'])) { 
echo '
<input type=submit name="Supprimer_Etudiant" value="supprimer"/>
';
}

echo '
</TD>
</
TR>
</
TABLE>
</
form>
';







  $query='
select from Etudiant GROUP BY Nom';

 if (($result = mysql_query($query)) == 0) {
    echo mysql_error() . $query;
  } 


    else{
        
echo'
<table border=1 align=center>
<
TR>
<
THPrenom</TH>
<
TH>Nom</TH>
<
TH>Adresse</TH>
<
TH>Date_Naissance</TH>
</
TR>';
while ($row=mysql_fetch_array($result)){
echo '
<TR>
<
TD>'
.$row['
Prenom'].'
</TD>
<
TD>
<
a href="./Etudiant_Ajouter.php?ID_Etudiant='.$row['ID']. '">'.$row['Nom'].'</a>
</
TD>
<
TD>'
.$row['
Addresse'].'
</TD>
<
TD>'
.$row['
Date_Naissence'].'
</TD>
</
TR>
';
}
echo '
</table>';
}

?> 
   
  

Posté le 10 05 2007 à 11h21
otar - Membre
Sujets Base de données
<< 1 2 >>
Classer une requête
Auteur : aguenard
Posté le 24 04 2007 à 11h17
5 Réponses (Nouveau sujet)
Sujet visité 963 fois
MySQL > Eviter la (...)
Auteur : tyler
Posté le 02 04 2007 à 10h07
16 Réponses (Nouveau sujet)
Sujet visité 856 fois
MySql et hebergement
Auteur : nanook
Posté le 15 03 2007 à 09h04
7 Réponses (Nouveau sujet)
Sujet visité 658 fois
Comparaison de (...)
Auteur : airvai
Posté le 01 03 2007 à 10h05
6 Réponses (Nouveau sujet)
Sujet visité 878 fois
[résolu]sql 95 bdd !
Auteur : senkante
Posté le 08 02 2007 à 11h38
4 Réponses (Nouveau sujet)
Sujet visité 510 fois
[annulé]against
Auteur : veensez
Posté le 27 10 2006 à 20h15
5 Réponses (Nouveau sujet)
Sujet visité 791 fois
MySQL - Méthode de (...)
Auteur : benzor
Posté le 25 07 2006 à 17h20
24 Réponses (Nouveau sujet)
Sujet visité 751 fois
<< 1 2 >>
Mentions légales   -   Crédits   -   Nous contacter   -   © Benzor 2006