我坚持'合并'表

时间:2014-10-07 20:07:33

标签: php mysql html-table

我只是试图通过配对行来合并表格,例如:     cw_users.userid = sold.buyer_id

我想显示他们购买了哪些套餐(vps,域名,托管)。

Here's a screen of my tables

所以这是我的代码。 希望你能帮忙

编辑:我忘了提及我还需要使用$_SESSION['id'],它将与cw_users.userid链接

<?php
            //connect.php
            $server     = 'localhost';
            $username   = 'myusernamenotyours';
            $password   = 'mypassnotyours';
            $database   = 'mydatabasenotyours';

            if(!mysql_connect($server, $username, $password))
            {
                exit('Error: could not establish database connection');
            }
            if(!mysql_select_db($database))
            {
                exit('Error: could not select the database');
            }

            $sql = "SELECT sold.*, vps_packages.*
                    FROM sold, vps_packages
                    WHERE sold.bought_vps = vps_packages.id ";

                $result = mysql_query($sql);

                if(!$result)
                {
                    echo 'De packages kunnen niet worden geladen';
                }
                else
                {
                    if(mysql_num_rows($result) == 0)
                    {
                        echo 'Er zijn nog geen packages, probeer het later nog eens.';
                    }
                    else
                    {
                        //prepare the table
                        echo '<table>';

                        while($row = mysql_fetch_assoc($result))
                        { 
                            echo '<li>' . sold.bought_vps .  ' </li>';
                        }
                    }
                }
            echo '</table>';
        ?>

2 个答案:

答案 0 :(得分:0)

while($row = mysql_fetch_assoc($result))
{ 
 echo '<li>' . sold.bought_vps .  ' </li>';
}

您应该将$ row视为已连接表的复制行 因此,如果您输入print_r($ row),您将看到所有数据。

其他SQL:

SELECT * FROM sold
INNER JOIN vps_packages ON sol.bougth_vps = vps_packages.id 

答案 1 :(得分:0)

你的时间应该是这样的:

while($row = mysql_fetch_assoc($result))
{ 
  echo '<tr><td>' . $row['bought_vps'] .  ' </td></tr>';
}

即使您的查询失败,您也应该echo '<table>'回显它,否则您的网页将无法正确显示。

但在进一步编码之前,停止,倾听并思考

  1. 您正在使用旧的已弃用的危险mysql_*扩展程序。查看有关替代方案的问题的评论
  2. 您正尝试在 PHP 中使用相同名称调用 MySQL 中定义为bought_vps的值。它没有任何意义。在没有$的情况下调用的变量是全局变量,我很确定你不会试图在代码中回显那个地方的全局变量。
  3. 你应该知道这个

    这意味着你应该真的,真的考虑遵循简单的教程来学习其他方面的基础。如果这对你来说确实是一个问题,你应该先获得更多技能。