J'ai construis 2 fonctions. L'une permettant de compter le nombre d'occurence d'un champ (num_nd dans la table 'bacara' et num_désignation dans la table 'gpc').
Voilà la code de la première fonction qui fonctionne :
Code : Tout sélectionner
function nb_occ_nd_gpc()
{
mysql_query("TRUNCATE TABLE bacara_occ_nd_gpc");
$req=mysql_query("SELECT num_nd FROM bacara");
$req2=mysql_query("SELECT num_designation FROM gpc");
$count=0;
while($ligne=mysql_fetch_assoc($req))
{
if($ligne['num_nd']!=0)
{
while($ligne2=mysql_fetch_assoc($req2))
{
if($ligne['num_nd'] == $ligne2['num_designation'])
{
$count++;
}
}
}
mysql_query("INSERT INTO bacara_occ_nd_gpc (num_nd,nb_occ_nd_gpc) VALUES ({$ligne['num_nd']},$count)");
mysql_data_seek($req2,0);
$count=0;
}
}
Dans les 3 différentes tables, le numéro qui est comparé est stocké dans un champs INT de taille 10.
Jusque là aucun problème
Ma deuxième fonction est pratiquement similaire, il y a seulement plus de champs mis en relation, et cette fois-ci les champs sont tous de type VARCHAR de taille 255.
J'ai fais des traces histoire de vérifier le contenu des variable, tout est ok mais la requête d'insertion ne s'éxecute pas, je suis débutant en php, peut être que quelqu'un pourrait m'éclairer!
Apercu du code de la deuxième fonction :
Code : Tout sélectionner
function nb_occ_ll_gpc()
{
mysql_query("TRUNCATE TABLE bacara_occ_ll_gpc");
$req=mysql_query("SELECT num_pres_comm_ft_re FROM bacara");
$req2=mysql_query("SELECT num_pres_comm_ft FROM bacara");
$req3=mysql_query("SELECT refint FROM gpc");
$count=0;
while(($ligne=mysql_fetch_assoc($req)) && ($ligne2=mysql_fetch_assoc($req2)))
{ //echo"boucle bacara ---<br>";
if($ligne2['num_pres_comm_ft']!='')
{ //echo" 2eme colonne ----<br>";
while($ligne3=mysql_fetch_assoc($req3))
{
if(substr_count($ligne3['refint'],$ligne2['num_pres_comm_ft']) >=1)
{
$count++;
//echo $ligne3['refint'];echo"------";echo $ligne2['num_pres_comm_ft'];echo "<br>";
//echo $count;echo"<br>";
}
}
//echo $ligne2['num_pres_comm_ft'];echo"-------------------------------------";echo $count;echo"<br>";
mysql_query("INSERT INTO bacara_occ_ll_gpc(num_ll,nb_occ_ll_gpc) VALUES ({$ligne2['num_pres_comm_ft']},$count)"); // <=== requête non executée
}
elseif($ligne['num_pres_comm_ft_re']!='')
{ //[......]}
mysql_data_seek($req3,0);
$count=0;
}
}
Je pensais que la non execution de la requête venait d'une discordance au niveau des types de champs dans les différentes tables, mais tout est cohérent, si quelqu'un pouvait jeter un petit coup d'oeil car je bloque vraiment, merci.