2012-02-28 4 views
1

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

Например, я могу получить DROID 4 от MOTOROLA, и все его атрибуты идут от полной розничной цены до набора номера голосом. После набора номера голосом должен быть второй заголовок для другого телефона. Понятно, что моя логика испорчена, и я боролся около 4 часов. Мне также нужны две таблицы, которые будут бок о бок, а не в длинном списке, подобном этому.

enter image description here

Это то, что я пытаюсь достичь: enter image description here

Мой код выглядит следующим образом:

<? 
session_start(); 
if(!session_is_registered(myusername)){ 
header("location:main_login.php"); 
} 
?> 
<html> 
    <head> 
     <link rel="stylesheet" type="text/css" href="theme.css" /> 
    </head> 
    <body> 
<?php 

include_once 'config.php'; 

$conf = new config(); 

mysql_connect($conf->getdbServ(), $conf->getdbUser(), $conf->getdbPwd()) or die(mysql_error()); 
mysql_select_db($conf->getDB()) or die(mysql_error()); 



$selectedPhones = $_POST['phones']; 


$totalSelected = count($selectedPhones); 
//echo $totalSelected; 
$idList = ""; 
for($i=0;$i < $totalSelected; $i++){ 
     $idList .= $selectedPhones[$i] . ","; 
    } 
$idList = substr($idList,0,-1); 


    $query = "Select name from ".$conf->getproductTbl()." WHERE id='$idList'"; 
    $res=mysql_query($query); 



//echo $idList; 

$data = mysql_query("SELECT ".$conf->getproductTbl().".id, ".$conf->getproductAttr().".* from ".$conf->getproductTbl()." 
         LEFT JOIN ".$conf->getproductAttr()." ON ".$conf->getproductTbl().".id=".$conf->getproductAttr().".prodFK 
        Where ".$conf->getproductTbl().".id IN(" . $idList . ");"); 

echo "<table width = 100% border = '1' cellspacing = '2' cellpadding = '0'>"; 

while ($result = mysql_fetch_assoc($res)) 
{ 
    echo "<th colspan='2'>".$result["name"]."</th>"; 
} 
while ($row = mysql_fetch_assoc($data)) { 
    echo "<tr><td>"; 
    echo $row["Name"]; 
    echo "</td><td>"; 
    echo $row["value"]; 
    echo "</td></tr>"; 
} 

echo "</table>"; 

?> 
    </body> 
</html> 

ответ

0

1 - Вы можете посмотреть в MYSQL РЕГИСТРИРУЙТЕСЬ совместить два запроса. (http://www.tizag.com/mysqlTutorial/mysqljoins.php)

2 - Используйте CSS, чтобы создать свой результирующий набор.

0

Вы можете попробовать что-то вроде этого .. Надеюсь, это вам поможет.

<table> 
    <tr> 
     <?php 
     for($i=0;$i < $totalSelected; $i++){ 
     //$idList .= $selectedPhones[$i] . ","; 
     ?> 
     <td><?php 
     $data = mysql_query("SELECT ".$conf->getproductTbl().".id, ".$conf->getproductAttr().".* from ".$conf->getproductTbl()." 
     LEFT JOIN ".$conf->getproductAttr()." ON ".$conf->getproductTbl().".id=".$conf->getproductAttr().".prodFK 
     Where ".$conf->getproductTbl().".id = ".$selectedPhones[$i]); 

     echo "<table width = 100% border = '1' cellspacing = '2' cellpadding = '0'>"; 

     while ($result = mysql_fetch_assoc($res)) 
     { 
      echo "<th colspan='2'>".$result["name"]."</th>"; 
     } 
     while ($row = mysql_fetch_assoc($data)) { 
      echo "<tr><td>"; 
      echo $row["Name"]; 
      echo "</td><td>"; 
      echo $row["value"]; 
      echo "</td></tr>"; 
     } 

     echo "</table>"; 

     ?> 
     </td> 
     <?php }?> 
    </tr> 
</table> 
+0

Приведенный выше результат. Ничего не изменилось. –