Page 1 sur 2

Page1, page2, page3, etc...

Posté : 13 mars 2006, 11:38
par alexdarcy
Bonjour j'ai crée une table voici sa structure :

Structure de la table `agences_tbl`
#

CREATE TABLE agences_tbl (
nom varchar(255) NOT NULL default '',
adresse varchar(255) NOT NULL default '',
telephone varchar(255) NOT NULL default '',
fax varchar(255) NOT NULL default '',
mail varchar(255) NOT NULL default '',
agent1 varchar(255) NOT NULL default '',
mail1 varchar(255) NOT NULL default '',
agent2 varchar(255) NOT NULL default '',
mail2 varchar(255) NOT NULL default '',
agent3 varchar(255) NOT NULL default '',
mail3 varchar(255) NOT NULL default '',
ID int(11) NOT NULL auto_increment,
PRIMARY KEY (nouv_id)
) TYPE=MyISAM;


Ce qui donne pour un premier enregistrement
Agence A
34, rue Vivienne 75002 Paris
Tél. 01 44 88 20
Fax. 88 01 44 88 20 89
[email protected]
Monita DERRIEUX
[email protected]
Mikaël CARAËS
non communiqué
Jean-Luc DARIER
non communiqué

Ce premier enregistrement s'affiche sur une page. Bien.
Mais comment faire pour que le deuxième enregitrsment s'affiche sur la page 2, et ainsi de suite..

Voici le code :
<?php 
// on se connecte à MySQL 
$db = mysql_connect('localhost', 'agence', 'xxxxx'); 

// on sélectionne la base 
mysql_select_db('agences',$db); 

// on crée la requête SQL 
$sql = 'SELECT ID,nom,adresse,telephone,fax,mail,agent1,mail1,agent2,mail2,agent3,mail3 FROM agences_tbl'; 

// on envoie la requête 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

// on fait une boucle qui va faire un tour pour chaque enregistrement 
while($data = mysql_fetch_assoc($req)) 
    { 
    // on affiche les informations de l'enregistrement en cours 
    echo '<b>'.$data['nom'].'<br>'.$data['adresse'].'<br>';'</b>';  echo ' Tel : '.$data['telephone'].'<br>'; echo ' Fax : '.$data['fax'].'<br>';'</b>'; 
    echo '<b> <i>AGENTS : <br>'.$data['agent1'].'<br>' .$data['mail1'].'<br>'.$data['agent2'].'<br>'.$data['mail2'].'<br>'.$data['agent3'].'<br>'.$data['mail3'].'<br>'; 
    } 

// on ferme la connexion à mysql 
mysql_close(); 
?> 
Que manque t-il dans ce code ?
Merci
Est-ce les sessions ? "agences.php?page=" ????

Alex :cry:

Posté : 13 mars 2006, 11:51
par Cyrano
As-tu regardé le tuto sur l'affichage page par page dans la FAQ ?

Posté : 13 mars 2006, 11:55
par alexdarcy
As-tu regardé le tuto sur l'affichage page par page dans la FAQ ?
Oui Cyra mais ce n'est pas ça que je recherche !!!

:cry:

Posté : 13 mars 2006, 12:26
par Cyrano
Quelle différence ? Le principe général est le même: tu dois afficher en fonction d'un numéro d'article qui peut être indépendant du nombre réel d'article : donc ton codage au niveau des requête devra être adapté, mais au final, c'est exactement le même principe.

Posté : 13 mars 2006, 12:47
par alexdarcy
Quelle différence ? Le principe général est le même: tu dois afficher en fonction d'un numéro d'article qui peut être indépendant du nombre réel d'article : donc ton codage au niveau des requête devra être adapté, mais au final, c'est exactement le même principe.
Oui mais il n'y a pas d'article, c'est en fait un listing d'agences, une fois une agence enregistrée elle ne bouge plus ...
Ce que je voulais c'est afficher les agences en fonction de leur propre ID. Un peu comme ça :
http://www.blabla.com/agence.php?ID=1
C'est pas possible ?
:cry:

Posté : 13 mars 2006, 14:22
par iclo
Le principe est le même, à partir d'un id passé dans l'url, on affiche les information d'un tuple de la table, que ce soit un article, une agence, etc

Posté : 14 mars 2006, 18:09
par alexdarcy
Le principe est le même, à partir d'un id passé dans l'url, on affiche les information d'un tuple de la table, que ce soit un article, une agence, etc
Oui justement c'est bien ça le probleme. Mais quand je frappe l'adresse :
http://www.xxxxxxxx.com/agences.php?ID=1
et ensuite la même mais avec l'ID=2
voici ce que je reçois à l'écran :
http://www.xxxxxxxx.com/agences.php?ID=1

