Php 显示多个表中的大型记录

Php 显示多个表中的大型记录,php,mysql,Php,Mysql,大家好,我的朋友们,我面临一个问题,当我需要显示多个表中的所有购买列表时。让我们说5个表命名为“片剂”、“糖浆”、“胶囊”、“注射剂”、“烧瓶”,每个用户的购买都必须显示在一个页面中,假设每个表中有20条记录,那么总共将显示100行。问题是如何只显示每个表中的10行,但提供“下一行”和“上一行”按钮,虽然每个“下一步”按钮都不会影响其他表。下面是代码。问题是我有超过1百万的用户,而且几乎所有用户都在同一时间查看他们的购买,而我的服务器也不见了。感谢您的帮助。这是提供的源代码 $rs = mysq

大家好,我的朋友们,我面临一个问题,当我需要显示多个表中的所有购买列表时。让我们说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
$rs=mysql\u查询(“从平板电脑中选择*,其中zomname=”。$\u会话['username']。“;”,$conn)或die(“无法从stud获取记录”);
$rs2=mysql_查询(“从zomname=”、$conn)或die(“无法从stud获取记录”);
$rs3=mysql\u查询(“从封装中选择*,其中zomname=”。$\u会话['username']。“'LIMIT 10;”,$conn)或die(“无法从stud获取记录”);
$rs4=mysql_查询(“从注入中选择*,其中zomname=”。$_会话['username']。“;”,$conn)或die(“无法从stud获取记录”);
$rs5=mysql_查询(“从flask中选择*,其中zomname=”。$_会话['username']。“;”,$conn)或die(“无法从stud中获取记录”);
$count=mysql\u num\u行($rs);
$count2=mysql\u num\u行($rs2);
$count3=mysql\u num\u行($rs3);
$count4=mysql\u num\u行($rs4);
$count5=mysql\u num\u行($rs5);
如果($count>0 | |$count2>0 | |$count3>0 | |$count4>0 | |$count5>0)
{
回声“;
回声“
购买

”; 回声“; echo“NamaBatchh价格折扣PaidProductBranchResregionalTime”; //打印平板电脑数据 $i=0;
虽然($i您认为一次从数据库中以10个数据块的形式提取查询会减少您的净数据库负载吗?假设您有大量用户执行大量小请求,您的净负载会增加。更不用说确保在实时事务处理时显示所有数据的健壮性问题了在分页操作期间固化

mysql_u*是无润滑的,看看mysqli

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

我的建议:

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


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

以下是我的建议:我认为您必须使用一些框架,如果可以的话,我想您应该更改您的数据库结构。因为您可以拥有“片剂”、“糖浆”、“胶囊”、“注射剂”、“烧瓶”的MedicineType表如果您将来有另一个类型和Medicines表(其中一个字段应为MedicineType(ID)),那么下一个和上一个字段都可以使用AJAX。谢谢你们,我将尝试按照您的建议找到方法。有人知道我应该在这里实现AJAX方法的示例吗?AJAX是否会占用很多加载时间?谢谢。