Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour à tous,
mon cas est le suivant: je souhaiterai afficher les informations contenues dans ma bdd, au sein d'un tableau html.
Ainsi, j'ai réalisé le code suivant:
// on sélectionne la base
mysql_select_db('****',$db);
// on crée la requête SQL
$sql = 'SELECT * FROM ****';
// 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_array($req))
{
// on affiche les informations de l'enregistrement en cours
echo '<table>';
echo '<tr>';
echo '<td>Nom</td>';
echo '<td>Prénom</td>';
echo '<td>Téléphone</td>';
echo '<td class="mail">Mail</td>';
echo '<td>Jours</td>';
echo '<td>Horaires</td>';
echo '<td>Id</td>';
echo '<td>Conseiller</td>';
echo '<td>Status</td>';
echo '</tr>';
echo '</table>';
echo '<table class="contenu">';
echo '<tr>';
echo '<td class="contenu">'.$data['nom'].'</td>';
echo '<td class="contenu">'.$data['prenom'].'</td>';
echo '<td class="contenu">'.$data['telephone'].'</td>';
echo '<td class="mail">'.$data['email'].'</td>';
echo '<td class="contenu">'.$data['jours'].'</td>';
echo '<td class="contenu">'.$data['horaires'].'</td>';
echo '<td class="contenu">'.$data['identifiant'].'</td>';
echo '<td class="contenu"><input name="conseiller" type="text" value="'.$data['conseiller'].'" /></input></td>';
echo '<td class="contenu"><input name="status" type="text" value="'.$data['status'].'" /></input></td>';
echo '</tr>';
echo '</table>';
}
// on ferme la connexion à mysql
mysql_close();
?>
Ça fonctionne très bien, seulement, un problème de taille: le script n'affiche que la ligne la plus récente de la bdd (traitement par id), en remplaçant systématiquement la ligne affichée précédemment.
Or, j'aimerai que les lignes soient toutes affichées. Et je ne comprends pas d'où vient le problème.
Si l'un d'entre-vous pouvait m'aider, ce serait une excellente nouvelle
Merci à tous.
Hors ligne
Actuellement ton script n'a rien qui semblerait pouvoir remplacer le tout. Je n'ai pas aperçu de balises non fermées.
Et si tu parlais de la ligne avec les noms des colonnes qui se répète il te faut la placer en dehors de la boucle while pour ne l'afficher qu'une fois.
Jettes un oeil au code html généré tu trouveras peut être ta réponse. Car je suppose que ceci est intégré dans un design qui peut être est trop fixe ce qui empêcherait une partie d'être visible ou autre.
Hors ligne
Merci pour ta réponse xTG.
Je parle bien de la deuxième ligne, et plus, donc des lignes de traitement (récupération des informations de la bdd).
Pour donner un exemple concret, actuellement la table_bdd concernée contient 3 enregistrements, aussi, il devrait apparaître les 3 lignes sur la page. Pourtant, il n'apparait que la dernière (celle ayant l'id la plus récente).
Je vous recopie le code avec le HTML, peut-être y trouverai-vous une réponse. Parce que moi, non
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Accès reservé - Haut Conseil</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<!--[if lte IE 8]> <script type="text/javascript" src="css/roundies.js"> </script><![endif]-->
</head>
<body>
<div id="site">
<img src="images/logo.gif" class="logo"/>
<img src="images/logo.gif" class="logo2"/>
<form id="formulaire" name="formulaire" method="post" action="index.php">
<label>
<input type="submit" name="button" id="button" class="bouton" value="Sauvegarder les modifications" />
</label>
<label>
<input type="submit" name="button" id="button" class="bouton2" value="Actualiser" />
</label>
<?php
// on se connecte à MySQL
$db = mysql_connect('*', '*', '*');
// on sélectionne la base
mysql_select_db('*',$db);
// on crée la requête SQL
$sql = 'SELECT * FROM *';
// 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_array($req))
{
// on affiche les informations de l'enregistrement en cours
echo '<table>';
echo '<tr>';
echo '<td>Nom</td>';
echo '<td>Prénom</td>';
echo '<td>Téléphone</td>';
echo '<td class="mail">Mail</td>';
echo '<td>Jours</td>';
echo '<td>Horaires</td>';
echo '<td>Id</td>';
echo '<td>Conseiller</td>';
echo '<td>Status</td>';
echo '</tr>';
echo '</table>';
echo '<table class="contenu">';
echo '<tr>';
echo '<td class="contenu">'.$data['nom'].'</td>';
echo '<td class="contenu">'.$data['prenom'].'</td>';
echo '<td class="contenu">'.$data['telephone'].'</td>';
echo '<td class="mail">'.$data['email'].'</td>';
echo '<td class="contenu">'.$data['jours'].'</td>';
echo '<td class="contenu">'.$data['horaires'].'</td>';
echo '<td class="contenu">'.$data['identifiant'].'</td>';
echo '<td class="contenu"><input name="conseiller" type="text" value="'.$data['conseiller'].'" /></input></td>';
echo '<td class="contenu"><input name="status" type="text" value="'.$data['status'].'" /></input></td>';
echo '</tr>';
echo '</table>';
}
$conseiller=$_POST['conseiller'];
$status=$_POST['status'];
$sql2="UPDATE acn_partenaires SET conseiller='$conseiller',status='$status' WHERE id='17'";
mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
// on ferme la connexion à mysql
mysql_close();
?>
</form>
</div>
</body>
</html>
Merci à tous.
Dernière modification par Furox (24-03-2010 09:31:39)
Hors ligne
while ($data = $req->fetch())
{
...
}
Ca devrait marcher ?
Hors ligne
S'il utilise la même classe que ce que tu utilises oui, mais là ce n'est pas le cas.
Est-ce réellement le code généré ? Si c'est le cas il faut changer l'extension de ta page en .php pour que le code s'exécute.
Hors ligne
Oui c'est réellement le code généré, et l'extension est déjà en .php
La table_bdd contient 3 lignes d'enregistrements, pourtant, seule la dernière est appelée (id la plus récente).
Je ne trouve absolument aucune explication, et il semblerait que vous non plus
Pour autant, j'imagine qu'il y en a forcément une, que ce n'est pas un "caprice virtuel"
Quelqu'un pour résoudre ce mystère ?
Hors ligne
Je tiens à m'excuser auprès de vous, car c'était non pas lié au PHP, mais au CSS..
Replaçait systématiquement le contenu du tableau sur la même ligne...
Beaucoup de temps, pour pas grand chose. Comme souvent.
Merci à tous.
Hors ligne
Au temps pour moi.
Hors ligne
Pages :: 1