繁体   English   中英

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

[英]show large records from more than one table mysql

嗨,我所有的朋友,当我需要从一张以上的桌子上显示所有购买清单时,我面临一个问题。让我说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

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

mysql_ *被描述,请看mysqli

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

我的建议:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM