Je recoit se msg Undefined variable: id
f@tiz
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
ElementW Messages postés 4814 Date d'inscription Statut Contributeur Dernière intervention -
ElementW Messages postés 4814 Date d'inscription Statut Contributeur Dernière intervention -
public function recupVille()
{
$id=$_GET['id'];
$req = mysql_query("select * from ville where id_pays=".mysql_real_escape_string($id));
if($req){
while($array=mysql_fetch_row($req)){
echo " <option value=". $array[0];">".$array[1]."</option>";
}
}
else {echo 'Invalid query: ' . mysql_error() . "\n";
}
}
{
$id=$_GET['id'];
$req = mysql_query("select * from ville where id_pays=".mysql_real_escape_string($id));
if($req){
while($array=mysql_fetch_row($req)){
echo " <option value=". $array[0];">".$array[1]."</option>";
}
}
else {echo 'Invalid query: ' . mysql_error() . "\n";
}
}
A voir également:
- Je recoit se msg Undefined variable: id
- Recuperer msg supprimé whatsapp - Guide
- Recoit on les message apres deblocage - Forum iPhone
- Comment lire un msg supprimé sur whatsapp - Guide
- Variable d'environnement temp - Forum Word
- Vba range avec variable ✓ - Forum VB / VBA
3 réponses
Bonjour
tu as quoi dans ton url au moment où tu appelles cette fonction ?
Ajoutes au début de la fonction
Cordialement,
Jordane
tu as quoi dans ton url au moment où tu appelles cette fonction ?
Ajoutes au début de la fonction
print_r($_GET);et dis nous ce que çà t'affiche.
Cordialement,
Jordane
Je vois ... tu appelles une fonction présente dans une class... donc... les variables GET ne lui sont pas transmises...
L'idéal dans ce cas est de faire comme ceci :
Et dans le code où tu appelles cette fonction :
PS: Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
L'idéal dans ce cas est de faire comme ceci :
<?php require './connect.php'; class ville extends pays { public function recupVille($id){ if($id){ $sql="select * from ville where id_pays='$id' "; $req = mysql_query($sql); if($req){ $result = ""; while($array=mysql_fetch_row($req)){ $result .= " <option value=". $array[0];">".$array[1]."</option>"; } }else { $result = 'Invalid query: ' . mysql_error() ."<br> Requete:<br>" .$sql."\n"; } }else[ $result = "No ID"; } return $result; }
Et dans le code où tu appelles cette fonction :
$id=isset($_GET['id'])?$_GET['id']:NULL; $oVille = new ville(); echo $oVille->recupVille($id);
PS: Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
<code php>
<?php
require './connect.php';
class ville extends pays {
public function recupVille($id){
if($id){
$sql="select *
from ville
where id_pays='$id' ";
$req = mysql_query($sql);
if($req){
$result = "";
while($array=mysql_fetch_row($req)){
$result .= " <option value=". $array[0];">".$array[1]."</option>";
}
}else {
$result = 'Invalid query: ' . mysql_error() ."<br> Requete:<br>" .$sql."\n";
}
}else{
$result = "No ID";
}
return $result;
}
}
</code>
voila le code d'apple du method :
<?php require './ville.php'; $id=isset($_GET['id'])?$_GET['id']:NULL; $oVille = new ville(); echo $oVille->recupVille($id); je reçu c msg : Class 'pays' not found in C:\wamp\www\lecourrierdupharmacien (1)\ville.php on line 6 mm si j ai une page pays.php
Pour info le tableau des paramètres GET est une variable superglobale, donc accessible depuis une méthode de classe : https://www.php.net/manual/fr/language.variables.scope.php#example-123
@Pitet : Oui c'est sûr... sauf que c'est quand même fortement déconseillé....et en tout cas.. ce n'est clairement pas "propre".
@Fetiz
Quoi qu'il en soit...
A moins que tu n'utilises un AutoLoader pour tes CLASS .. il faut les inclure manuellement....
@Fetiz
Quoi qu'il en soit...
A moins que tu n'utilises un AutoLoader pour tes CLASS .. il faut les inclure manuellement....
<?php require './pays.php'; require './ville.php'; $id=isset($_GET['id'])?$_GET['id']:NULL; $oVille = new ville(); echo $oVille->recupVille($id);
voila mon nouveau code :
<?php
require './connect.php';
class ville extends pays {
public function recupVille()
{
print_r($_GET);
$id=$_GET['id'];
$req = mysql_query("select * from ville where id_pays=".$this->id);
if($req){
while($array=mysql_fetch_row($req)){
echo " <option value=". $array[0];">".$array[1]."</option>";
}
}
else {echo 'Invalid query: ' . mysql_error() . "\n";
}
}
}
tjr j ai eu l mm msg que id n est defini
et aussi : Invalid query: 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 1