Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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 14/04/2011, 10h53   #1
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Par défaut Creer plusieurs pages php

Bonjour le forum !
D'abord un énorme merci à vous tous, car je progresse beaucoup avec vos conseils.
Je cherche cette fois çi a créer plusieurs pages php avec des variables.
Je m'explique, j'ai une base sql avec une table contenant une colonne "ID" allant de 1 à 100.
Je voudrais donc créer autant de pages web qu'il y a d'"ID", c'est à dire jusque 100.
La page créé doit etre sous cette forme : toto-1.php ; toto-2.php en d'autres termes toto-[id].php et la page contient simplement "ceci est la page numéro X" ou X étant mon ID

Je m'occupe donc dans un premier temps de me connecter à ma base et de récupérer les informations :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
	$hostname = "localhost";
	$user     = "root";
	$password = "";
	$base = "test1";
 
	$conn = mysqli_connect($hostname, $user, $password) or exit('connexion impossible');
	mysqli_select_db($conn,$base);
 
$sql2 = "SELECT ID FROM jeux_video";
$resu2 = mysqli_query ($conn,$sql2);
$infos2 = mysqli_fetch_array ($resu2);
$id = $infos2['ID'];
?>
Donc la connexion fonctionne, mais ensuite quelle fonction me permettrais si cela est possible de réaliser la "boucle" ?
Je ne sais pas trop dans quelle direction chercher.
Merci de votre aide :-)
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 11h02   #2
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 
	$hostname = "localhost";
	$user     = "root";
	$password = "";
	$base = "test1";
 
	$conn = mysqli_connect($hostname, $user, $password) or exit('connexion impossible');
	mysqli_select_db($conn,$base);
 
$sql2 = "SELECT ID FROM jeux_video";
$resu2 = mysqli_query ($conn,$sql2);
/*
$infos2 = mysqli_fetch_assoc ($resu2);//assoc plutot que array. Je t'expliquerai après
$id = $infos2['ID'];
*/
while($infos2 = mysqli_fetch_assoc($resu2)){
   echo $infos2['ID'].'<br />';
}
?>
Assoc plutot que Array parce que array renvoie le nom de la colonne et son id.

Par exemple: la colonne "ID" renverra "0" et "ID" si tu fais array. Elle renverra "ID" et c'est tout si tu utilises assoc. C'est un gain de performance
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/04/2011, 11h31   #3
Membre Expert
 
Avatar de Bebel
 
Homme David B.
Développeur informatique
Inscription : avril 2003
Messages : 742
Détails du profil
Informations personnelles :
Nom : Homme David B.
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : avril 2003
Messages : 742
Points : 1 085
Points : 1 085
Sinon en règle générale, tu as souvent des informations utiles dans les commentaires de la fonction.
Comme celui-ci par exemple
__________________
Tout énigme a une solution ! Tout est question de discipline !
Bebel est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/04/2011, 13h34   #4
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Bonjour,
Un grand merci, votre code fonctionne très bien mais ne correspond pas à l'objectif cherché, j'ai du mal m'exprimer.
Avec ce code, j'obtiens sur une meme page :
1
2
3 etc.
Sauf que je voudrais ( si cela existe ) qu'une page toto-1.php soir créée et qu'elle affiche 1 ; une page toto-2.php qui affiche 2 ; en gros une page toto-[id].php qui affiche [id] correspondant.
Une sorte de boucle qui crée une page à chaque nouvelle valeur de [id].
Mais je ne sais pas si cela existe et quelle fonction utilisée en faite :-)
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 13h40   #5
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Citation:
Sauf que je voudrais ( si cela existe ) qu'une page toto-1.php soir créée et qu'elle affiche 1 ; une page toto-2.php qui affiche 2 ; en gros une page toto-[id].php qui affiche [id] correspondant.
C'est contraire au principe des site dynamique. Tu ne créer pas plusieurs pages mais une seule qui s'adapte en fonction des données à afficher !

tu devrais donc avoir une url du genre http://site.com/toto.php?id=2 avec toto.php qui charge le bon contenu en fonction du paramètre passé.
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 13h51   #6
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Ah d'accord je comprend mieux le principe.
Je passe le parametre ID dans mon url.
Cela ne pose pas de problème pour le référencement d'un site ? Les pages sont bien prises en compte ?
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 13h54   #7
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Pour faire ce que tu demandes il faut faire:

