Variable ($_GET['pays']) vide
Résolu
txiki
Messages postés
6596
Date d'inscription
Statut
Contributeur
Dernière intervention
-
txiki Messages postés 6596 Date d'inscription Statut Contributeur Dernière intervention -
txiki Messages postés 6596 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je ne comprends pas ce qui s'est passé: ma question a disparue. Je vais essayer de la reformuler de tête:
Je suahaiterai obtenir quelque chose comme ceci Afrique du Sud, c'est une page htm toute bete. J'ai créé deux tables, billets et flag contenant chacun le champ pays.
Le premier tableau m'affiche les nom de variable avec leur mise en forme au lieu de leur valeur (voir ici en cliquant sur Afghanistan)
Voici un extrait du code
Voir aussi mon post sur le forum webmaster
Merci beaucoup d'avance pour votre aide, je m'arrache les cheveux depuis quelques jours.
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
Je ne comprends pas ce qui s'est passé: ma question a disparue. Je vais essayer de la reformuler de tête:
Je suahaiterai obtenir quelque chose comme ceci Afrique du Sud, c'est une page htm toute bete. J'ai créé deux tables, billets et flag contenant chacun le champ pays.
Le premier tableau m'affiche les nom de variable avec leur mise en forme au lieu de leur valeur (voir ici en cliquant sur Afghanistan)
Voici un extrait du code
<?php // On recupere la variable "pays" correspondant au pays cliqué $pays = isset($_GET['pays'])?$_GET['pays']:'NULL'; // On utilise le passage de $_pays en $_GET['pays'] plutot qu'en $_POST["pays"] // Déclaration des variables de la table "flag" $drapeau = '$drapeau'; $nomcomplet = '$nomcomplet'; $capitale = '$capitale'; $monnaie = '$monnaie'; $histoire = '$histoire'; // Déclaration des variables de la table "billets" $visuel_recto = 'visuel_recto'; $valeur_recto = 'valeur_recto'; $format = 'format'; $recto = 'recto'; $visuel_verso = 'visuel_verso'; $valeur_verso = 'valeur_verso'; $format= 'format'; // on réaffiche le format du billet pour le verso $verso= 'verso'; ?>puis ceci :
<?php require 'fonctions.php'; // On récupère les informations de connexion à la base // connection à la BDD $select = mysql_pconnect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base mysql_select_db($select) or die ('Impossible de se connecter à la base'); // sélection de la table // On selectionne seulement la ligne qui correspond au pays $select = ("SELECT drapeau, nomcomplet, capitale, monnaie, histoire FROM flag WHERE pays='$pays'"); $result = mysql_query($select) or die ('Erreur : '.mysql_error() ); // n affiche que la première ligne pour la planche d'un pays, drapeau, capitale, monnaie et histoire de la monnaie echo"<table width='90%' border='0' align='center' cellpadding='5' cellspacing='0' bgcolor='#ffffff'>"; echo "<tr>"; echo "<td width='10%'><img src='$drapeau' /></td><td class='pays' width='30%'><strong>'$nomcomplet'</strong><br />capitale: <strong>'$capitale'</strong><br />monnaie : <strong>'$monnaie'</strong></td><td width='60%'><p class='money'>'$histoire'</p></td>"; echo "</tr>"; echo"</table>"; // ce premier tableau ne se répète pas // On selectionne seulement la ligne qui correspond au pays $select = ("SELECT visuel_recto, valeur_recto, format, recto, visuel_verso, valeur_verso, verso FROM billets WHERE pays='$pays'"); $result = mysql_query($select) or die ('Erreur : '.mysql_error() ); // on n'affiche ici que les lignes qui se répètent tant qu'il y a des billets pour ce pays via la boucle pour tableau "foreach" echo"<table ID='planche'>"; foreach ($billets as $pays) { $visuel_recto = $pays['visuel_recto']; $valeur_recto = $pays['valeur_recto']; $format = $pays['format']; $recto = $pays['recto']; $visuel_verso = $pays['visuel_verso']; $valeur_verso = $pays['valeur_verso']; $format= $pays['format']; // on réaffiche le format du billet pour le verso $verso= $pays['verso']; // echo"<table ID='planche'>"; echo "<tr>"; echo "<td class='billet'><img src='$visuel_recto' alt='$valeur_recto' title='$valeur_recto' /><br />'$valeur_recto'<br />'$format'<br />'$recto'</td>"; echo "<td class='billet'><img src='$visuel_verso' alt='$valeur_verso' title='$valeur_verso' /><br />'$valeur_verso'<br />'$format'<br />'$verso'</td>"; echo "</tr>"; } echo"</table>"; mysql_close(); ?>
Voir aussi mon post sur le forum webmaster
Merci beaucoup d'avance pour votre aide, je m'arrache les cheveux depuis quelques jours.
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
A voir également:
- Variable ($_GET['pays']) vide
- Supprimer page word vide - Guide
- Caractere vide - Guide
- Formate pour taxer client frigo vide - Forum Vos droits sur internet
- Coeur vide ✓ - Forum Réseaux sociaux
- 00447 indicatif de quel pays - Forum Orange
6 réponses
Petit rappel, l'extension mysql est obsolète
Ensuite, si tu veux inclure une variable dans une chaine, il y a 3 méthodes :
$Dest=$Source; ou $Dest='aa'.$Source;
$Dest="$Source"; // Note, c'est " et pas '
$Dest=sprintf('%s',$Source); ou
$Dest=sprintf('Une valeur dont je vous montre son état %d',$Source);
Ensuite, si tu veux inclure une variable dans une chaine, il y a 3 méthodes :
$Dest=$Source; ou $Dest='aa'.$Source;
$Dest="$Source"; // Note, c'est " et pas '
$Dest=sprintf('%s',$Source); ou
$Dest=sprintf('Une valeur dont je vous montre son état %d',$Source);
Salut NHenry,
Ben par un lien comme ceci:
Ce lien se trouve dans un DIV (26 au total, un par lettre) et qui est caché par défaut. Il ne s'affiche qu'en cliquant sur une lettre Liste des lettres.
Afghanistan pointe sur la page planche.php ou il y a le code du début de ce topic, Afrique du Sud pointe lui sur une page htm classique et c'est pour éviter d'avoir a écrire autant de pages que de pays que j'aurais voulu utiliser une BDD.
Précisions: cette page Accueil.php n'a aucun code php. Tout mon problème semble venir de cette page Accueil et de ce lien Afghanistan.
Je pensais que le mot cliqué (Afghanistan) devenait automatiquement une variable et donc la récupérer dans la page Planche.php.
Je suis débutant en php et c'est pourtant la première fois que je suis confronté à un Pb aussi aussi longtemps. J'ai du louper quelque chose que je ne vois pas.
Merci en tous cas de t'interresser à mon Pb.
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
Ben par un lien comme ceci:
<div id="LayerA" style="position:absolute; width:90%; height:236px; z-index:1; left: 72px; top: 220px; visibility: hidden;"><a class="lien" href="Planche.php">Afghanistan</a> | <a class="lien" href="Pays/Afrique_du_Sud.htm">Afrique du Sud</a> |
Ce lien se trouve dans un DIV (26 au total, un par lettre) et qui est caché par défaut. Il ne s'affiche qu'en cliquant sur une lettre Liste des lettres.
Afghanistan pointe sur la page planche.php ou il y a le code du début de ce topic, Afrique du Sud pointe lui sur une page htm classique et c'est pour éviter d'avoir a écrire autant de pages que de pays que j'aurais voulu utiliser une BDD.
Précisions: cette page Accueil.php n'a aucun code php. Tout mon problème semble venir de cette page Accueil et de ce lien Afghanistan.
Je pensais que le mot cliqué (Afghanistan) devenait automatiquement une variable et donc la récupérer dans la page Planche.php.
Je suis débutant en php et c'est pourtant la première fois que je suis confronté à un Pb aussi aussi longtemps. J'ai du louper quelque chose que je ne vois pas.
Merci en tous cas de t'interresser à mon Pb.
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
Bonjour jordane45,
Désolé mais ça ne change absolument rien. Je suis sur que c'est un truc tout con pourtant !. Le pays est bien spécifié dans l'url
Ca m'énerve !
Désolé mais ça ne change absolument rien. Je suis sur que c'est un truc tout con pourtant !. Le pays est bien spécifié dans l'url
Ca m'énerve !
mais ça ne change absolument rien. Je suis sur que c'est un truc tout con pourtant !. Le pays est bien spécifié dans l'url
Maintenant ..oui.. le pays est bien dans l'URL (suite à ma modif ....)
Maintenant... regardons le reste de ton code pour savoir ce qui bloque.
Déjà .... comme je te l'avais déjà dit (et Nhenry te le redit...)
Tout ceci est faux (e ne sert strictement à rien ! )
Selon toi.. d'où proviennent ces variables ?
Que devraient elles contenir ?
Tout ceci est faux (e ne sert strictement à rien ! )
<?php // Déclaration des variables de la table "flag" $drapeau = '$drapeau'; $nomcomplet = '$nomcomplet'; $capitale = '$capitale'; $monnaie = '$monnaie'; $histoire = '$histoire';
Selon toi.. d'où proviennent ces variables ?
Que devraient elles contenir ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon...
testes ce code ....
Il y avait tellement d'erreurs dans le tient que je ne vais pas tout te lister....
mais en gros voici les plus grosses :
1 - Tu ne faisais aucun fetch
2 - Tu utilisais un foreach sur une variable... qui sort dont on ne sait où !
testes ce code ....
Il y avait tellement d'erreurs dans le tient que je ne vais pas tout te lister....
mais en gros voici les plus grosses :
1 - Tu ne faisais aucun fetch
2 - Tu utilisais un foreach sur une variable... qui sort dont on ne sait où !
<?php //***************************************************************// // CONNEXION A LA BDD //------------------------------------// // On récupère les informations de connexion à la base require 'Fonctions_Billets.php'; $cnx = mysql_pconnect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base mysql_select_db($cnx) or die ('Impossible de se connecter à la base'); // sélection de la table //***************************************************************// // ================================ // On recupere la variable "pays" correspondant au pays cliqué // ================================ $pays = isset($_GET['pays'])?$_GET['pays']:'NULL'; // // le temps des tests: if(!$pays){ echo "<br> Variables GET :<br>"; print_r($_GET); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> Billets de banque du monde </title> <meta name="robots" content="index, follow" /> <meta name="author" content="Jean Michel Etchecolonea" /> <meta name="description" content="Collection de billets de banque du monde, neufs et ayant circulés." /> <meta name="keywords" content="papier monnaie, billet de banque, monnaies du monde, billetophilie, collection de billets de banque, monnaie, billets neuf, billets anciens" /> <link href="Styles/Billets.css" type="text/css" rel="stylesheet" /> <meta name="revisit-after" content="20 days" /> <meta http-equiv="imagetoolbar" content="no" /><!-- Empeche IE de mettre une barre sur les images //--> </head> <body> <?php // On selectionne seulement la ligne qui correspond au pays $sql = "select drapeau, nomcomplet, capitale, monnaie, histoire FROM flag WHERE pays='".$pays."'"; $result = mysql_query($sql,$cnx) or die ('Erreur : '.mysql_error() ."<br> Requete : ".$sql); $num_rows = mysql_num_rows($result); if($num_rows == 0){ echo "<br> ERREUR ! Aucune donnée trouvée pour ce pays dans la table flag!"; }else{ //On récupère la premiere ligne de la requete: $arrFlag = mysql_fetch_array($result); //on initialise les variables avec les données issues de la requête: $drapeau = $arrFlag['drapeau']; $nomcomplet = $arrFlag['nomcomplet']; $capitale = $arrFlag['capitale']; $monnaie = $arrFlag['monnaie']; $histoire = $arrFlag['$histoire']; // n affiche que la première ligne pour la planche d'un pays, drapeau, capitale, monnaie et histoire de la monnaie echo"<table width='90%' border='0' align='center' cellpadding='5' cellspacing='0' bgcolor='#ffffff'>"; echo "<tr>"; echo "<td width='10%'> <img src='$drapeau' /> </td> <td class='pays' width='30%'> <strong>$nomcomplet</strong><br />capitale: <strong>$capitale</strong><br />monnaie : <strong>$monnaie</strong> </td> <td width='60%'> <p class='money'>$histoire</p> </td>"; echo "</tr>"; echo"</table>"; // ce premier tableau ne se répète pas } // On selectionne seulement la ligne qui correspond au pays $select = "SELECT visuel_recto, valeur_recto, format, recto, visuel_verso, valeur_verso, verso FROM billets WHERE pays='$pays'"; $result = mysql_query($select,$cnx) or die ('Erreur : '.mysql_error() ."<br> Requete : ".$sql); $nb_result = mysql_num_rows($result); if($nb_result==0){ echo "<br> ERREUR ! Aucune donnée trouvée pour ce pays dans la table billets !"; }else{ // on n'affiche ici que les lignes qui se répètent tant qu'il y a des billets pour ce pays via la boucle pour tableau "foreach" echo"<table ID='planche'>"; while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $visuel_recto = $row['visuel_recto']; $valeur_recto = $row['valeur_recto']; $format = $row['format']; $recto = $row['recto']; $visuel_verso = $row['visuel_verso']; $valeur_verso = $row['valeur_verso']; $format= $row['format']; // on réaffiche le format du billet pour le verso $verso= $row['verso']; echo "<tr>"; echo "<td class='billet'> <img src='$visuel_recto' alt='$valeur_recto' title='$valeur_recto'></img><br>$valeur_recto<br>$format<br>$recto </td>"; echo "<td class='billet'> <img src='$visuel_verso' alt='$valeur_verso' title='$valeur_verso'></img><br>$valeur_verso<br>$format<br>$verso </td>"; echo "</tr>"; } echo"</table>"; } mysql_close(); ?> </body> </html>
Re-bonjour à tous les deux,
Merci, MERCIIIII ! je retrouve d'ailleurs les rows et les while que j'avais utilisé pour d'autres sites dont celui pour les prénoms basques avec un moteur de recherche.
Je ne sais pas pourquoi je me suis focalisé sur le foreach. Et ce que je vois sur ton code c'est que tu a mis le require et la connexion à la table au tout début de la page. C'est comme ça qu'on fait ?
Bon maintenant je vais virer ces types BLOB car vois le résultat que ça donne. Les commentaires au bas de chaque photos, eux, sont corrects.
Je n'ai pas l'impression que ce soit de l'utf8.
Merci beaucoup en tous cas pour votre patience et générosité à tous les deux.
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
Merci, MERCIIIII ! je retrouve d'ailleurs les rows et les while que j'avais utilisé pour d'autres sites dont celui pour les prénoms basques avec un moteur de recherche.
Je ne sais pas pourquoi je me suis focalisé sur le foreach. Et ce que je vois sur ton code c'est que tu a mis le require et la connexion à la table au tout début de la page. C'est comme ça qu'on fait ?
Bon maintenant je vais virer ces types BLOB car vois le résultat que ça donne. Les commentaires au bas de chaque photos, eux, sont corrects.
Je n'ai pas l'impression que ce soit de l'utf8.
Merci beaucoup en tous cas pour votre patience et générosité à tous les deux.
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
mais tu m'a complètement embrouillé là. Je continuerai donc à faire des pages htm, une pour chaque pays.
Merci quand même.
$capitale = '$capitale';
Or, si tu veux faire ce que tu penses, c'est :
$capitale = $capitale;
ou
$capitale = "$capitale";
Mais je ne vois pas le but de l'assignation.