pb while dans tableau - Débutant

pb while dans tableau - Débutant - PHP - Programmation

Marsh Posté le 27-04-2005 à 09:17:28    

Je voudrais afficher les données de ma base dans les colonnes de mon tableau à 8 colonnes avec un boucle pour afficher toutes les lignes de ma base
 
Voila mon script
 
<?php
mysql_select_db("pi-vaines" );
$query = "select * from pi";
$result = mysql_query($query);
while ($data = mysql_fetch_array($result))
{<tr>
<td align=center> <?php echo $data['site_inter']; ?></td>
<td align=center> <?php echo $data['pi_evitables']; ?></td>
<td align=center> <?php echo $data['pi_vaines']; ?></td>
<td align=center> <?php echo $data['commentaires_anomalie']; ?></td>
<td align=center> <?php echo $data['initiales_agent']; ?></td>
<td align=center> <?php echo $data['site_agent']; ?></td>
<td align=center> <?php echo $data['service_agent']; ?></td>
<td align=center> <?php echo $data['ref_client']; ?></td>
</tr>
}
?>
 
Mais j'ai le premier </td> qui s'affiche en écriture sur ma page
et la première instruction echo $data['site_inter'] ne s'affiche pas, ca fait que toute les colonnes sont décalées vers la gauche et donc il me manque la dernière colone
 

Reply

Marsh Posté le 27-04-2005 à 09:17:28   

Reply

Marsh Posté le 27-04-2005 à 09:26:27    

machineths a écrit :

Je voudrais afficher les données de ma base dans les colonnes de mon tableau à 8 colonnes avec un boucle pour afficher toutes les lignes de ma base
 
Voila mon script
 
<?php
mysql_select_db("pi-vaines" );
$query = "select * from pi";
$result = mysql_query($query);
while ($data = mysql_fetch_array($result))
{<tr>
<td align=center> <?php echo $data['site_inter']; ?></td>
<td align=center> <?php echo $data['pi_evitables']; ?></td>
<td align=center> <?php echo $data['pi_vaines']; ?></td>
<td align=center> <?php echo $data['commentaires_anomalie']; ?></td>
<td align=center> <?php echo $data['initiales_agent']; ?></td>
<td align=center> <?php echo $data['site_agent']; ?></td>
<td align=center> <?php echo $data['service_agent']; ?></td>
<td align=center> <?php echo $data['ref_client']; ?></td>
</tr>
}
?>
 
Mais j'ai le premier </td> qui s'affiche en écriture sur ma page
et la première instruction echo $data['site_inter'] ne s'affiche pas, ca fait que toute les colonnes sont décalées vers la gauche et donc il me manque la dernière colone


 
T'as pas l'impression de mettre du html directement dans le php ?
 

Citation :


while ($data = mysql_fetch_array($result))
{<tr>
<td align=center> <?php echo $data['site_inter']; ?></td>


 
Tu n'as pas fermé ta première balise php ...

Reply

Marsh Posté le 27-04-2005 à 09:29:09    

- Tu ouvres ta balise <table> où dans ton code ?
 
- Avant le while, écrit ça :
 

Code :
  1. echo "<table>";


 
- Après le while et avant le "?>", écrit ça :
 

Code :
  1. echo "</table>";


 
- Dans ton while, je trouverai plus clair de mettre cela :
 

Code :
  1. While ($data = mysql_fetch_array($result))
  2. {
  3.    echo "<tr>";
  4.    echo "<td align=center> $data['site_inter']</td>";
  5.    Ainsi de suite...
  6.    echo "</tr>";
  7. }


Reply

Marsh Posté le 27-04-2005 à 09:34:10    

Il vaut mieux faire un seul echo, c'est plus rapide que plusieurs...
Au faite, tu commence direct par un mysql_select_db, mais tu as fais un mysql_connect avant?

Reply

Marsh Posté le 27-04-2005 à 09:37:14    

oué c mieux merci

Reply

Marsh Posté le 27-04-2005 à 09:37:59    

si le mysql_connect il est avant dans le code

Reply

Marsh Posté le 27-04-2005 à 09:38:46    

Citation :

Il vaut mieux faire un seul echo, c'est plus rapide que plusieurs...


 
Exact, mais le code devient lisible par la suite?? Je suis également débutant ou noob en programmation, donc je demande ;).
 

