Page 1 sur 1

affichage des elements de ma base

Posté : 26 déc. 2005, 16:55
par micka
voila je souhaite faire afficher les elements de ma base qui ont un statu particulié.
mais je ne sais le faire uniquement sur un seul element.
hor il faudrai que pour chaque element trouvé une ligne suplementaire soit affichée.
1 statu trouvé une ligne à l'affichage.
5 status trouvés 5 lignes à l'affichage.
Merci

<form name="loulou.php" action="#" method="POST">
$connexion = mysql_connect('***','***','***');// Connexion à la base de donnée
mysql_select_db('***',$connexion)  or die('Erreur de selection '.mysql_error()); 
$requete = "SELECT * FROM detail LEFT JOIN staus on staus.id_status = detail.id_status  WHERE detail.id_status = '".$_POST['etat_portables']."' ";
$resultat = mysql_db_query('base_portable',$requete,$connexion) or die('Erreur de selection '.mysql_error()); // execution de la requete
mysql_close($connexion);// Fermeture de la connexion


<input type="text" name="num_incident" value="<? echo mysql_result($resultat, 0, 'id_detail'); ?>">
<input type="text" name="matricule" value="<? echo mysql_result($resultat, 0, 'matricule'); ?>">
<input type="text" name="portable" value="<? echo mysql_result($resultat, 0, 'num_portable'); ?>">
<input type="text" name="date" value="<? echo mysql_result($resultat, 0, 'date'); ?>">
<input type="text" name="status" value="<? echo mysql_result($resultat, 0, 'detail.id_status'); ?>">

</form>

Posté : 26 déc. 2005, 17:22
par mere-teresa
La boucle est la solution.
Fais une recherche sur ce forum avec boucle et base de données

Posté : 26 déc. 2005, 17:50
par micka
Oki doki

Posté : 26 déc. 2005, 18:09
par micka
je viens de tester avec un while($row = msql_num_rows($resultat)).
mais j'ai un message d'erreur Fatal error: Call to undefined function: msql_num_rows() ?

Posté : 26 déc. 2005, 18:49
par pjl
si tu regardais de près le nom de ta fonction qui pose PB

Posté : 27 déc. 2005, 12:00
par micka
apres modification la boucle tourne sans fin (time out).
comment la faire stoper sur le drenier enregistrement ?
$connexion = mysql_connect('localhost','root','');// Connexion à la base de donnée
mysql_select_db('base_portable',$connexion)  or die('Erreur de selection '.mysql_error()); 
$requete = "SELECT * FROM detail LEFT JOIN staus on staus.id_status = detail.id_status  WHERE detail.id_status = '".$_POST['etat_portables']."' ";
$resultat = mysql_db_query('base_portable',$requete,$connexion) or die('Erreur de selection '.mysql_error()); // execution de la requete
mysql_close($connexion);// Fermeture de la connexion

while($rows = mysql_num_rows($resultat))
{
$id_detail = mysql_result($resultat, 0, 'id_detail');
$matricule = mysql_result($resultat, 0, 'matricule');
$num_portable = mysql_result($resultat, 0, 'num_portable');
$date = mysql_result($resultat, 0, 'date');
$status = mysql_result($resultat, 0, 'detail.id_status');
}
<? echo $id_detail;?>
<? echo $matricule;?>
<? echo $num_portable;?>
<? echo $date;?>
<? echo $status;?>

Posté : 27 déc. 2005, 12:15
par zeus
Tu aurais passé plus de temps dans l'aide, tu aurais vu que la fonction mysql_num_rows retourne un tableau contenant les valeurs d'un enregistrement. Et donc :
- qu'il faut utiliser ce que te retourne cette fonction pour avoir les valeurs extraites
- que mysql_result(xxx , 0, xxx) te retournera toujours une valeur de la 1ere ligne
- que si tu fait ton affichage en dehors de la boucle, tu n'auras que la dernière ligne d'affichée

Essaye ce code et essaye de comprendre ce qui a changé
<?php
$connexion = mysql_connect('localhost','root','');// Connexion à la base de donnée
mysql_select_db('base_portable',$connexion)  or die('Erreur de selection '.mysql_error());
$requete = "SELECT * FROM detail LEFT JOIN staus on staus.id_status = detail.id_status  WHERE detail.id_status = '".$_POST['etat_portables']."' ";
$resultat = mysql_db_query('base_portable',$requete,$connexion) or die('Erreur de selection '.mysql_error()); // execution de la requete
mysql_close($connexion);// Fermeture de la connexion

while($rows = mysql_num_rows($resultat))
{
	$id_detail = $rows['id_detail'];
	$matricule = $rows['matricule'];
	$num_portable = $rows['num_portable'];
	$date = $rows['date'];
	$status = $rows['detail.id_status'];
	
	echo $id_detail."|".$matricule."|".$num_portable."|".$date."|".$status."<br />\n";
}
?>

Posté : 27 déc. 2005, 13:13
par micka
as tu volontairement glissé une erreur ?

Posté : 27 déc. 2005, 13:29
par Truc
as tu volontairement glissé une erreur ?
pourquoi ? que dit l'erreur ?

as tu regardé la doc pour mysql_num_rows() ?!

tu y veras que c'est pas vraiment cette fonction qu'il faut utiliser mais mysql_fetch_row()
et dans ce cas faire le nécessaire pour les indices du tableau renoyé par cette fonction :wink:

Posté : 27 déc. 2005, 14:44
par zeus
as tu volontairement glissé une erreur ?
Non, c'est que je me suis mélangé les pinceaux entre mysql_fetch_array et mysql_num_rows

Posté : 27 déc. 2005, 14:49
par micka
merci je regarde les docs fetch_row et fetch array mais deja ca ne boucle plus à l'ifini.
merci les gars

Posté : 27 déc. 2005, 16:03
par micka
mon souci et resolo merci j'ai pigé le rol de fetch_array et de num_rows Merci.
[RESOLU]