Index
Forums
Annuaire
Référencement
Télécharger
  phpBB SEO : Référencement Google, MSN, Yahoo, Annuaires, Forums  
phpBB SEO
Boards
Directory  
SEO  
Downloads
 
  Rechercher Search
    S'enregistrer
Pseudo :  Passe :  Auto  
Register  
 
   
[php&bdd] erreur introuvable dans une requête

 
Poster un nouveau sujet   Répondre au sujet    phpBB SEO » Forum Référencement  » Développement de site
::  
Auteur Message
otar



Inscrit le: 09 Mai 2007
Messages: 12

[php&bdd] erreur introuvable dans une requêtePosté le: Mer Mai 09, 2007 11:29 am    Sujet du message: [php&bdd] erreur introuvable dans une requête

Bonjour,

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

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

Code:
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 interessante):

Code:
 
<?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.
Revenir en haut de page
dcz
Administrateur - Site Admin
Administrateur - Site Admin


Inscrit le: 28 Avr 2006
Messages: 14854

[php&bdd] erreur introuvable dans une requêtePosté le: Jeu Mai 10, 2007 8:53 am    Sujet du message: Re: [php&bdd] erreur introuvable dans une requête

La bienvenue.

Alors première, chose :

Ne jamais, enfin, je dis ça, c'est un conseil, mais alors jamais envoyer des variable des tableaux GET et POST directement dans une requête.

Tu pourrais à la rigueur utiliser :

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


Mais le plus propre, et ça coûte pas cher, c'est de filtrer la variable avant la requête, avec un bon vieux :

Code:
$id_etudiant = isset($_GET['ID_Etudiant']) ? intval($_GET['ID_Etudiant']) : 0;
IF(isset($_POST['Supprimer_Etudiant']) && $id_etudiant > 0) {
   $query= "DELETE FROM Etudiant WHERE ID= $id_etudiant" ;       
     IF (($result = mysql_query($query)) == 0) {
        echo mysql_error() . $query;
     }
}


Et c'est pareil pour le reste de ton code, faire l'économie d'un filtrage propre et organisé sur les variable POST et GET est dangereux. Alors il se peu que ton script s'en charge avant en manipulant directement les tableaux $_GET et $_POST, mais bon.

Testes déjà ça du coup.

++

_________________
Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche
Revenir en haut de page
Visiter le site web de l'utilisateur
otar



Inscrit le: 09 Mai 2007
Messages: 12

[php&bdd] erreur introuvable dans une requêtePosté le: Jeu Mai 10, 2007 10:30 am    Sujet du message: Re: [php&bdd] erreur introuvable dans une requête

Merci beaucoup.
Pas plus de problemes avec ce code.
Ne pouvais tu m' expliquer la premiere ligne de ta requête?
Ce que je ne comprend pas c' est:
Code:

? intval($_GET['ID_Etudiant']) : 0;

Explique le moi s' il te plais en detaille.
Merci encore.
Revenir en haut de page
dcz
Administrateur - Site Admin
Administrateur - Site Admin


Inscrit le: 28 Avr 2006
Messages: 14854

[php&bdd] erreur introuvable dans une requêtePosté le: Jeu Mai 10, 2007 10:33 am    Sujet du message: Re: [php&bdd] erreur introuvable dans une requête

Code:
$id_etudiant = isset($_GET['ID_Etudiant']) ? intval($_GET['ID_Etudiant']) : 0;


C'est la version abrégé de :

Code:
if (isset($_GET['ID_Etudiant'])) {
     $id_etudiant = intval($_GET['ID_Etudiant']);
} else {
     $id_etudiant = 0;
}


Avec ? pour le if et : pour le else.

C'est pratique pour les cas ou l'on doit pas effectuer plus d'une ligne de code par cas, pour les initialisation de variable principalement.
Et c'est toujours 4 ligne de code de gagné Wink

++

_________________
Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche
Revenir en haut de page
Visiter le site web de l'utilisateur
otar



Inscrit le: 09 Mai 2007
Messages: 12

[php&bdd] erreur introuvable dans une requêtePosté le: Jeu Mai 10, 2007 11:06 am    Sujet du message: Re: [php&bdd] erreur introuvable dans une requête

Alors qu' est-ce qui se passais dans mon code?
Ne pouvais tu me le dir?
Revenir en haut de page
dcz
Administrateur - Site Admin
Administrateur - Site Admin