Citation :

Au faite, tu commence direct par un mysql_select_db, mais tu as fais un mysql_connect avant?


 
Ah oui, je n'avais pas vu. Si en effet tu n'as pas sélectionné ta base, je te conseille de créer un fichier "connexion.php" par exemple avec ce code :
 

Code :
  1. <?php
  2. // Paramètre de connexion à la base de données
  3. $host="***";
  4. $database="***";
  5. $user="***";
  6. $pass="***";
  7. //on effectue la connexion
  8. @mysql_connect("$host","$user","$pass" );
  9. //Selection de la base de données qui porte le meme nom que votre login
  10. $GLOBALS ['select_base'] = @mysql_selectdb("$database" );
  11. ?>


 
Puis de faire un include_once ('connexion.php'); juste avant d'effectuer tes requêtes. Ca évite de se retapper tout le code. ;). Bien pratique.

Reply

Marsh Posté le 27-04-2005 à 09:39:01    

Ok, et c'est bon, ca fonctionne alors?

Reply

Marsh Posté le 27-04-2005 à 09:41:47    

Pour répondre à Fiiies, c'est quoi que tu apelle lisible?
A quel niveau?
Pour le codeur, c'est peut être moins lisible, c'est vrai, surtout quand tu as 10 lignes, la vitesse gagnée est pas asser importante.

Reply

Marsh Posté le 27-04-2005 à 09:46:22    

<tr bgcolor=#DDDDDD>
<table border=5>
 
<tr>
        <td align=center colspan="8"><b>Suivi des PI vaines & évitables à J-2</b></td>
</tr>
<tr>
 <td align=center colspan="1"><b>Site_TC</b></td>
 <td align=center colspan="1"><b>PI évitable</b></td>
 <td align=center colspan="1"><b>PI vaine</b></td>
 <td align=center colspan="1"><b>Commentaires</b></td>
 <td align=center colspan="1"><b>Initiales Agent</b></td>
 <td align=center colspan="1"><b>Site</b></td>
 <td align=center colspan="1"><b>Service</b></td>
 <td align=center colspan="1"><b>Ref Client</b></td>
</tr>
while ($data = mysql_fetch_array($result))
{ echo "<tr>";
 echo "<td align=center> $data['site_inter']</td>";
 echo "<td align=center> $data['pi_evitables']</td>";
 echo "<td align=center> $data['pi_vaines']</td>";
 echo "<td align=center> $data['commentaires_anomalie']</td>";
 echo "<td align=center> $data['initiales_agent']</td>";
 echo "<td align=center> $data['site_agent']</td>";
 echo "<td align=center> $data['service_agent']</td>";
 echo "<td align=center> $data['ref_client']</td>";
 echo "</tr>";
}
<tr>
 <td colspan="4" align=center><INPUT TYPE="BUTTON" VALUE="pi suivante" onClick="self.location.href=('http://distri-provence.edf.fr/pi-vaines/anomalies_amont.php')"></td>
 <td colspan="4" align=center><INPUT TYPE="BUTTON" VALUE="terminer" onClick="self.location.href=('http://distri-provence.edf.fr/pi-vaines/')"></td>
</tr>
</table>
</tr>

Reply

Marsh Posté le 27-04-2005 à 09:46:22   

Reply

Marsh Posté le 27-04-2005 à 09:49:07    

voila mon code complet pour le tableau avec les modifs
 
<tr bgcolor=#DDDDDD>
<table border=5>
 
<tr>
        <td align=center colspan="8"><b>Suivi des PI vaines & évitables à J-2</b></td>
</tr>
<tr>
 <td align=center colspan="1"><b>Site_TC</b></td>
 <td align=center colspan="1"><b>PI évitable</b></td>
 <td align=center colspan="1"><b>PI vaine</b></td>
 <td align=center colspan="1"><b>Commentaires</b></td>
 <td align=center colspan="1"><b>Initiales Agent</b></td>
 <td align=center colspan="1"><b>Site</b></td>
 <td align=center colspan="1"><b>Service</b></td>
 <td align=center colspan="1"><b>Ref Client</b></td>
