Comparaison 2 champs d'un array

Arceus -  
 Arceus -
Bonjour,

Je bloque depuis plusieurs heures sur mon tableau. Je cherche à mettre dynamiquement une ligne de ths entre les catégories d'un tableau récupéré d'une BDD

Mieux qu'un long discours, voici la partie incriminée :

<table class="recap">
<?php
do {  if ($a['ID_categorie'] != ++$a['ID_categorie'] ) { echo '<tr><th>Catégorie</th><th>Module</th><th>Je maitrise</th><th>Ancienneté</th></tr>';}
?>
         <tr>
		<td><?php  $ID_categorie = $a['ID_categorie'];
		$cherch_cat = mysql_query(" SELECT * FROM categorie WHERE ID_categorie = '$ID_categorie' ") or die(mysql_error());
		$found_cat = mysql_fetch_assoc($cherch_cat);
		$categorie = $found_cat['Nom'];
		$ID_section= $found_cat['ID_section'];
		echo '<b>'.$categorie.'</b>'; ?></td>
		<td><?php echo $a['Nom']; ?></td>
		<td><input type="radio" name="ok"></td>
		<td><input type="text" name="ancienneté"></td>
		</form>
	</tr>
		<? } while ($a = mysql_fetch_assoc($cherch_formation));
?> </table>


Le tableau est bien récuperé, mais je n'arrive pas sur ma condition, du coup il y a plus de 100 lignes à la suite.

Si quelqu'un a une idée, cela me serait d'une aide très précieuse. Merci d'avance.
A voir également:

3 réponses

prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   431
 
Salut,

J'ai rien pour tester mon script, mais je te laisse tenter ça:

<table class="recap">
<?php
  $last_row = false;
  while($a = mysql_fetch_assoc($cherch_formation)){
    if(!$last_row){
      $last_row = $a;
      continue;
    }
    if($last_row['ID_categorie'] != $a['ID_categorie']){
      echo '<tr><th>Catégorie</th><th>Module</th><th>Je maitrise</th><th>Ancienneté</th></tr>';
    } ?>
    <tr>
      <td><?php echo $a['Nom']; ?></td>
      <td><input type="radio" name="ok"></td>
      <td><input type="text" name="ancienneté"></td>
      </form>
    </tr>
<?php
 }
?>
</table>


Pour être sur d'avoir bien compris, tu as des entrées comportant un module et une catégorie, et tu veux insérer un th dès que la catégorie change ?
0
Arceus
 
Précision : il ne trie correctement que la premiere partie, et ensuite les compte tous comme differents. (Horreur un double post)
0
Arceus
 
Pour éviter le double post je vais écrire en commentaire : Ton script a bien compris ce qu'on lui demandais seulement il ne l'a fait que pour la premiere partie. Par contre j'ai changé ton if en while parceque le if faisait sauter la premiere ligne. Je patauge, j'ai essayé des modifications à l'instinct mais rien ne marche. Problèmatique.
0
Arceus
 
J'ai changer d'approche et utiliser plusieurs requetes. Ca sera beaucoup plus lourd mais ca marche :

$cherch_section = mysql_query( " SELECT * FROM sections ORDER BY ID ") or die (mysql_error());
$ID_sect= 1;
$ID_cat= 1;
while($s = mysql_fetch_assoc($cherch_section)){

$cherch_categorie = mysql_query(" SELECT * FROM categorie WHERE ID_section = '$ID_sect' ORDER BY ID_section ") or die (mysql_error());

$ID_sect++; ?>
<div class="paragraphes">
<h3><?php echo $s['Nom']; ?></h3>
<table class="recap">
		 <tr><th>Catégorie</th><th>Module</th><th>Je maitrise</th><th>Ancienneté</th></tr>
<?php
while($s = mysql_fetch_assoc($cherch_categorie)){

 $cherch_formation = mysql_query(" SELECT * FROM module WHERE ID_categorie = '$ID_cat' ORDER BY ID_categorie ") or die(mysql_error());
$ID_cat++;

  while($a = mysql_fetch_assoc($cherch_formation)){ 
 ?>
    <tr><td><?php	$ID_categorie= $a['ID_categorie'];
					$cherch_cat = mysql_query(" SELECT * FROM categorie WHERE ID_categorie = '$ID_categorie' ") or die(mysql_error());
					$found_cat = mysql_fetch_assoc($cherch_cat);
					$categorie = $found_cat['Nom'];
					$ID_section= $found_cat['ID_section'];
					echo '<b>'.$categorie.'</b>'; ?></td>
		 <td><?php echo $a['Nom']; ?></td>
		 <td><input type="radio" name="ok" ></td>
		 <td><input type="text" name="ancienneté"></td>
		 </form>
		 </tr>
		<? ;}?>
		<tr><th colspan="4"><hr /></th></tr>
		<?php;} ?>
		</table></div><p/>
		<?php;}  mysql_close();


Merci d'avoir essayé en tout cas.
0