0

嗨,我所有的朋友,当我需要显示多个表中的所有购买清单时,我遇到了一个问题。让我们说 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
4

1 回答 1

0

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

mysql_* 被贬低了,看mysqli

正如 Pixel Maker 的评论所说 - 使用表格来跟踪类型,将类型硬编码到您的 php 中是未来痛苦的秘诀。

我的建议:

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

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

于 2013-05-16T13:47:48.530 回答