H'llo !
Oui c'est ça, regrouper par reference, puis par anomalie (titre ano, puis les textes des ano par numeros de ligne, pour eviter les redondances et doublons d'infos...), pour faire des INSERTS propres en base.
Par exemple pour ma premiere ano de la ref 3891: INSERT INTO `new_anomalies` (`ref`, `code_ano`, `text_ano`) VALUES
('3891', 'M2412', 'PHASE DESEQUILIBREE 21 - GROUPE DE COMPTAGE: 01 - CONSO COMPTEUR 20 : 000002415 - CONSO COMPTEUR 21 : 000001200 - CONSO COMPTEUR 22 : 000002965')";
Sachant que:
La deuxieme colonne (visuellement dans le tableau ci dessous, ou il y a 1,6,11,21,26) est le numero de la ligne qui contient un titre d'ano non vide ( ex:M2412), et la colonne 6 est le numero de la ligne ( 2,3,4,5, 7,8,9,10 etc... )qui contient un titre d'ano vide (la colonne n°7 - pas vide mais 5 espaces en fait)
$toto =array(
array(
3891, 1, "
M2412", "
PHASE DESEQUILIBREE 21", 3891, 2, " ", "
GROUPE DE COMPTAGE: 01"),
array(3891, 1, "M2412", "PHASE DESEQUILIBREE 21", 3891, 3, " ", "
CONSO COMPTEUR 20 : 000002415"),
array(3891, 1, "M2412", "PHASE DESEQUILIBREE 21", 3891, 4, " ", "
CONSO COMPTEUR 21 : 000001200"),
array(3891, 1, "M2412", "PHASE DESEQUILIBREE 21", 3891, 5, " ", "
CONSO COMPTEUR 22 : 000002965"),
array(
3891, 6, "
M2412", "
PHASE DESEQUILIBREE 22", 3891, 5, " ", "CONSO COMPTEUR 22 : 000002965"),
array(3891, 6, "M2412", "PHASE DESEQUILIBREE 22", 3891, 7, " ", "
GROUPE DE COMPTAGE: 01"),
array(3891, 6, "M2412", "PHASE DESEQUILIBREE 22", 3891, 8, " ", "
CONSO COMPTEUR 20 : 000002415"),
array(3891, 6, "M2412", "PHASE DESEQUILIBREE 22", 3891, 9, " ", "
CONSO COMPTEUR 21 : 000001200"),
array(3891, 6, "M2412", "PHASE DESEQUILIBREE 22", 3891, 10, " ",
"CONSO COMPTEUR 22 : 000002965"),
array(
3891, 11, "
M2408", "
CONSOMMATION FORTE HCH", 3891, 10, " ", "
CONSO COMPTEUR 22 : 000002965"),
array(3891, 11, "M2408", "CONSOMMATION FORTE HCH", 3891, 12, " ", "
PERIODE DU : 22/11 AU 20/12"),
array(3891, 11, "M2408", "CONSOMMATION FORTE HCH", 3891, 13, " ", "
PS:000000112 COEF: 2,50"),
array(3891, 11, "M2408", "CONSOMMATION FORTE HCH", 3891, 14, " ", "
CONSO/JOUR REF:000000037"),
array(3891, 11, "M2408", "CONSOMMATION FORTE HCH", 3891, 15, " ", "
CONSO/JOUR EN COURS:000000097"),
array(
3891, 16, "
M2408","
CONSOMMATION FORTE HPH", 3891, 15, " ", "
CONSO/JOUR EN COURS:000000097"),
array(3891, 16, "M2408", "CONSOMMATION FORTE HPH", 3891, 17, " ", "
PERIODE DU : 22/11 AU 20/12"),
array(3891, 16, "M2408", "CONSOMMATION FORTE HPH", 3891, 18, " ", "
PS:000000112 COEF: 2,50"),
array(3891, 16, "M2408", "CONSOMMATION FORTE HPH", 3891, 19, " ", "
CONSO/JOUR REF:000000031"),
array(3891, 16, "M2408", "CONSOMMATION FORTE HPH", 3891, 20, " ", "
CONSO/JOUR EN COURS:000000118"),
array(3891, 21, "M2408", "CONSOMMATION FORTE P", 3891, 20, " ", "CONSO/JOUR EN COURS:000000118"),
array(
3891, 21, "
M2408", "
CONSOMMATION FORTE P", 3891, 22, " ", "
PERIODE DU : 22/11 AU 20/12"),
array(3891, 21, "M2408", "CONSOMMATION FORTE P", 3891, 23, " ", "
PS:000000112 COEF: 2,50"),
array(3891, 21, "M2408", "CONSOMMATION FORTE P", 3891, 24, " ", "
CONSO/JOUR REF:000000010"),
array(3891, 21, "M2408", "CONSOMMATION FORTE P", 3891, 25, " ", "
CONSO/JOUR EN COURS:000000043"),
array(
3891, 26, "
A2411", "
ECART PRECISION-REPARTITEUR", 3891, 25, " ", "
CONSO/JOUR EN COURS:000000043"),
array(3891, 26, "A2411", "ECART PRECISION-REPARTITEUR", 3891, 27, " ", "
CONSO TOTALE MONOS:000006580"),
array(3891, 26, "A2411", "ECART PRECISION-REPARTITEUR", 3891, 28, " ", "
CONSO REPARTITEUR:000008020"),
array(3891, 26, "A2411", "ECART PRECISION-REPARTITEUR", 3891, 29, " ", "
ECART: 1,10 "));
Voilà, en couleur, j'espere que ca te parlera tout autant qu'à moi ...
Array php $toto obtenu avec ce code:
Code:
$tab = array();
$tab1 = array();
$tab2 = array();
$req = mysql_query("SELECT * FROM anomalies") or die('pb select');
while($row = mysql_fetch_array($req)){
$ref=$row['ref'];
$line_ano=$row['ligne'];
$code_ano=$row['code_ano'];
$text_ano=$row['text_ano'];
if($code_ano != " "){
$tab1 = array($ref, $line_ano, $code_ano, $text_ano); // Le tableau ou les ref_ano ne sont pas vides
}
else
{
$tab2 = array($ref, $line_ano, $code_ano, $text_ano); // Le tableau ou les ref_ano sont vides
}
if(($tab1[0] == $tab2[0]) AND ($tab1[3] !=" ") ) {
$tab []= array_merge($tab1, $tab2);
}
}
Daphn