Chaque agence devrait être affichée sur une page.
J'y comprends rien :oops:
:cry:

ps : "d'un tuple de la table" ?? " tuple " ??

Posté : 15 mars 2006, 01:20
par alexdarcy
Merci de bien vouloir m'aider concretement dans mon petit probleme.

:cry:

Posté : 15 mars 2006, 11:33
par Cyrano
Si tu as toujours la même page quel que soit l'identifiant passé en url, c'est à priori parce que tu ne récupères pas cet identifiant correctement pour effectuer la requête appropriée

Posté : 15 mars 2006, 16:23
par alexdarcy
Si tu as toujours la même page quel que soit l'identifiant passé en url, c'est à priori parce que tu ne récupères pas cet identifiant correctement pour effectuer la requête appropriée
Ben oui! ça je m'en doute bien ! Mais comment le récupérer correctement ?

Merci
:oops:

Posté : 15 mars 2006, 16:32
par Cyrano
Si tu envoies une url avec un truc du genre pagedetail.php?id=123 alors tu récupères avec:
$id = isset($_GET['id']) ? $_GET['id'] : 1;
Ce qui signifie en clair, que si un id est envoyé, on le récupère pour l'affecter à une variable $id, sinon, on affecte 1 par défaut : ça présente toutefois un risque si jamais l'agence correspondant à l'id 1 disparait, mais tu peux trouver une astuce avec un id par défaut qui ouvrirait une page par défaut invitant à sélectionner une agence existant dans la liste par exemple.

Posté : 15 mars 2006, 16:56
par alexdarcy
Si tu envoies une url avec un truc du genre pagedetail.php?id=123 alors tu récupères avec:
$id = isset($_GET['id']) ? $_GET['id'] : 1;
Ce qui signifie en clair, que si un id est envoyé, on le récupère pour l'affecter à une variable $id, sinon, on affecte 1 par défaut : ça présente toutefois un risque si jamais l'agence correspondant à l'id 1 disparait, mais tu peux trouver une astuce avec un id par défaut qui ouvrirait une page par défaut invitant à sélectionner une agence existant dans la liste par exemple.
merci.
Je mets le code ou ?
$id = isset($_GET['id']) ? $_GET['id'] : 1;
??
<?php 
// on se connecte à MySQL 
$db = mysql_connect('localhost', 'agence', 'xxxxx'); 

// on sélectionne la base 
mysql_select_db('agences',$db); 

$id = isset($_GET['ID']) ? $_GET['ID'] : 1;

// on crée la requête SQL 
$sql = 'SELECT ID,nom,adresse,telephone,fax,mail,agent1,mail1,agent2,mail2,agent3,mail3 FROM agences_tbl'; 

// on envoie la requête 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

// on fait une boucle qui va faire un tour pour chaque enregistrement 
while($data = mysql_fetch_assoc($req)) 
    { 
    // on affiche les informations de l'enregistrement en cours 
    echo '<b>'.$data['nom'].'<br>'.$data['adresse'].'<br>';'</b>';  echo ' Tel : '.$data['telephone'].'<br>'; echo ' Fax : '.$data['fax'].'<br>';'</b>'; 
    echo '<b> <i>AGENTS : <br>'.$data['agent1'].'<br>' .$data['mail1'].'<br>'.$data['agent2'].'<br>'.$data['mail2'].'<br>'.$data['agent3'].'<br>'.$data['mail3'].'<br>'; 
    } 

// on ferme la connexion à mysql 
mysql_close(); 
?> 
[/php]

Posté : 15 mars 2006, 16:58
par Cyrano
Sois logique trente seconde, je ne te donnerai pas la réponse tout de suite : en programmation, il faut :
  1. de la logique;
  2. de la logique;
  3. de la logique;
  4. de la logique;
  5. et encore de la logique
ça devrait te sauter au visage comme réponse.

Posté : 15 mars 2006, 17:35
par alexdarcy
Sois logique trente seconde, je ne te donnerai pas la réponse tout de suite : en programmation, il faut :
  1. de la logique;
  2. de la logique;
  3. de la logique;
  4. de la logique;
  5. et encore de la logique
ça devrait te sauter au visage comme réponse.
mummm ! j'ai bo chercher je n trouve po :oops:

Posté : 15 mars 2006, 18:24
par Cyrano
Bon, quelques indices alors : à quoi sert d'envoyer ce paramètre, et où ?