2009-08-18 9 views
0

je donne les résultats suivants:sortie incorrect pour la requête de base de données SQL

<?php 
$result = mysql_query("SELECT `category_id` FROM `categories` WHERE `category_parent_id` = '80'"); 
while ($row = mysql_fetch_array($result)){ 
$childrows [] = $row['category_id']; 
$clean = array_unique($childrows); 
$category_string = implode(",",$clean); 
echo $category_string; 
?> 

Et cette sortie:

4747,4847,48,6347,48,63,6447,48,63,64 , 6847,48,63,64,68,69

Je ne peux pas comprendre pourquoi j'ai les doublons et certains ont la virgule manquante.

Aidez s'il vous plaît!

Répondre

2

Votre code ne compilera pas puisque vous ne fermez pas la Accolade, mais il sort en fait ceci:

47 
47,48 
47,48,63 
47,48,63,64 
47,48,63,64,68 
47,48,63,64,68,69 

sans retour à la ligne.

Utilisez ceci:

<?php 
$result = mysql_query("SELECT DISTINCT `category_id` FROM `categories` WHERE `category_parent_id` = '80'"); 
while ($row = mysql_fetch_array($result)) 
    $childrows [] = $row['category_id']; 
echo implode(",",$childrows) . "\n"; 
?> 
4

Vous faites écho à chaque fois autour de la boucle et vous n'avez pas de saut de ligne.

Si vous aviez linebreaks il ressemblerait à ceci:

 
47 
47,48 
47,48,63 
47,48,63,64 
47,48,63,64,68 
47,48,63,64,68,69 

Faire un peu plus de sens maintenant?

+0

me devança! – Quassnoi

Questions connexes