Problème d'include et de boucle while
Fermé
Hevno Quentin
-
11 mai 2017 à 15:14
yg_be Messages postés 23480 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mars 2025 - 12 mai 2017 à 15:21
yg_be Messages postés 23480 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mars 2025 - 12 mai 2017 à 15:21
A voir également:
- Problème d'include et de boucle while
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Huawei s'allume et s'éteint en boucle - Forum Huawei
- Redémarrage en boucle Xiamo mi note 10 - Forum Xiaomi
- Boucle cmd - Forum Programmation
- Redmi note 10 redémarre en boucle et vibre sans s'allumer - Forum Xiaomi
4 réponses
yg_be
Messages postés
23480
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2025
Ambassadeur
1 568
11 mai 2017 à 19:48
11 mai 2017 à 19:48
bonsoir, peux-tu donner les noms de chacun de tes fichiers php, et expliquer en utilisant ces noms?
si je comprends bien, tu as ces fichiers:
- une page en PHP qui affiche des informations lier a un client
- une page d'information clients
- une page en PHP permettant de lister toutes les villes de France dans une liste
- une page concernant le Profil
- une page contenant le listing
- un fichier config/modification_ville.php
- un fichier connexion.php
- une page contenant les champs select
comment ces fichiers sont-ils liés? quel est le nom de la page appelée par le navigateur du client?
si je comprends bien, tu as ces fichiers:
- une page en PHP qui affiche des informations lier a un client
- une page d'information clients
- une page en PHP permettant de lister toutes les villes de France dans une liste
- une page concernant le Profil
- une page contenant le listing
- un fichier config/modification_ville.php
- un fichier connexion.php
- une page contenant les champs select
comment ces fichiers sont-ils liés? quel est le nom de la page appelée par le navigateur du client?
yg_be
Messages postés
23480
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2025
Ambassadeur
1 568
12 mai 2017 à 09:25
12 mai 2017 à 09:25
Je ne pense pas que tu ais donné le nom du fichier "Première page concernant le Profil".
A quoi sert la variable
Peux-tu ajouter dans ce fichier, après l'instruction
les instructions suivantes:
A quoi sert la variable
$ville_client_liste?
Peux-tu ajouter dans ce fichier, après l'instruction
$ville_client_liste= include 'config/modification_ville.php';
les instructions suivantes:
print_r($ville_client_liste); print_r($liste_ville);
La page profil fait appel à la case switch
Dans la page module_recherche.php tu a une ligne :
Si tu regardes bien le lien de l'image
Des variables qui sont dans le fichier config.php du dossier config, donc
$ville_client_liste= include 'config/modification_ville.php';
Fais appelle à la page modification_ville.php qui contient justement les champs select, afin de lister les villes, quand on regarde un peu plus loin dans le code ligne 71 du premier poste on a ceci en concaténation
une variable qui est dans le fichier modification_ville.php et qui contient ça :
<?php
// Connection base de donnée
include 'connexion.php';
//juste après la connexion
mysql_query("SET NAMES 'UTF8'");
//création de la requête SQL:
$sql2= "SELECT * FROM villes_france ORDER BY ville_nom ASC ";
//exécution de notre requête SQL:
$requete2= mysql_query( $sql2, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
while ($result2 = mysql_fetch_object($requete2))
{
$liste_ville= '<option value="'.mysql_real_escape_string(htmlspecialchars($result2->ville_nom)).'">'.mysql_real_escape_string(htmlspecialchars($result2->ville_nom)).'</option>';
}
?>
case 'Modification_Client': echo $meta2_page_accueil; echo $page_client; break;
Dans la page module_recherche.php tu a une ligne :
<td width="100" class="div_resultat_recherche_text_tableau" bgcolor="'.$font2.'" valign="middle"><a href="?page=Modification_Client&numero_client='.$id.'" rel="nofollow noopener noreferrer" target="_blank" title="Modifier le client"><img src="img/modifier.png" alt="img_client" title="img_client" border="0"></a> '.$type.'</td>
Si tu regardes bien le lien de l'image
href="?page=Modification_Client&numero_client "ça point directement sur module de switch et lui en fonction de "Modification_Client" va afficher :
echo $meta2_page_accueil; echo $page_client;
Des variables qui sont dans le fichier config.php du dossier config, donc
$ville_client_liste= include 'config/modification_ville.php';
Fais appelle à la page modification_ville.php qui contient justement les champs select, afin de lister les villes, quand on regarde un peu plus loin dans le code ligne 71 du premier poste on a ceci en concaténation
'.$liste_ville.'
une variable qui est dans le fichier modification_ville.php et qui contient ça :
<?php
// Connection base de donnée
include 'connexion.php';
//juste après la connexion
mysql_query("SET NAMES 'UTF8'");
//création de la requête SQL:
$sql2= "SELECT * FROM villes_france ORDER BY ville_nom ASC ";
//exécution de notre requête SQL:
$requete2= mysql_query( $sql2, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
while ($result2 = mysql_fetch_object($requete2))
{
$liste_ville= '<option value="'.mysql_real_escape_string(htmlspecialchars($result2->ville_nom)).'">'.mysql_real_escape_string(htmlspecialchars($result2->ville_nom)).'</option>';
}
?>
Et c'est justement tout le problème
pour chaque ville.
'.$liste_ville.'inclut la page modification_ville.php avec la liste des ville sous forme de sélection, Mais ! Au lieu de m'afficher toute les villes comme il devrait le faire je n'ai que la première ville qui s'affiche, celle de la table, c'est pour ça que j'ai mis while afin répétée:
$liste_ville= '<option value="'.mysql_real_escape_string(htmlspecialchars($result2->ville_nom)).'">'.mysql_real_escape_string(htmlspecialchars($result2->ville_nom)).'</option>';
pour chaque ville.
yg_be
Messages postés
23480
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2025
1 568
>
Hevno Quentin
12 mai 2017 à 10:27
12 mai 2017 à 10:27
As-tu compris ma question "A quoi sert la variable $ville_client_liste?"? Tu n'y a pas répondu.
Pourquoi as-tu écrit
et pas
As-tu écrit ce code php?
As-tu appliqué ma suggestion:
Peux-tu ajouter dans ce fichier, après l'instruction
$ville_client_liste= include 'config/modification_ville.php';
les instructions suivantes:
print_r($ville_client_liste);
print_r($liste_ville);
Pourquoi as-tu écrit
$ville_client_liste= include 'config/modification_ville.php';
et pas
include 'config/modification_ville.php';
As-tu écrit ce code php?
As-tu appliqué ma suggestion:
Peux-tu ajouter dans ce fichier, après l'instruction
$ville_client_liste= include 'config/modification_ville.php';
les instructions suivantes:
print_r($ville_client_liste);
print_r($liste_ville);
yg_be
Messages postés
23480
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2025
1 568
>
Hevno Quentin
12 mai 2017 à 10:30
12 mai 2017 à 10:30
Peux-tu donner un exemple précis de ce que tu voudrais avoir dans $liste_ville quand tu as deux villes?
Hevno Quentin
>
yg_be
Messages postés
23480
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2025
12 mai 2017 à 10:48
12 mai 2017 à 10:48
Oui c'est moi qui est écrit entièrement ce code php
yg_be
Messages postés
23480
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2025
Ambassadeur
1 568
Modifié le 12 mai 2017 à 09:31
Modifié le 12 mai 2017 à 09:31
Je ne comprends pas bien ta boucle while dans le fichier Modification_ville.php:
A chaque itération, la valeur précédente de $liste_ville est remplacée par une nouvelle valeur. Est-ce vraiment ce que tu veux obtenir?
while ($result2 = mysql_fetch_object($requete2)) { $liste_ville= '<option value="'.mysql_real_escape_string(htmlspecialchars($result2->ville_nom)).'">'.mysql_real_escape_string(htmlspecialchars($result2->ville_nom)).'</option>'; // echo $liste_ville; }
A chaque itération, la valeur précédente de $liste_ville est remplacée par une nouvelle valeur. Est-ce vraiment ce que tu veux obtenir?
Non je voudrais que
<option value="valeur1">Valeur 1</option>
<option value="valeur2" selected>Valeur 2</option>
<option value="valeur3">Valeur 3</option>
Chaque option serait égale à une ville.
$liste_villeliste toute les villes présente de la table ville_france, mais pas dans un seul champs option mais plusieurs, exemple :
<option value="valeur1">Valeur 1</option>
<option value="valeur2" selected>Valeur 2</option>
<option value="valeur3">Valeur 3</option>
Chaque option serait égale à une ville.
yg_be
Messages postés
23480
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2025
1 568
>
Hevno Quentin
12 mai 2017 à 10:38
12 mai 2017 à 10:38
Je pense qu'il suffit de faire ainsi:
et de mettre
qu'en penses-tu?
$liste_ville = $liste_ville. '<option value="'.mysql_real_escape_string(htmlspecialchars($result2->ville_nom)).'">'.mysql_real_escape_string(htmlspecialchars($result2->ville_nom)).'</option>';
et de mettre
$liste_ville = '';avant le while.
qu'en penses-tu?
Hevno Quentin
>
yg_be
Messages postés
23480
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2025
Modifié le 12 mai 2017 à 11:48
Modifié le 12 mai 2017 à 11:48
J'ai testé différente manière de le faire ça me ramène toujours au même stade, une seule ville apparaît dans le select alors que si je mets le code suivant en modifiant de cette façon sur une page vierge par exemple :
Et bien là toutes les villes apparaissent, donc je ne comprends pas pourquoi d'une page à l'autre ça ne fonctionne pas, j'ai donc modifié un peu dans le fichier config.php pour la variable $page_client, j'ai fait comme ceci ce qui me parait mieux pour cette partie du code :
En sachant que
Ensuite du cotée modification_ville.php :
J'ai aussi fait ce que tu m’as dit yg_be mais ça revient à la même chose.
<?php // Connection base de donnée include 'connexion.php'; //juste après la connexion mysql_query("SET NAMES 'UTF8'"); //création de la requête SQL: $sql2= "SELECT * FROM villes_france ORDER BY ville_nom ASC "; //exécution de notre requête SQL: $requete2= mysql_query( $sql2, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" ); while ($result2 = mysql_fetch_object($requete2)) { // $liste_ville= '<option value="'.mysql_real_escape_string(htmlspecialchars($result2->ville_nom)).'">'.mysql_real_escape_string(htmlspecialchars($result2->ville_nom)).'</option>'; $liste_ville= mysql_real_escape_string(htmlspecialchars($result2->ville_nom)); echo $liste_ville; } ?>
Et bien là toutes les villes apparaissent, donc je ne comprends pas pourquoi d'une page à l'autre ça ne fonctionne pas, j'ai donc modifié un peu dans le fichier config.php pour la variable $page_client, j'ai fait comme ceci ce qui me parait mieux pour cette partie du code :
<label>Localisation ville :</label> <br/> <select name="carlist" form="carform"> <option value="">'.mysql_real_escape_string(htmlspecialchars($result->ville)).'</option> '.$ville_client_liste.' '.$liste_ville.' </select> <br/> <br/>
En sachant que
$ville_client_listeest :
$ville_client_liste= include 'config/modification_ville.php';
Ensuite du cotée modification_ville.php :
<?php // Connection base de donnée include 'connexion.php'; //juste après la connexion mysql_query("SET NAMES 'UTF8'"); //création de la requête SQL: $sql2= "SELECT * FROM villes_france ORDER BY ville_nom ASC "; //exécution de notre requête SQL: $requete2= mysql_query( $sql2, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" ); while ($result2 = mysql_fetch_object($requete2)) { $liste_ville= '<option value="'.mysql_real_escape_string(htmlspecialchars($result2->ville_nom)).'">'.mysql_real_escape_string(htmlspecialchars($result2->ville_nom)).'</option>'; } ?>
J'ai aussi fait ce que tu m’as dit yg_be mais ça revient à la même chose.
Bon j'ai tenter ceci aussi
ça c'est le contenu de la variable $page_client déclarée dans le fichier config.php, nous ce qui nous intéresse çest ça :
Et le résultat est le suivant :
https://img15.hostingpics.net/pics/402034test34.png
Donc cela s'affiche bien mais normalement ça devrais lister tout !
<label>Localisation ville :</label> <br/> <select name="carlist" form="carform"> <option value="">'.mysql_real_escape_string(htmlspecialchars($result->ville)).'</option> </select> '.$ville_client_liste.' '.$liste_ville.' <br/> <br/>
ça c'est le contenu de la variable $page_client déclarée dans le fichier config.php, nous ce qui nous intéresse çest ça :
<label>Localisation ville :</label> <br/> <select name="carlist" form="carform"> <option value="">'.mysql_real_escape_string(htmlspecialchars($result->ville)).'</option> </select> '.$ville_client_liste.' '.$liste_ville.' <br/> <br/>
Et le résultat est le suivant :
https://img15.hostingpics.net/pics/402034test34.png
Donc cela s'affiche bien mais normalement ça devrais lister tout !
yg_be
Messages postés
23480
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2025
Ambassadeur
1 568
12 mai 2017 à 15:21
12 mai 2017 à 15:21
quelques suggestions:
- à chaque fois que tu mentionnes un fichier ou que tu montres le contenu d'un fichier, donne le nom du fichier.
- ne mélange pas le concept de fichier et le concept de page
- ne mélange pas le concept de déclaration et le concept d'assignation
- explique-nous pourquoi tu fais ce travail, ce que tu connais en programmation, ce que tu as déjà réalisé (cela nous aidera à mieux communiquer avec toi)
- quand nous te demandons d'ajouter des instructions echo ou print_r, c'est dans le but de connaitre ce qui sera affiché pas ces instruction. merci alors de donner précisément ce que cela affiche.
- à chaque fois que tu mentionnes un fichier ou que tu montres le contenu d'un fichier, donne le nom du fichier.
- ne mélange pas le concept de fichier et le concept de page
- ne mélange pas le concept de déclaration et le concept d'assignation
- explique-nous pourquoi tu fais ce travail, ce que tu connais en programmation, ce que tu as déjà réalisé (cela nous aidera à mieux communiquer avec toi)
- quand nous te demandons d'ajouter des instructions echo ou print_r, c'est dans le but de connaitre ce qui sera affiché pas ces instruction. merci alors de donner précisément ce que cela affiche.
11 mai 2017 à 22:50
Expliquer en détail, tous les fichiers et le site serais beaucoup trop long mais je vais essayer, il y a une page principale, cette page principale (index.php) est un moteur de recherche, quand on tape un nom le résultat s'affiche en temps réel et plus on augmente les lettres afin de faire un mot plus le résultat diminue, ce peaufine.
En fonction de ça, cela m'affiche ma liste de client, sous forme de tableau, chaque ligne correspond à un client avec un petit bouton qui permet éditer ce client, en fonction de son id , cela m'affiche les données de celui-ci dans la page index.php?page=Modification_Client
Oui, car tout le site ne comporte pas vraiment de page physique sauf l'index et les pages annexes de connexion à la base de données, car je change de page avec switch CASE :
Comme ceci :
Chaque variable est déclarée dans le fichier config.php et a également une valeur, d’ailleurs on peut le constater dans le code de mon premier message
Donc en somme le site ne compte qu'une seule page, après c'est le switch qui joue son rôle en jonglent de variable en variables.
Dans le dossier config on a ceci :
config.php (regroupe toutes les variables avec le contenue de chaque page)
connect.php qui comporte :
$Config_host = 'localhost';
$Config_user = 'user';
$Config_password = '***';
$Config_DBname = 'wp_client';
connection.php
Modification_ville.php
module_recherche.php
Modifié le 12 mai 2017 à 09:13
un site est un ensemble de fichiers. l'utilisateur du site voit des pages html. essaie d'expliquer ton problème sans mélanger les fichiers et les pages.
11 mai 2017 à 23:02
https://img15.hostingpics.net/pics/518323site.png