toto.php?id=1

et faire ce qu'on appelle de l'url rewriting qui va rediriger la page "toto-1.php" vers toto.php?id=1.

Renseigne toi sur l'url rewriting ça se passe dans le fichier ".htaccess"
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 13h59   #8
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Ok je comprends de mieux en mieux :-)
Par contre, comment avoir avoir toto.php?id=1 ?
Avec ceci ? :
Code :
$pageurl = $_GET['ID'];
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 14h07   #9
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Exactement.

http://localhost/site/toto.php?id=2

pour récupérer id c'est
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 14h25   #10
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Ok je vais essayé cela :-)
Un grand merci.
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 17h41   #11
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Re bonjour,
J'essaye de me dépatouiller avec la fonction get mais j'ai du mal à l'utiliser.
J'utilise donc toujours le meme code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
	$hostname = "localhost";
	$user     = "root";
	$password = "";
	$base = "test1";
 
	$conn = mysqli_connect($hostname, $user, $password) or exit('connexion impossible');
	mysqli_select_db($conn,$base);
 
$sql2 = "SELECT ID FROM jeux_video";
$resu2 = mysqli_query ($conn,$sql2);
/*
$infos2 = mysqli_fetch_assoc ($resu2);//assoc plutot que array. Je t'expliquerai après
$id = $infos2['ID'];
$id2 = $_GET['id']; // la je suis pas sur oO
*/
while($infos2 = mysqli_fetch_assoc($resu2)){
   echo $infos2['ID'].'<br />';
}
?>
Mais du coup je ne sais pas trop comment exploiter le geturl.
Quand je saisie toto.php?id=2 j'ai la meme page que toto.php

Ou alors c'est l'inverse oO Je dois récupérer le parametre de mon url et l'insérer dans ma page correspondante ?
AU final j'ai donc 1 seul page toto.php décliné en autant de page qu'il existe d'iD ?
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 18h06   #12
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Après rebidouillage j'ai ceci comme code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 
	$hostname = "localhost";
	$user     = "root";
	$password = "";
	$base = "test1";
 
	$conn = mysqli_connect($hostname, $user, $password) or exit('connexion impossible');
	mysqli_select_db($conn,$base);
 
$sql2 = "SELECT ID FROM jeux_video";
$resu2 = mysqli_query ($conn,$sql2);
 
$infos2 = mysqli_fetch_assoc ($resu2);//assoc plutot que array. Je t'expliquerai après
$id = $infos2['ID'];
$id2 = $_GET['id'];
 
 
?>
<p>bla bla bla <?php  echo $id2; ?> </p>
Cela fonctionne presque.
Quand je suis toto?id=2 ; toto?id=3 etc j'obtiens bien l'information voulu.
Le soucis viens de la page toto.php qui me donne ceci :Undefined index: id in C:\wamp....
Et le deuxième soucis vient du fait que si je n'ai que 100 valeur dans mon tableau, mais que je tape toto?id=1000 j'obtient quand meme un affichae de la page oO
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 18h34   #13
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Pour toto.php il faut d'abord faire un:

Code :
1
2
3
4
5
 
if(filter_has_var(INPUT_GET, 'id')){
//ici tu mets le code pour afficher la page. 
//si l'id est défini dans l'url on affiche la page, sinon on ne fait rien
}
Mais ton code ne veut rien dire alors prends exemple la dessus:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<?php
 
	$hostname = "localhost";
	$user     = "root";
	$password = "";
	$base = "test1";
 
	$conn = mysqli_connect($hostname, $user, $password) or exit('connexion impossible');
	mysqli_select_db($conn,$base);
             if(filter_has_var(INPUT_GET, 'id')){
                $id = (int)$_GET['id'];
                $resu = mysqli_query($conn, 'SELECT * FROM jeux_video WHERE id='.$id);
                $infos = mysqli_fetch_assoc($resu);
                echo $infos[''];//ici tu mets le champ de la table que tu veux
             }else{
                echo 'pas d\'id en parametre...';
             }
?>
En gros.
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/04/2011, 18h46   #14
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Effectivement j'étais à l'ouest
En tous cas votre code fonctionne à merveille
Un méga big up à vous :-)
yuyu599 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 +2. Il est actuellement 01h05.


 
 
 
 
Partenaires

Hébergement Web