IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

FORMULAIRE _methode GET [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Points : 53
    Points
    53
    Par défaut FORMULAIRE _methode GET
    bonjour, j'ai besoin de vous. Voici mon formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
    <form name="etat_absences" action="memo_etat_absences.php" method="POST">
    <p id="recherche_groupe">
    	<select name="action" >
    		<?php
    			require ("Connect.php");
                    	$connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
       			mysql_select_db (BASE,$connexion);
                    	$sql = 'SELECT action from action ORDER BY action ASC ';
                      	$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
                   		while($data = mysql_fetch_array($req))
    			{
                               echo '<option value="'.$data['action'].'" " selected ">'.$data['action'].'</option><br>\n';
                    	}
                    	mysql_free_result ($req);
                    ?>
    				</select>
    		<input type="submit" name="afficher_la_liste" value="afficher la liste" >
     
    		</p>
    				<table cellspacing="0" cellpadding="0"id="table_liste_groupe">						
    		<?php
                     if (isset($_POST['afficher_la_liste']))
                      {
                        require ("Connect.php");
                        $connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
                        mysql_select_db (BASE,$connexion);
                       $resultat = mysql_query ($requete, $connexion);
                     $sql = mysql_query("SELECT id,nom, prenom FROM profil  WHERE action='$_POST[action]'");
                      echo '<tr>
    			<td colspan="2" id="languette_haut">
    				</td>
    					</tr>';
                                     while($result=mysql_fetch_array($sql))
    	                         {
    	                            echo '
    					<tr>
    						<td id="nom_prenom">
    						<a href="memo_etat_absences.php?id='.$result['id'].'">'.$result['nom'].'</a>
    						</td>
    						<td id="nom_prenom">
    						 '.$result['prenom'].'
    						</td>
    					</tr>';	
                                  }
                              echo '<tr>
    				   <td colspan="2" id="languette_bas">
    					</td>
    					</tr>';
                                }					
                         ?>						
    </table>
    			<fieldset id="fieldset_absences">
                              <legend>
    				ETAT DES ABSENCES
    			</legend>
    				<table cellspacing="0" cellpadding="1" align="center" id="">						
    		     <?php
    			if (isset($_GET['id'])) {
    				require ("Connect.php");
    				$connexion=mysql_pconnect (SERVEUR, NOM, PASSE);
    				mysql_select_db (BASE,$connexion);
    				$requete='SELECT * FROM afi_situation WHERE id='.$_GET[id];
     
                                 while($result=mysql_fetch_array($requete))
    	                        {
    	                          echo '
    		
    					<tr>
    						<td id="date_debut_abs">
    						'.$result['date_debut_abs'].'
    						</td>
    						<td id="date_fin_abs">
    						 '.$result['date_fin_abs'].'
    						</td>
    						<td id="motif_absence">
    						'.$result['motif_absence'].'
    						</td>
    						<td id="note_absence">
    						 '.$result['note_absence'].'
    						</td>
    					</tr>';	
    		            }
                               }
                           ?>				
    </table>		
    		</form>
    Voilà, à partir du script ligne 58 : j'utilise la méthode GET. En cliquant sur le lien nom je lui demande de m'afficher le tableau inclus dans le script.
    J'ai le message suivant:Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in C:\xampp\htdocs\sites\projetEncours\memo_etat_absences.php on line 143 .
    Ici l'évaluation se fait dans le même fichier.php. Pour la méthode Get cette technique est elle faisable?
    Merci de m'aider!!

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    En supposant que tu parles de ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $requete='SELECT * FROM afi_situation WHERE id='.$_GET[id];
     
    while($result=mysql_fetch_array($requete))
    il n'y a aucune chance que ça fonctionne : il manque l'exécution de la requête Tu as également une faille pour injection SQL de la taille du Grand Canyon : il faut (au moins) utiliser mysql_​real_​escape_​string sur ta variable $_GET['id'].

    Au passage, quelques remarques concernant l'ensemble du script :
    - les fonctions mysql sont obsolètes en PHP 5.5+ et seront supprimées en PHP 7. Donc si tu veux survivre à une montée de version de PHP, il va falloir migrer ton code vers PDO ou mysqli.
    - tu ouvres des connexions persistantes : $connexion = mysql_pconnect (SERVEUR, NOM, PASSE); (à plusieurs endroits dans ton script) J'espère que c'est fait exprès...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    merci pour tes observations, je débute...
    Qu'est ce que tu entends par
    il manque l'exécution de la requête...

  4. #4
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    j'ai pigé, j'ai oublié une ligne de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    Merci!!!!!!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formulaire en GET et paramètres préétablis
    Par grandpa006 dans le forum Langage
    Réponses: 1
    Dernier message: 26/03/2008, 13h32
  2. Passer plusieurs variable via un formulaire, en GET
    Par godjojo dans le forum Langage
    Réponses: 2
    Dernier message: 22/01/2008, 10h17
  3. Formulaire envoi GET
    Par jmjmjm dans le forum Langage
    Réponses: 8
    Dernier message: 13/09/2006, 17h04
  4. [SERVLET]Traitement de formulaire paramètres GET et POST
    Par ederf dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 19/05/2006, 14h56
  5. formulaire (post - get)
    Par Yoshio dans le forum Langage
    Réponses: 5
    Dernier message: 22/01/2006, 17h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo