Форматирование таблицы с помощью PHP - PullRequest
1 голос
/ 28 февраля 2012

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

Например, я могу получить 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>

Ответы [ 2 ]

0 голосов
/ 28 февраля 2012

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

<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 голосов
/ 28 февраля 2012

1 - Вы можете заглянуть в MYSQL JOIN, чтобы объединить два ваших запроса.(http://www.tizag.com/mysqlTutorial/mysqljoins.php)

2 - используйте CSS для стилизации набора результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...