Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/05/2006, 15h53   #1
Membre du Club
 
Inscription : mai 2006
Messages : 69
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 69
Points : 46
Points : 46
Par défaut [SQL] Aide sur $_GET

Bonjour à tous,

voila mon probleme :
j'ai un tableau m'affichant le contenu d'une base de données. Je crée un formulaire et à chaque valeur de cette base de données j'ajoute une case a cocher me permettant de valider ou nom la valeur. J'obtiens donc un truc comme ceci :

Valeur de la base de donnée | Option
_________________________________

Valeur 1 |
Valeur 2 | X
Valeur 3 | X

Lorsque je valide le formulaire, j'obtiens donc dans mon url ceci :
index.php?valeur2=ok&valeur3=ok

Ensuite, pour mettre a jour la base de données je récupère le contenu de celle ci dans une variable $temp (peut importe le nom) et j'aimerais vérifier si chaque élément de cette variable est contenue dans l'url : donc faire un truc genre $_GET[$temp] afin d'enchainer avec une requete update, mais la vous allez me dire que ce n'est pas possible. Cependant je ne vois pas de possibilité de contourner le problème. C'est pourquoi je sollicite votre aide. Merci de vos réponses

PS : Je n'ai malheureusement pas l'autorisation de fournir du code. J'espere avoir été assez clair
ZeRiL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 15h59   #2
Membre émérite
 
Avatar de Yobs
 
Inscription : avril 2004
Messages : 675
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2004
Messages : 675
Points : 808
Points : 808
Envoyer un message via MSN à Yobs
Il te suffit simplement d'effectuer des test
Citation:
<?php
if (isset($_GET['valeur1'] {
...
}
if (isset(
$_GET['valeur2'] {
...
}
if (isset(
$_GET['valeur3'] {
...
}
if (isset(
$_GET['valeurn'] {
...
}
?>
Colorez votre code PHP sur les forums grâce à Developpez.com

Par contre je te conseillerai plutot d'utiliser la méthode post pour ton formulaire. Le proncipe reste le même sauf que tu utilise $_POST au lieu de $_GET
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés
Yobs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 16h00   #3
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Dans ta page de traitement, il suffit de parcourir les variables contenues dans $_GET et de construire la requête SQL d'update en conséquence non ?
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 16h05   #4
Membre du Club
 
Inscription : mai 2006
Messages : 69
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 69
Points : 46
Points : 46
Oui mais le problème est que les valeurs de la base de données (valeur1, valeur2 etc...) sont dynamiques et que je peux récupérer quelques dizaines de valeurs donc je n'ai pas trop envie de me casser le cul avec un switch lol. Mais s'il n'existe pas d'autres solutions j'vais pas avoir le choix :p. En gros ma question était : est-il possible de passer une variable dans $_GET ou faut-il absolument une valeur en dur ?
ZeRiL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 16h05   #5
Membre émérite
 
Avatar de ozzmax
 
Inscription : novembre 2005
Messages : 986
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : novembre 2005
Messages : 986
Points : 863
Points : 863
Envoyer un message via MSN à ozzmax
Je suis d'accord avec Yobs
tu devrais valider si tes variable $_get ont été setté avec isset...
mais bon comme on voit ce qui se passe dans l'url tu devrais utiliser les varaiable $_post des formulaires avec une valisation
Code :
1
2
3
4
 
if(isset($_post['tavar'])){
...
}
__________________
La perfection n'est pas un but, l'amélioration constante devrait l'être!
La position des Développeurs de developpez avec les explications
ozzmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 16h26   #6
Membre expérimenté
 
Avatar de papyphp
 
Inscription : avril 2005
Messages : 425
Détails du profil
Informations personnelles :
Âge : 62
Localisation : Belgique

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : avril 2005
Messages : 425
Points : 545
Points : 545
Bonjour,

J'ai eu un pb de ce genre à résoudre.
Je m'en suis sorti en faisant ceci :
Dans ta première page tu construis un tableau qui contient toutes les valeurs
tu transfères ce tableau par $_SESSION
Dans la page de traitement
Code :
1
2
3
4
5
6
7
8
 
$tab = unserialize($_SESSION['truc']);
$nb = count($tab);
for ($i=0 ;$i<$nb; $i++){
  if (isset($_GET[$tab[$i]])){
    exécution de l'update
  }
}
Ceci n'est valable que si le traitement à appliquer est le même dans chacun des cas (ce qui semble le cas ici, un update de la table)
__________________
Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp. Et ce coup ci, elle ne nous a pas ratés
papyphp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 19h42   #7
Membre émérite
 
Avatar de Yobs
 
Inscription : avril 2004
Messages : 675
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2004
Messages : 675
Points : 808
Points : 808
Envoyer un message via MSN à Yobs
Dans ce cas, alors, regarde du coté d la fonction foreach(), elle te permet de parser un tableau .

http://fr.php.net/manual/fr/control-...es.foreach.php
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés
Yobs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 20h51   #8
Membre du Club
 
Inscription : mai 2006
Messages : 69
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 69
Points : 46
Points : 46
Merci de vos réponses

J'avais aussi pensé au foreach mais le problème reste le même, a savoir que j'aurais toujours un $_GET[$truc] et ca c'est pas possible :/

Par contre l'idée de passer le tableau dans $_SESSION me plait bien, mais le problème reste le même : "if (isset($_GET[$tab[$i]])){" ca passera pas :s
Mais j'pense que y'a moyen de se débrouiller avec ca. Dans l'immédiat j'suis en we donc j'y réfléchirais mardi lol.

Encore merci
ZeRiL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 20h57   #9
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 569
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 569
Points : 2 500
Points : 2 500
Salut, pour un cas comme le tien, je pense que ce lien pourrait être utile : http://julp.developpez.com/php/formulaires/#5

Bon développement
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 08h36   #10
Membre du Club
 
Inscription : mai 2006
Messages : 69
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 69
Points : 46
Points : 46
Effectivement, je pense que ca va résoudre le problème. Merci Nesmontou
ZeRiL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 11h25   #11
Membre du Club
 
Inscription : mai 2006
Messages : 69
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 69
Points : 46
Points : 46
Pb résolu, il suffisait de créer un tableau dans le formulaire comme indiqué dans le lien fourni 2 posts plus haut :p

Merci a tous
ZeRiL est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h43.


 
 
 
 
Partenaires

Hébergement Web