显示来自多个表mysql的大型记录

时间:2013-05-15 21:17:06

标签: php mysql

嗨我所有的朋友都在那里,当我需要显示来自多个table.let的所有购买清单时我面临一个问题。表示5个表名为“平板电脑”,“糖浆”,“胶囊”,“注射“,”烧瓶“,每次从用户购买都必须在一个页面中显示,让我们从每个表中得到20条记录,这样总共将显示100行。问题是如何从每个表中只显示10行而是提供下一个和上一个按钮,而下一个按钮的每一个都不会影响另一个表。这是代码。问题是我有超过1个用户,并且有几乎所有人同时查看他们的购买和我的服务器消失的情况谢谢你的所有帮助。请提供所提供的资料。

$rs = mysql_query("SELECT * FROM tablet WHERE zomname ='".$_SESSION['username']."';",$conn) or die("Couldn't fetch records from stud");
$rs2 = mysql_query("SELECT * FROM syrup WHERE zomname ='".$_SESSION['username']."';",$conn) or die("Couldn't fetch records from stud");
$rs3 = mysql_query("SELECT * FROM capsul WHERE zomname ='".$_SESSION['username']."' LIMIT 10;",$conn) or die("Couldn't fetch records from stud");
$rs4 = mysql_query("SELECT * FROM injection WHERE zomname ='".$_SESSION['username']."';",$conn) or die("Couldn't fetch records from stud");
$rs5 = mysql_query("SELECT * FROM flask WHERE zomname ='".$_SESSION['username']."';",$conn) or die("Couldn't fetch records from stud");


$count=mysql_num_rows($rs);
$count2=mysql_num_rows($rs2);
$count3=mysql_num_rows($rs3);
$count4=mysql_num_rows($rs4);
$count5=mysql_num_rows($rs5);


if ($count>0 || $count2>0 || $count3>0 || $count4>0 || $count5>0)
{
            echo "<CENTER>";
            echo "<BR><B><U>Purchase</U></B><BR><br/>";
            echo "<TABLE align='center' border='1' cellspacing='0' cellpadding='5'>";
            echo "<TR><TH>Nama</TH><TH colspan='4'>batch</TH><TH>Hprice</TH><TH>Discount</TH><TH>Paid</TH><TH>Product</TH><TH>Branch</TH><TH>Regional</TH><TH>Time</TH></TR>";
            //print Tablet data
            $i=0;
            while($i<$count)
            {
                $name=mysql_result($rs, $i, "zomname");
                $product=mysql_result($rs, $i, "tproduct");
                $bnum1=mysql_result($rs, $i, "batch1");
                $bnum2=mysql_result($rs, $i, "batch2");
                $bnum3=mysql_result($rs, $i, "batch3");
                $bnum4=mysql_result($rs, $i, "batch4");
                $bprice=mysql_result($rs, $i, "price");
                $bprice=number_format($bprice, 0, ',', '.');
                $disc=mysql_result($rs, $i, "Tdiscount");
                $disc = $disc." persen";
                $paid=mysql_result($rs, $i, "Tpaid");
                $paid=number_format($paid, 0, ',', '.');
                $country=mysql_result($rs, $i, "Tbr");
                $Regin=mysql_result($rs, $i, "Treg");
                $date=mysql_result($rs, $i, "zomdate");
                $month=mysql_result($rs, $i, "zomonth");
                $time=mysql_result($rs, $i, "zomtime");
                $actualtime =$date."-".$month.",".$time;
                echo "<TR><TD>$name</TD><TD>$bnum1</TD><TD>$bnum2</TD><TD>$bnum3</TD><TD>$bnum4</TD><TD>$bprice</TD><TD>$disc</TD><TD>$paid</TD><TD>$product</TD><TD>$country</TD><TD>$table</TD><TD>$actualtime</TD></TR>";
                $i++;
            }
            echo "</TABLE></CENTER>";
            echo "<br/>";

//print Syrup data and so on....all of the 5 product type have to be in one page.
//but i can limit to show each 10 item from each product type by providing next n previous button for each product

1 个答案:

答案 0 :(得分:0)

您认为一次以10个为单位从数据库中提取查询会减少您的网络数据库负载吗?假设您有大量用户执行大量小请求,您的净负载将会增加。更不用说确保在分页操作期间可能发生实时交易时显示所有数据的稳健性问题。

mysql_ *被删除,请看mysqli

正如Pixel Maker的评论所说 - 使用表来跟踪类型,将类型硬编码到php中是未来痛苦的一个方法。

我的建议:

1)为用户提供充足的过滤选项 - 例如让他们指定购买日期范围和购买类型,以及您可以想到的任何其他有用的过滤器。这使得返回的数据更易于管理,用户可以找到他们要查找的内容。

2)在一个查询中抓取用户请求的所有内容。 Ajax页面。