Je recoit se msg Undefined variable: id
f@tiz
Messages postés
20
Statut
Membre
-
ElementW Messages postés 5690 Statut Contributeur -
ElementW Messages postés 5690 Statut Contributeur -
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";
}
}
3 réponses
-
Bonjour
tu as quoi dans ton url au moment où tu appelles cette fonction ?
Ajoutes au début de la fonctionprint_r($_GET);
et dis nous ce que çà t'affiche.
Cordialement,
Jordane-
Bonjour jordan merci votre attention ;
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
-
-
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 :
<?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....
<?php require './pays.php'; require './ville.php'; $id=isset($_GET['id'])?$_GET['id']:NULL; $oVille = new ville(); echo $oVille->recupVille($id);
-
-
'lut, avant que ton code ne devienne gros, et en urgence:
arrête d'utiliser l'extension MySQL, elle est OBSOLÈTE et même DANGEREUSE!
from human import idiocy
del idiocy