2015-02-12 4 views
0

Я пытаюсь отобразить таблицу сгруппированной компанией под моей категорией и показать подкатегорию при щелчке с помощью CSS. Пока у меня есть код ниже, но я получаю двойной текстовый вывод, который, как представляется, отображается в списке перед таблицей, а также в таблице!PHP-цикл, отображающий неправильный текст

//get local category names 
$query = "SELECT DISTINCT `Merchant Category`, `company` , `id` FROM `otherfeeds` ORDER BY `Merchant Category`"; 
$result=mysql_query($query) or die("Cant find merchant names and cats"); 
$merchant_cat_array = array(); 
while ($row = mysql_fetch_array($result)) 
{ 
$merchant_cat_array[] = $row['Merchant Category']; 
} 
mysql_close(); 

//start table to display data 
$i=0; 
$merchant_cat_was = ""; //set first check to empty 
echo '<table width="100%">'; 
foreach($merchant_cat_array as $merchant_cat) 
{ 

if($merchant_cat_was != $merchant_cat) 
{ //if new cat start td 
if($i==0) { echo "<tr><td valign='top'>0"; } 
elseif($i==1 or $i==2) { echo "<td valign='top'>1or2"; } 
///display new category in td 
echo '<h2>'.$merchant_cat.'</h2>'; 
} 
///get companys in category and local id 
include("../../include/connectaw.php"); 
$query = "SELECT * FROM `otherfeeds` WHERE `Merchant Category` = '$merchant_cat'"; 
$result=mysql_query($query) or die("Cant find merchants for cats $merchant_cat"); 
$merchant_id_array = array(); 
$merchant_company_array = array(); 
while ($row = mysql_fetch_array($result)) 
{ 
$merchant_id_array[] = $row['id']; 
$merchant_company_array[] = $row['company']; 
} 
mysql_close(); 

//loop through all companys found 
$loop=0; 
foreach($merchant_company_array as $company) 
{ 
$id = $merchant_id_array[$loop]; 
if($id<=50) { $table = "compare_tester"; } 
elseif($id>50 and $id<=100) { $table = "compare_tester2"; } 
elseif($id>100 and $id<=150) { $table = "compare_tester3"; } 
elseif($id>150 and $id<=200) { $table = "compare_tester4"; } 
elseif($id>200 and $id<=250) { $table = "compare_tester5"; } 

///display company and catnames for company 
include("../../include/connect.php"); 
$query = "SELECT DISTINCT `catname` FROM ".$table." WHERE company =  '$company' LIMIT 10"; 
$result=mysql_query($query) or die("Cant find merchants for subcats"); 
$c=0; 
?> 
<style> 
.alert-<?php echo $id; ?> 
{ 
display:none; 
} 
} 
.hide-<?php echo $id; ?>:focus ~ .alert-<?php echo $id; ?> { 
    display: none; 
} 
.show-<?php echo $id; ?>:focus ~ .alert-<?php echo $id; ?> { 
    display: block; 

}</style> 
<?php 

echo '<h3>'.$company.'</h3><span class="show-'.$id.'" tabindex="0">Browse  Categorys</span> or <a href="sql-cat.php?cat='.$company.'">Shop Now</a><BR>'; 
///hidden div 
echo '<ul class="alert-'.$id.'">'; 

while ($row = mysql_fetch_array($result)) 
{ 

$catname = $row['catname']; 
if($catname) 
{ 
echo '<li><a href="sql-catname.php? cat='.$company.'&catname='.$catname.'">'.$catname.'</a></li>'; 
} 
$c++; 
} 
echo '</ul>'; 
mysql_close(); 
$loop++; 
} 

//end display 
/// 
if($merchant_cat_was != $merchant_cat) 
{ 

if($i==0 or $i==1) { echo "</td>"; $i++; } 
elseif($i==2) { echo "</td></tr>"; $i=0; } 
} 
$merchant_cat_was = $merchant_cat; 

//end td 
} //end loop 
echo "</table>"; //end table 
mysql_close(); 

Любые идеи, в которых я поступил не так?

Вывод должен быть таким:

<table> 
<tr> 
<td> 
<h2>Cat 1<h2> 
<h3>Shop name</h3> 
<ul><li>sub cat 1</li> 
<li>sub cat 2</li></ul> 
</td> 
<td> 
<h2>Cat 2<h2> 
<h3>Shop name</h3> 
<ul><li>sub cat 1</li> 
<li>sub cat 2</li></ul> 
</td> 
<td> 
<h2>Cat 3<h2> 
<h3>Shop name</h3> 
<ul><li>sub cat 1</li> 
<li>sub cat 2</li></ul> 
</td> 
</tr> 
</table> 

Что я получаю

<h2>Cat 1<h2> 
<h3>Shop name</h3> 
<ul><li>sub cat 1</li> 
<li>sub cat 2</li></ul> 

<h2>Cat 2<h2> 
<h3>Shop name</h3> 
<ul><li>sub cat 1</li> 
<li>sub cat 2</li></ul> 

<h2>Cat 3<h2> 
<h3>Shop name</h3> 
<ul><li>sub cat 1</li> 
<li>sub cat 2</li></ul> 

<table> 
<tr> 
<td> 
<h2>Cat 1<h2> 
<h3>Shop name</h3> 
<ul><li>sub cat 1</li> 
<li>sub cat 2</li></ul> 
</td> 
<td> 
<h2>Cat 2<h2> 
<h3>Shop name</h3> 
<ul><li>sub cat 1</li> 
<li>sub cat 2</li></ul> 
</td> 
<td> 
<h2>Cat 3<h2> 
<h3>Shop name</h3> 
<ul><li>sub cat 1</li> 
<li>sub cat 2</li></ul> 
</td> 
</tr> 
</table> 
+0

пожалуйста, правильно отформатируйте код ... – TheGreenkey

+0

Можете ли вы подробнее объяснить? Каков результат? Каким должен быть результат? –

+0

У меня такое чувство, что не весь этот код имеет отношение к вопросу. Можете ли вы показать код, который имеет значение только? – Loko

ответ

0

Я узнал, что я закрыл петлю Еогеасп слишком рано и теперь исправили проблему.

+2

Что-то вроде этого происходит, если вы не отступаете от своего кода – TheGreenkey

+1

Отступы помогают, да, но на самом деле вы хотите, чтобы IDE отслеживала скобки. – Martin

+0

Отметить как ответ – wast

Смежные вопросы