Inscrit le: 28 Avr 2006
Messages: 14854

[php&bdd] erreur introuvable dans une requêtePosté le: Ven Mai 11, 2007 3:51 pm    Sujet du message: Re: [php&bdd] erreur introuvable dans une requête

Bah je sais pas, ça dépend de ce que tu faisais avec, si par exemple $_GET['ID_Etudiant'] était considérée comme une chaîne de caractère ou un truc dans le genre, la requête pouvait simplement ne pas fonctionner, faute de résultats possibles.


ça marche là du coup ?

_________________
Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche
Revenir en haut de page
Visiter le site web de l'utilisateur
gowap
phpBB SEO Team
phpBB SEO Team


Inscrit le: 07 Mai 2006
Messages: 1005

[php&bdd] erreur introuvable dans une requêtePosté le: Ven Mai 11, 2007 11:16 pm    Sujet du message: Re: [php&bdd] erreur introuvable dans une requête

dcz a écrit:
Avec ? pour le if et : pour le else.

C'est pratique pour les cas ou l'on doit pas effectuer plus d'une ligne de code par cas, pour les initialisation de variable principalement.
Et c'est toujours 4 ligne de code de gagné Wink

Moins de code ne veut pas dire plus rapide, voir par exemple :
http://www.estvideo.com/dew/pages/phpbench/
qui entre autre annonce que if/else serait plus rapide.

Evidemment, je case le blabla d'usage : ce qui vaut pour un serveur donné, avec une config donnée, telle version de php, etc. ne sera pas forcément vrai pour un autre. Et de toute façons quand il s'agit de nano secondes.....

_________________
Gravure-News : la communauté francophone de la gravure de CD/DVD et son forum d'entraide.
Revenir en haut de page
Visiter le site web de l'utilisateur
dcz
Administrateur - Site Admin
Administrateur - Site Admin


Inscrit le: 28 Avr 2006
Messages: 14854

[php&bdd] erreur introuvable dans une requêtePosté le: Sam Mai 12, 2007 9:36 am    Sujet du message: Re: [php&bdd] erreur introuvable dans une requête

Intéressant, mais il y a un paramètre important qui n'est pas pris en compte, la compilation. Ces testes serait different sur de plus petites boucles je pense.

Le nombre de lignes de code compte pour beaucoup dans la compilation. Et du coup, ces même résultats peuvent être assez différent pour de plus petites boucles.

Si non c'est un bon benchmark en effet, à part le test démago de :

Code:
echo 'test $test test' ;
vs
Code:
echo "test $test test";


Même s'il est intéressant de noter que les guillemet simple ont l'air plus rapide, cet exemple ne teste pas la même chose, vu que le premier ne va considérer qu'une chaîne de texte et le deuxième une chaîne de texte avec une variable à parser.

Un truc marrant que j'ai remarqué en codant gym sitemaps, c'est que sprintf est diaboliquement rapide en comparaison d'un parsing manuel, d'ou les :

Code:
$this->output_data['data'] .= sprintf($this->style_config['Sitemap_tpl'], $topic_url . $phpbb_seo->seo_ext['topic'], $topic_time, $topic_change, $topic_priority);

avec :
Code:
$this->style_config['Sitemap_tpl'] = "\n\t" . '<url>' . "\n\t\t" . '<loc>%s</loc>' . "\n\t\t" . '<lastmod>%s</lastmod>' . "\n\t\t" . '<changefreq>%s</changefreq>' . "\n\t\t" . '<priority>%s</priority>' . "\n\t" . '</url>';

On gagne vraiment du temps sur des milliers de boucles.

++

_________________
Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche
Revenir en haut de page
Visiter le site web de l'utilisateur
otar



Inscrit le: 09 Mai 2007
Messages: 12

[php&bdd] erreur introuvable dans une requêtePosté le: Sam Mai 12, 2007 11:50 am    Sujet du message: Re: [php&bdd] erreur introuvable dans une requête

J' ai verifié tout, $_GET['Etudianr'] correspond à INT, donc c' est pas un chain des caracteres et donc j 'ai pas compris pourquoi mon programme ne marchais pas.

Ta requete marche tres bien dcz.
Revenir en haut de page
dcz
Administrateur - Site Admin
Administrateur - Site Admin


Inscrit le: 28 Avr 2006
Messages: 14854

