tableau multidimensionnel

fredostar
Invité n'ayant pas de compte PHPfrance

27 mai 2008, 23:20

Salut j souhaite programmer un tableau qui donne la valeur 1 à un article sur chaque machine qui le traite et 0 aux autres machines. Voici le code,il ne marche pas et j ss à cours d'idées.Aidez moi svp.
 <? 
mysql_connect("localhost","root","");
mysql_select_db("layout");

// requête SQL qui récupère tous les enregistrements

$select = 'SELECT code_poste FROM poste_de_charge';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );


$select1 = 'SELECT code_article FROM article';
$result1 = mysql_query($select1) or die ('Erreur : '.mysql_error() );

$select2 = 'SELECT code_article,code_poste FROM phase';
$result2= mysql_query($select2) or die ('Erreur : '.mysql_error() );


echo '<table width="10%" border="1" align="center">
  <tr bgcolor="#666666"> 
    <td width="16%" height="23"><h4 align="center">Poste/Machine</h4></td>';
$i=0;
$j=0;
 $poste = array();
 $resultat=array();

//1er ligne constituée des postes de travail
while($abscisse= mysql_fetch_row($result))
{
	echo "<td>$abscisse[0]</td>";  
	$poste[$i]=$abscisse[0];
	$i++;
}	
print("</tr>");

//1ere colonne constituée des articles 
while($ordonnee=mysql_fetch_row($result1))
{  
   print("<tr>");
   print("<td><font color='#000000'>$ordonnee[0]</font></td>");
   
   //afficher la valeur de l'intersection poste de travail/article 
   $select3 = 'SELECT code_poste, code_article FROM phase WHERE code_article='.$ordonnee[0];
   $result3= mysql_query($select3) or die ('Erreur : '.mysql_error() );
   while($rep=mysql_fetch_row($result3))
   {
   $resultat[$j]=$rep[0];
   $j++;
   }	
  
  for ($x=0;$x<$i;$x++)
  {
        
 	   if (is_array($resultat)==$poste[$x])
         echo "<td><font color='#000FFF'>1</font></td>";
       else
  		echo "<td><font color='#000000'>0</font></td>";
 
  }  
	print("</tr>");
}
echo '</table>'."\n";
      ?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 mai 2008, 00:14

Modération :
fredostar, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
AB
ViPHP | 5818 Messages

28 mai 2008, 01:04

Et si tu t'expliquais un peu plus ?

fredostar
Invité n'ayant pas de compte PHPfrance

28 mai 2008, 02:19

voici le résultat du tableau à partir d'un précédent code :

Code : Tout sélectionner

Poste/Machine C:CO1 C:CO2 C:CO3 P:CU1 P:CU2 P:CU3 P:CU4 P1 0 0 0 1 0 0 0 P2 0 0 0 0 1 0 0 P3 0 0 0 0 0 1 0 P2 0 0 0 1 0 0 0 P3 0 0 1 0 0 0 0
Or je souhaite que les valeurs de chaque poste qui désigne les machines par lesquelles il est traité(valeur "1") se retrouve sur la même ligne au lieu de créer une autre ligne . Ce qui devrait donner le résultat suivant:

Code : Tout sélectionner

Poste/Machine C:CO1 C:CO2 C:CO3 P:CU1 P:CU2 P:CU3 P:CU4 P1 0 0 0 1 0 0 0 P2 0 0 0 1 1 0 0 P3 0 0 1 0 0 1 0