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

Langage PHP Discussion :

Requête avec variable GET


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Points : 21
    Points
    21
    Par défaut Requête avec variable GET
    Bonjour à tous,

    je viens avec un petit souci. Voici ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if(isset($_POST['nom'])){
    		$sexe = $_GET['sexe'];
    		$age = $_GET['Age'];
     
    		$sql = "SELECT * FROM licence 
                              WHERE Structure = '". $_SESSION['club'] ."' 
                              AND Nom LIKE '". $_POST['nom'] ."%' 
                              AND Age = '".$age."' 
                              AND sexe = '".$sexe."'";
    		}
    Si j'enlève leur deux dernières conditions la requête fonctionne.
    Si j'affecte les variables $sexe et $age en "dur" la requête fonctionne.
    Quand j'affiche les variables $sexe et $age en début de page, elles s'affichent correctement.

    On dirait que dans la condition if(isset($_POST['nom'])) la récupération des valeurs par méthode GET ne se fait pas correctement.

    Avez vous une idée?

    Merci.

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Comment peut on traiter un POST et un GET en même temps ??
    (Dans une page ok, mais là faut que j'apprenne ce truc en plus)

    Quand j'affiche les variables $sexe et $age en début de page, elles s'affichent correctement.
    Cad avec les deux GET ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 64
    Points : 41
    Points
    41
    Par défaut
    Fais un echo de ta requete et tu verras ce que tu envoies a ta base de donnée.

    echo $sql;

    A mon avis tu as un probleme entre tes guillemets et tes codes Je te laisse regarder ca.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par Fench Voir le message
    Bonjour,

    Comment peut on traiter un POST et un GET en même temps ??
    (Dans une page ok, mais là faut que j'apprenne ce truc en plus)


    Cad avec les deux GET ?
    Ma variable POST['nom'] est alimenté par un champ présent dans un FORM
    La requête consiste à faire une autocomplétion du mot saisie dans le POST
    Et les GET me permettent de faire un tri dans ma requête par age et sexe.
    Voici une partie de mon code.

    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
     
     
    if(isset($_POST['nom'])OR isset($_POST['nom2'])){
     
    		if(isset($_POST['nom'])){
    		$sql = "SELECT * FROM licence 
                              WHERE Structure = '".$_SESSION['club']."' 
                              AND Nom LIKE '".$_POST['nom']."%' 
                              AND sexe = '".$_GET['sexe']."'
                              AND Age = '".$_GET['Age']."'";
    		}
     
    		if(isset($_POST['nom2'])){
    		$sql = "SELECT * FROM `licence` 
                              WHERE `Structure` = '".$_SESSION['club']."' 
                              AND `Nom` LIKE '".$_POST['nom2']."%' ";
    		}
     
    		$req = mysql_query($sql);
    		$i = 0;
     
    		echo '<ul class="contacts">';
    		// on boucle sur tous les éléments
    		while($autoCompletion = mysql_fetch_assoc($req)){
    	echo '
    <li class="contact"><div class="image">
      <div class="nom">'.$autoCompletion['Nom'].'</div>
      <div class="prenom">
         <span class="informal>'.$autoCompletion['Prenom'].'</span>
         <span class="informal" style="display:none">'.$autoCompletion['No_adherent'].'-idcache.jpg</span>
    <span class="informal" style="display:none">'.$autoCompletion['Prenom'].'-prenomcache</span>
       </div>
    </li>';
    	// on s'arrête s’il y en a trop
    	if (++$i >= 10)
    	die('<li>...</li></ul>');
    	}
    	echo '</ul>';
    	die();
    	}

  5. #5
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 476
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 476
    Points : 4 687
    Points
    4 687
    Par défaut
    Citation Envoyé par Fench Voir le message
    Comment peut on traiter un POST et un GET en même temps ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<form method="POST" action="page.php?sexe='.$sexe.'&age='.$age.'">';
    why not ?

    Ma variable POST['nom'] est alimenté par un champ présent dans un FORM
    les variables POST servent a envoyer les donnees d'une page a une autre.
    a moins que le form en question pointe sur la page ou tu fais ton traitement sql, tu n'auras pas de POST

    => affiche toutes des variables : les $_POST, les $_GET et les $locales.
    => affiche ta requete sql generee.
    si la requete te semble correcte, copie et execute-la directement dans phpmyadmin.
    => dis nous ce que tu obtiens

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Points : 21
    Points
    21
    Par défaut
    Le traitement de mon formulaire se passe bien sur la même page.
    Mais pas en validant le formulaire j'utilise une lib (Scriptaculous)

    http://scriptaculous.le-developpeur-...CTOR%28%29.php

    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
     
    	<form action="saveinscrit2.php?id=<?echo $id; ?>" method="POST" >
    		<table>
    			<tr>
    				<td><label for="nom">Saisir le  nom du rameur 1 : </label></td>
    				<td><input type="input" name="nom" id="nom" value="" /></td>
    			</tr>
    			<tr>
    				<td><label for="nom2">Saisir le  nom du rameur 2 : </label></td></td>
    				<td><input type="input" name="nom2" id="nom2" value="" /></td>
    			</tr>
    		</table>
    		<div class="update" id="nom_update"></div>
    		<input type="hidden" name="nom_id" id="nom_id" value="" /> 
    		<input type="hidden" name="rameur_prenom" id="rameur_prenom" value="" /> 
    		<div class="update" id="nom2_update"></div>
    		<input type="hidden" name="nom2_id" id="nom2_id" value="" /> 
    		<input type="hidden" name="rameur2_prenom" id="rameur2_prenom" value="" /> 
    		<br/>
     
    		<script type="text/javascript">
    		new Ajax.Autocompleter ('nom','nom_update','autocompletion.php',{method: 'post',paramName: 'nom',afterUpdateElement: ac_return});
    		new Ajax.Autocompleter ('nom2','nom2_update','autocompletion.php',{method: 'post',paramName: 'nom2',afterUpdateElement: ac_return});
    		</script>

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Points : 21
    Points
    21
    Par défaut
    Mais bon je ne comprend toujours pas pourquoi dans la partie de mon code qui traite le $_POST['nom'], les variables GET sont inefficaces

Discussions similaires

  1. Créer une requête avec variable d'une inputbox
    Par Elias Farks dans le forum VBA Access
    Réponses: 4
    Dernier message: 14/02/2008, 17h08
  2. [debutant]Requêtes Avec Variable
    Par theoffss dans le forum VB.NET
    Réponses: 14
    Dernier message: 07/12/2007, 22h04
  3. [SQL & VBA] Requête avec Variable
    Par Altrensa dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/07/2007, 14h31
  4. Réponses: 10
    Dernier message: 11/07/2007, 12h06
  5. Requête avec variable incrémentée sur changement de clé.
    Par souellet dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/09/2005, 22h47

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