[php&bdd] erreur introuvable dans une requêtePosté le: Dim Mai 13, 2007 1:52 pm    Sujet du message: Re: [php&bdd] erreur introuvable dans une requête

Le plus important est que ça marche, et que la méthode soient plus sure.

Les deux requêtes sont identiques, hormis l'utilisation directe de $_GET, et ce pourrait être juste ça, une saine limitation de ta config.

++

_________________
Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche
Revenir en haut de page
Visiter le site web de l'utilisateur
gowap
phpBB SEO Team
phpBB SEO Team


Inscrit le: 07 Mai 2006
Messages: 1005

[php&bdd] erreur introuvable dans une requêtePosté le: Dim Mai 13, 2007 10:14 pm    Sujet du message: Re: [php&bdd] erreur introuvable dans une requête

dcz a écrit:
Intéressant, mais il y a un paramètre important qui n'est pas pris en compte, la compilation.

euh....les scripts php sont interprétés, pas compilés. Rolling Eyes

Citation:
Le nombre de lignes de code compte pour beaucoup dans la compilation. Et du coup, ces même résultats peuvent être assez différent pour de plus petites boucles.

Bah si tu fais des boucles avec moins d'itérations ca changera rien. Oui, le temps absolu mis pour executer chaque version sera plus faible, mais en pourcentage, tu récupéreras un ecart certain.


Citation:
Même s'il est intéressant de noter que les guillemet simple ont l'air plus rapide, cet exemple ne teste pas la même chose, vu que le premier ne va considérer qu'une chaîne de texte et le deuxième une chaîne de texte avec une variable à parser.

Allons allons, ce test n'est la que pour amener les gens a prendre conscience de l'optimisation détaillée juste apres, a savoir le gain phénoménal avec echo 'blabla' . $bla plutot que echo "blabla $bla".

_________________
Gravure-News : la communauté francophone de la gravure de CD/DVD et son forum d'entraide.
Revenir en haut de page
Visiter le site web de l'utilisateur
otar



Inscrit le: 09 Mai 2007
Messages: 12

[php&bdd] erreur introuvable dans une requêtePosté le: Sam Mai 26, 2007 11:41 am    Sujet du message: Re: [php&bdd] erreur introuvable dans une requête

Bonjour.

La meme chose:

Je ne trouve pas la faute dans le code (qui doit assurer l'insertion des notes d' étudiants dans la base des données).Tandis qu' après du lancement du programme navigateur n' affiche rien. J' ai verifié bien le syntaxe, j' ai verifié si le fichier connectIFG.php se trouvait dans le même repertoire que le code en question.
La requête sql avec JOIN -s marche aussi bien.
Comme si tout est comme il faut.

Aidez moi à trouver la faute s'il vous plaît.

Voilà le code:
Code:


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



 <?php


   if (isset($_POST['Valider_Notes'])) {
 
     
       $query='INSERT INTO Notes
         (ID,ID_Etudiant,ID_Formation,ID_Modules_1,Notes)   
         VALUES ("",
                    "' . $_POST["ID_Etudiant"] . '",
                    "' . $_POST["ID_Branche"] . '",
                    "' . $_POST["ID_Nom_Modules"] . '",
                    "' . $_POST["Notes"] .'"
                    )';
 

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


echo '<h1 align=center>Ajouter une note</h1>
<form name=form_notes method=POST action="./Ajouter_Notes.php?ID_Notes='.$_GET['ID_Notes'].' ">

<table border=1 align=center>

<TR>
<TD>
<label> Note </label>
</TD>
<TD>
<input type="text" name="Notes"><BR>
</TD>
</TR>
';

$query = 'SELECT * FROM Etudiant';

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

    echo '   

<TR>
<TD> <label> Nom d'etudiant </label>
</TD>
<TD><select name="ID_Etudiant">
         <option value=0>--- Choisissez ---</option>
         ';

 while ($row = mysql_fetch_array($result)) {
      echo'
         <option value="' . $row['ID'] . '">'. $row['Nom'] . ' '. $row['Prenom'].'
               
                                </option>
            ';
}
echo '</select></TD>
</TR>';

}

   $query = 'SELECT * FROM Formation';

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

 echo '   

<TR>
<TD> <label> Nom de la branche </label>
</TD>
<TD><select name="ID_Branche">
         <option value=0>--- Choisissez ---</option>
         ';

 while ($row = mysql_fetch_array($result)) {
      echo'
         <option value="' . $row['ID'] . '">'. $row['Branches'] . '
               
                                </option>
            ';

}
 echo '</select></TD>
  </TR>
';

}


   $query = 'SELECT * FROM Modules';

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

echo'

<TR>
<TD> <label> Nom du module </label>
</TD>
<TD><select name="ID_Nom_Modules">
         <option value=0>--- Choisissez ---</option>
         ';
 

while ($row = mysql_fetch_array($result)) {
      echo'
         <option value="' . $row['ID'] . '">'. $row['Nom_Modules'] . '
               
                                </option>
            ';

}
echo ' </select></TD>
</TR>

<TR>
<TD colspan=2>
<input type=submit name="Valider_Notes" value="valider"/>
</TD>
</TR>

';

if (isset($_GET['ID_Notes'])) {
echo '
<TR>
<TD colspan=2>
<input type=submit name="Supprimer_Note" value="supprimer"/>
</TD>
</TR>
';
}
echo '

</TABLE>
</form>';
   
 }



  $query='SELECT  Notes.ID,Etudiant.Nom,Etudiant.Prenom,Formation.Branches,Notes.Notes,Modules.Nom_Modules   FROM Notes JOIN Etudiant ON Etudiant.ID=Notes.ID_Etudiant JOIN Formation ON Notes.ID_Formation=Formation.ID JOIN Modules ON  Modules.ID=Notes.ID_Modules_1 GROUP BY  Notes.ID_Etudiant,Notes.ID_Formation';

 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>Notes</TH>
<TH>Module</TH>
</TR>
';
while ($row=mysql_fetch_array($result)) {

echo '
<TR>
<TD>'
.$row['Prenom'].'

</TD>
<TD>
<a href="./Ajouter_Notes.php?ID_Notes='.$row['ID']. '">'.$row['Nom'].'</a>
</TD>
<TD>'.$row['Notes'].'
</TD
<TD>'
.$row['Nom_Modules'].'
</TD>
</TR>
';
}
echo '</table>';
}
?>

Revenir en haut de page
dcz
Administrateur - Site Admin
Administrateur - Site Admin


Inscrit le: 28 Avr 2006
Messages: 14854

[php&bdd] erreur introuvable dans une requêtePosté le: Dim Mai 27, 2007 10:00 am    Sujet du message: Re: [php&bdd] erreur introuvable dans une requête

Encore le coup d'utiliser les variable des tableaux $_GET et $_POST directement dans tes requêtes on dirait :
Code:

   $query='INSERT INTO Notes
         (ID,ID_Etudiant,ID_Formation,ID_Modules_1,Notes)   
         VALUES ("",
                    "' . $_POST["ID_Etudiant"] . '",
                    "' . $_POST["ID_Branche"] . '",
                    "' . $_POST["ID_Nom_Modules"] . '",
                    "' . $_POST["Notes"] .'"
                    )';


C'est dangereux, et apparemment, pas permis par ta config.

Autre conseil général, je me demande si tu fait bien d'utiliser directement les fonction mysql de php, ADODB est une classe un peu trop complète, mais il y en a des plus simple, et ça vaut même le coup de s'en faire un perso à réutiliser tout le temps.

La classe db de phpBB3 est très complète aussi.
L'intérêt étant de faire directement des applis compatibles avec plusieurs DB (et version de db), avec des fonctionnalité intéressantes comme le cache SQL ou des fonction de filtre des données à insérer ou querir.

Et surtout, toujours vérifier la validité des variables que tu récupères de l'extérieur avant d'interagir en quoi que ce soit avec.

++

_________________
Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche
Revenir en haut de page
Visiter le site web de l'utilisateur
otar



Inscrit le: 09 Mai 2007
Messages: 12

[php&bdd] erreur introuvable dans une requêtePosté le: Sam Juin 09, 2007 11:13 am    Sujet du message: Re: [php&bdd] erreur introuvable dans une requête

Bonjour,

À chaque rechargement de navigateur, la derniere ligne inserée dans bdd.table_quelqonque
se reinsère et reinsère de nouveau. Je comprend pas pourquoi. Ne pourriez vous pas de m'expliquer quelles seraient les causes possibles?

Merci d'avance.
Revenir en haut de page
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    phpBB SEO » Forum Référencement  » Développement de site
Page 1 sur 1

Navigation Autres sujets de discussion

Sauter vers: