Bonjour à tous et à toutes,
J'ai un petit soucis avec une requête MYSQL, utilisant UNION qui me retourne 4 ligne sur les 5.
Je m'explique.
J'exécute cette requête :
Si je l'exécute en direct dans PhpMyAdmin, aucun soucis, j'ai bien un tableau complet avec 5 lignes de résultat.
Par contre, si je l'exécute dans mon script, il ne me retourne que 4 lignes de résultat. Si j'inverse l'ordre des résultat, il me manque toujours une ligne de résultat, mais la première qui me manquais apparaît ...
Quand je compte le nombre de résultat, il me dis bien 5 résultats .... mais même en faisant un "print_r" je n'ai que 4 lignes de résultats
Merci mille fois pour votre aide, car je vais devenir chauve !
Script :
Modifié par Super_baloo8 (30 Jan 2009 - 18:58)
J'ai un petit soucis avec une requête MYSQL, utilisant UNION qui me retourne 4 ligne sur les 5.
Je m'explique.
J'exécute cette requête :
SELECT wcg.id, wcg.total_credit, wcg.total_result, wcg.project_name
FROM worldcommunitygrid AS wcg
WHERE wcg.name = '***aloo8'
UNION
SELECT f.id, f.total_credit, f.expavg_credit, f.project_name
FROM folding AS f
WHERE f.name = '***aloo8'
UNION
SELECT c.id, c.total_credit, c.expavg_credit, c.project_name
FROM climateprediction AS c
WHERE c.cpid='33767f08615415a5f588b8316f30073a'
UNION
SELECT r.id, r.total_credit, r.expavg_credit, r.project_name
FROM rosetta AS r
WHERE r.cpid='33767f08615415a5f588b8316f30073a'
UNION
SELECT m.id, m.total_credit, m.expavg_credit, m.project_name
FROM malaria AS m
WHERE m.cpid='33767f08615415a5f588b8316f30073a'
ORDER BY project_name ASC
Si je l'exécute en direct dans PhpMyAdmin, aucun soucis, j'ai bien un tableau complet avec 5 lignes de résultat.
Par contre, si je l'exécute dans mon script, il ne me retourne que 4 lignes de résultat. Si j'inverse l'ordre des résultat, il me manque toujours une ligne de résultat, mais la première qui me manquais apparaît ...
Quand je compte le nombre de résultat, il me dis bien 5 résultats .... mais même en faisant un "print_r" je n'ai que 4 lignes de résultats

Merci mille fois pour votre aide, car je vais devenir chauve !

Script :
while($ban_data = mysql_fetch_assoc($ban_exe))
{
include(fonctions.php');
if($ban_data['cpid'])
{
$end_search = "cpid='".$ban_data['cpid']."'";
}
else
{
$end_search = "name='".$ban_data['username']."'";
}
$data_st_req = "SELECT wcg.id, wcg.total_credit, wcg.total_result, wcg.project_name
FROM worldcommunitygrid AS wcg
WHERE wcg.name = '".$ban_data['username']."'
UNION
SELECT f.id, f.total_credit, f.expavg_credit, f.project_name
FROM folding AS f
WHERE f.name = '".$ban_data['username']."'
UNION
SELECT c.id, c.total_credit, c.expavg_credit, c.project_name
FROM climateprediction AS c
WHERE c.".$end_search."
UNION
SELECT r.id, r.total_credit, r.expavg_credit, r.project_name
FROM rosetta AS r
WHERE r.".$end_search."
UNION
SELECT m.id, m.total_credit, m.expavg_credit, m.project_name
FROM malaria AS m
WHERE m.".$end_search."
ORDER BY total_credit ASC";
$data_st_exe = mysql_query($data_st_req);
$data_st = mysql_fetch_assoc($data_st_exe);
$nombre_projets = mysql_num_rows($data_st_exe);
switch($nombre_projets)
{
case 1:
$destination = imagecreatefromjpeg('banniere/fond_moins_de_4_projets.jpg');
break;
case 2:
$destination = imagecreatefromjpeg('banniere/fond_moins_de_4_projets.jpg');
break;
case 3:
$destination = imagecreatefromjpeg('banniere/fond_moins_de_4_projets.jpg');
break;
case 4:
$destination = imagecreatefromjpeg('banniere/fond_4_projets.jpg');
break;
case 5:
$destination = imagecreatefromjpeg('banniere/fond_5_projets.jpg');
break;
}
while($data_st = mysql_fetch_assoc($data_st_exe))
{
if($data_st['id'])
{
Modifié par Super_baloo8 (30 Jan 2009 - 18:58)