</tr>
while ($data = mysql_fetch_array($result))
{       echo "<tr>";
 echo "<td align=center> $data['site_inter']</td>";
 echo "<td align=center> $data['pi_evitables']</td>";
 echo "<td align=center> $data['pi_vaines']</td>";
 echo "<td align=center> $data['commentaires_anomalie']</td>";
 echo "<td align=center> $data['initiales_agent']</td>";
 echo "<td align=center> $data['site_agent']</td>";
 echo "<td align=center> $data['service_agent']</td>";
 echo "<td align=center> $data['ref_client']</td>";
 echo "</tr>";
}
</table>
</tr>
 
mais maintenat avec les changements pour le echo, j'ai $data['site_inter'] qui s'affiche dans les colonnes

Reply

Marsh Posté le 27-04-2005 à 09:50:51    

Fait
 

Code :
  1. echo "<td align=center>".$data['site_inter']."</td>";

Reply

Marsh Posté le 27-04-2005 à 09:51:05    

Où sont tes balises <?php ?> ?
Là tu essaies d'inclure des instructions de type While & echo dans de l'HTML, donc ça ne marche pas, si je ne m'abuse... ?
 
Ok pour "cesarr89". ;). Je voulais dire lisible au niveau de la ligne du echo. Si tu places toutes tes balises html à la suite dans le echo, je pensais que ça allait devenir illisible.

Reply

Marsh Posté le 27-04-2005 à 09:52:46    

c'est normal, c'est entre double quotes, il faut faire :
echo "<td align=center>".$data['site_inter']."</td>"; ou
echo "<td align=center>".'$data['site_inter']'."</td>";
essaye les deux, c'est un des deux.  
au lieu de:
echo "<td align=center> $data['site_inter']</td>";  

Reply

Marsh Posté le 27-04-2005 à 09:53:41    

J'avais pas vu qu'il avait pas mis les balises php :)

Reply

Marsh Posté le 27-04-2005 à 09:54:15    

C'est clair, t'es sur que ce que tu as mis provoque juste ca comme erreur?
Il manque les balises PHP

Reply

Marsh Posté le 27-04-2005 à 09:58:47    

voila juste la partie en question
 
<?php
mysql_select_db("pi-vaines" );
$query = "select * from pi";
$result = mysql_query($query);
while ($data = mysql_fetch_array($result))
{       echo "<tr>";  
 echo "<td align=center>".'$data['site_inter']'."</td>";  
 echo "<td align=center>".'$data['pi_evitables']'."</td>";  
 echo "<td align=center>".'$data['pi_vaines']'."</td>";  
 echo "<td align=center>".'$data['commentaires_anomalie']'."</td>";  
 echo "<td align=center>".'$data['initiales_agent']'."</td>";  
 echo "<td align=center>".'$data['site_agent']'."</td>";  
 echo "<td align=center>".'$data['service_agent']'."</td>";  
 echo "<td align=center>".'$data['ref_client']'."</td>";  
 echo "</tr>";  
}
?>

Reply

Marsh Posté le 27-04-2005 à 10:01:02    

C'est bon ca fonctionne ou pas?
La balise [C.O.D.E] stp

Reply

Marsh Posté le 27-04-2005 à 10:01:19    

ca marche nikel

Reply

Marsh Posté le 27-04-2005 à 10:01:45    

merci bien à tous !!!!!!!
kool :-)

Reply

Marsh Posté le 27-04-2005 à 10:04:14    

Ok de rien.

Reply

Marsh Posté le 27-04-2005 à 10:13:14    

Code :
  1. echo "<td align=center>".'$data['site_inter']'."</td>";


 
Pourquoi as-tu encore rajouté des quotes avant et après $data ???


Message édité par GaSPaRD77 le 27-04-2005 à 10:13:26
Reply

Marsh Posté le 27-04-2005 à 10:15:15    

C'est une erreur de ma part, je lui ai dis que c'etais soit avec soit sans mais que je me rapellais plus, n'empeche qu'il aurait du tester et tout lire avant d'appliquer.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed