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 17/10/2009, 06h03   #1
Invité de passage
 
Inscription : octobre 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 4
Points : 2
Points : 2
Par défaut Lecture d'un $_GET pour sélectionner un enregistrement SQL

Bonjour,
Mon problème est certainement simple pour vous; le voici:
Je reçois des données par $_GET dans un fichier php
Je peux sans problème afficher le contenu des variables.
Le problème est lorsque je veux utiliser une des variables pour sélectionner un des enregistrements de ma base SQL

Voici le code envoyé par la page originale:
.../affparois.php?Ville= Adstock&Indexx=10&Nom_du_cimetiere= St-M?thode

C'est le résultat de la variable Indexx que j'ai besoin. Je veux donc ouvrir l'enregistrement #10 de ma table dans ce cas ci.

Le fichier qui contient la requête cause problème ici:

$sql = 'SELECT * FROM Paroisses WHERE NoCim="$_GET[Indexx]" ';

// On lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

//on organise $req en tableau associatif $data['champ']
//en scannant chaque enregistrement récupéré
//on en profite pour gérer l'affichage

//titre de la page avant la boucle
echo'<h2>TOUTES LES DONNEES INSCRITES :</h2>';

//boucle
while ($data = mysql_fetch_array($req))
{

// on affiche les résultats
echo 'Pseudo : <strong>'.$data['Ville'].'</strong><br />';
echo 'Son âge : '.$data['Nom_du_cimetiere'].'<br />';
echo 'Sa date d\'inscription : '.$data['Description'].'<br /><br/>';
}
//On libère la mémoire mobilisée pour cette requête dans sql
//$data de PHP lui est toujours accessible !
mysql_free_result ($req);

//On ferme sql
mysql_close ();
?>

Si je ne spécifie pas de clause WHERE, la boucle while se fait et j'ai la réponse de tous les enregistrements. Lorsque je mets la clause WHERE..., il ne va pas chercher l'enregistrement #10 , la réponse reste sans résultat (et sans erreur).
Si j'indique le #10 manuellement, (...WHERE NoCim="10") j'ai le résultat escompté.
Quelqu'un peut-il m'aider ?
Merci à l'avance
frangreg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2009, 09h23   #2
Membre chevronné
 
Avatar de micetf
 
Homme Fred
Professeur des Ecoles
Inscription : mai 2009
Messages : 502
Détails du profil
Informations personnelles :
Nom : Homme Fred
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Professeur des Ecoles
Secteur : Enseignement

Informations forums :
Inscription : mai 2009
Messages : 502
Points : 700
Points : 700
Bonjour,
Peut-être qu'en testant ce bout de code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<form action="" method="get">
	<input type="text" name="Indexx"/>
	<input type="submit" name="valider" value="valider">
</form>
<?php 
if (!empty($_GET['Indexx'])) {
	echo "<pre>";
	var_dump($_GET);
	echo "</pre>";
 
	$sql = 'SELECT * FROM Paroisses WHERE NoCim="$_GET[Indexx]" ';
	echo "Requete 1 : ".$sql."<br/>"."<br/>";
 
	$sql = 'SELECT * FROM Paroisses WHERE NoCim='.$_GET['Indexx'];
	echo "Requete 2 : ".$sql."<br/>";
}
cela éclairera ta lanterne.
Fred
micetf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2009, 15h11   #3
Invité de passage
 
Inscription : octobre 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 4
Points : 2
Points : 2
Par défaut Merci

C'est fou, je savais que ce n'était pas grand chose.
Problème résolu dès mon réveil ce matin.
Merci beaucoup Fred
et merci aussi à developpez.net pour la rapidité des réponses!
frangreg 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 +1. Il est actuellement 03h45.


 
 
 
 
Partenaires

Hébergement Web