php - 将两个查询合并为一个

标签 php mysql sql join

我想将两个查询合并为一个,但我不知道该怎么做。

这是一页:http://www.izvrsiteljsu.rs/prodaja/other.php

            <?php
            //Подаци за повезивање са базом података
                $username="*";
                $password="*";
                $database="*";
                $url= "*";

            //Подаци везани за категорију   
                $kat = "OST";
                $kategorija ="other";

            //Повезивање са базом података  
                mysql_connect($url,$username,$password);
                mysql_query("SET NAMES UTF8");
                @mysql_select_db($database) or die("Baza ne postoji.");
                $sql = "SELECT COUNT(PoslovniBroj) FROM $kat WHERE Status='' AND DrugaProdaja <>''"; 
                $rs_result = mysql_query($sql);     
                $row = mysql_fetch_row($rs_result); 
                $total_records = $row[0];
                $total_pages = ceil($total_records / 20);

            if (isset($_GET["page"])) 
            { 
                $page  = $_GET["page"];
            } 
            else 
            { 
                $page=1; 
            };  

            for ($i=1; $i<=$total_pages; $i++) 
            { 
            if ($i != $page)
                echo "<b><a style='margin: 5px 5px 5px 5px;' class='page gradient' href='$kategorija.php?page=".$i."'>".$i."</a></b>";
            if ($i==$page) 
                echo " <span class='page dark'>". $i . "</span> "; 
            };          
            ?>
            </p>
            <hr>
            <br>
            <div class="alert">
            <b><font color="red">Напомена:</font></b>
            <p align="justify">
            У циљу унапређења начела јавности, као једног од основних процесних начела у нас, као и у жељи за што ефикаснијем и економичнијем остварењу 
            циља намирења извршног повериоца, са једне и што повољнијег уновчења заплењених ствари извршног дужника са друге стране, одлучили смо да Вам
            на нашој интернет страници пружимо увид у заплењене ствари извршних дужника, као и њихову утврђену тржишну вредност.
            <br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Позивамо Вас да уколико сте заинтересовани за куповину неке од наведених ствари да нам се јавите било путем телефона на број (024) 554 266, 
            на e-mail: kontakt@izvrsiteljsu.rs или лично у нашим канцеларијама.                             
            </div>
            <?php

            //Podaci za mySQL

                $start_from = ($page-1) * 20;


            mysql_connect($url,$username,$password);
            mysql_query("SET NAMES UTF8");
            @mysql_select_db($database) or die("База не постоји.");

                $limit = 20;
                $sql = "SELECT * FROM $kat WHERE Status='' AND DrugaProdaja <>'' ORDER BY Sifra ASC LIMIT $start_from, $limit"; 
                $rs_result = mysql_query ($sql);    

            echo "<div class='imageRow'>";
            echo "<div class='set'>";

            while ($row = mysql_fetch_assoc($rs_result)) 
            { 
                $SifraR = $row['Sifra'];
                $PoslovniBrojR = $row['PoslovniBroj'];
                $OpisR = $row['Opis'];
                $VrednostR = $row['Vrednost'];
                $PrvaProdajaR = $row['PrvaProdaja'];
                $DrugaProdajaR = $row['DrugaProdaja'];
                $NapomenaR = $row['Napomena'];
                $StatusR = $row['Status'];

            echo "  <div class='single'>
                        <a class='fancybox-effects-d' href='../prodaja/images/$kat/$SifraR.JPG' rel='lightbox[plants]' title='$OpisR'><img src='../prodaja/images/$kat/$SifraR.JPG' alt='$OpisR' width='150' height='150'/></a>
                        <li><b>Шифра:</b>  <font color='red'>$SifraR</font></li>
                        <li><b>Вредност:</b> $VrednostR</li>     
                        <li><b>Продаја I:</b> $PrvaProdajaR</li>   
                        <li><b>Продаја II:</b> $DrugaProdajaR</li>  
                    </div>";
            } 
            echo "</div>";
            echo "</div>";

            echo "<center>";
                $sql = "SELECT COUNT(PoslovniBroj) FROM $kat WHERE Status='' AND DrugaProdaja <>''"; 
                $rs_result = mysql_query($sql);     
                $row = mysql_fetch_row($rs_result); 
                $total_records = $row[0];
                $total_pages = ceil($total_records / 20);

            echo "<hr>";
            for ($i=1; $i<=$total_pages; $i++) 
            { 
            if ($i != $page)
                echo "<b><a style='margin: 5px 5px 5px 5px;' class='page gradient' href='$kategorija.php?page=".$i."'>".$i."</a></b>";
            if ($i==$page) 
                echo " <span class='page dark'>". $i . "</span> "; 
            };
            echo "</center>";

            mysql_close();

            ?>

这是第二页:http://www.izvrsiteljsu.rs/prodaja/other.php

            <?php
            //Подаци за повезивање са базом података
                $username="*";
                $password="*";
                $database="*";
                $url= "*";

            //Подаци везани за категорију   
                $kat = "TEH";
                $kategorija ="tehnology";

            //Повезивање са базом података  
                mysql_connect($url,$username,$password);
                mysql_query("SET NAMES UTF8");
                @mysql_select_db($database) or die("Baza ne postoji.");
                $sql = "SELECT COUNT(PoslovniBroj) FROM $kat WHERE Status='' AND DrugaProdaja <>''"; 
                $rs_result = mysql_query($sql);     
                $row = mysql_fetch_row($rs_result); 
                $total_records = $row[0];
                $total_pages = ceil($total_records / 20);

            if (isset($_GET["page"])) 
            { 
                $page  = $_GET["page"];
            } 
            else 
            { 
                $page=1; 
            };              

            for ($i=1; $i<=$total_pages; $i++) 
            { 
            if ($i != $page)
                echo "<b><a style='margin: 5px 5px 5px 5px;' class='page gradient' href='$kategorija.php?page=".$i."'>".$i."</a></b>";
            if ($i==$page) 
                echo " <span class='page dark'>". $i . "</span> "; 
            };          
            ?>
            </p>
            <hr>
            <br>
            <div class="alert">
            <b><font color="red">Напомена:</font></b>
            <p align="justify">
            У циљу унапређења начела јавности, као једног од основних процесних начела у нас, као и у жељи за што ефикаснијем и економичнијем остварењу 
            циља намирења извршног повериоца, са једне и што повољнијег уновчења заплењених ствари извршног дужника са друге стране, одлучили смо да Вам
            на нашој интернет страници пружимо увид у заплењене ствари извршних дужника, као и њихову утврђену тржишну вредност.
            <br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Позивамо Вас да уколико сте заинтересовани за куповину неке од наведених ствари да нам се јавите било путем телефона на број (024) 554 266, 
            на e-mail: kontakt@izvrsiteljsu.rs или лично у нашим канцеларијама.                             
            </div>
            <?php

            //Podaci za mySQL

                $start_from = ($page-1) * 20;


            mysql_connect($url,$username,$password);
            mysql_query("SET NAMES UTF8");
            @mysql_select_db($database) or die("База не постоји.");

                $limit = 20;
                $sql = "SELECT * FROM $kat WHERE Status='' AND DrugaProdaja <>'' ORDER BY Sifra ASC LIMIT $start_from, $limit"; 
                $rs_result = mysql_query ($sql);    

            echo "<div class='imageRow'>";
            echo "<div class='set'>";

            while ($row = mysql_fetch_assoc($rs_result)) 
            { 
                $SifraR = $row['Sifra'];
                $PoslovniBrojR = $row['PoslovniBroj'];
                $OpisR = $row['Opis'];
                $VrednostR = $row['Vrednost'];
                $PrvaProdajaR = $row['PrvaProdaja'];
                $DrugaProdajaR = $row['DrugaProdaja'];
                $NapomenaR = $row['Napomena'];
                $StatusR = $row['Status'];

            echo "  <div class='single'>
                        <a class='fancybox-effects-d' href='../prodaja/images/$kat/$SifraR.JPG' rel='lightbox[plants]' title='$OpisR'><img src='../prodaja/images/$kat/$SifraR.JPG' alt='$OpisR' width='150' height='150'/></a>
                        <li><b>Шифра:</b>  <font color='red'>$SifraR</font></li>
                        <li><b>Вредност:</b> $VrednostR</li>     
                        <li><b>Продаја I:</b> $PrvaProdajaR</li>   
                        <li><b>Продаја II:</b> $DrugaProdajaR</li>  
                    </div>";
            } 
            echo "</div>";
            echo "</div>";

            echo "<center>";
                $sql = "SELECT COUNT(PoslovniBroj) FROM $kat WHERE Status='' AND DrugaProdaja <>''";        
                $rs_result = mysql_query($sql);     
                $row = mysql_fetch_row($rs_result); 
                $total_records = $row[0];
                $total_pages = ceil($total_records / 20);

            echo "<hr>";
            for ($i=1; $i<=$total_pages; $i++) 
            { 
            if ($i != $page)
                echo "<b><a style='margin: 5px 5px 5px 5px;' class='page gradient' href='$kategorija.php?page=".$i."'>".$i."</a></b>";
            if ($i==$page) 
                echo " <span class='page dark'>". $i . "</span> "; 
            };
            echo "</center>";

            mysql_close();

            ?>  

我想要一个查询将两页合二为一。我试过了

$sql = "SELECT COUNT(*) FROM TEH, NAM WHERE Status='' AND DrugaProdaja <>''"; 

$sql = "SELECT * FROM TEH, NAM WHERE Status='' AND DrugaProdaja <>'' ORDER BY Sifra ASC LIMIT $start_from, $limit"; 

但这行不通。

最佳答案

将您的 mysql 转换为 mysqli 并使用:http://us2.php.net/manual/en/mysqli.multi-query.php 无论如何,从 PHP 5.5 开始,Mysql 已被弃用。 或者你可以试试 UNION

(SELECT COUNT(*) FROM  NAM WHERE Status='' AND DrugaProdaja <>'')
UNION
(SELECT COUNT(*) FROM  TEH WHERE Status='' AND DrugaProdaja <>'')

但仍然将你的函数更改为 mysqli 或 PDO 你容易受到 sql 注入(inject)的攻击。 或者:

 SELECT (SELECT COUNT(*) FROM  NAM WHERE Status='' AND DrugaProdaja <>'')
    +
    (SELECT COUNT(*) FROM  TEH WHERE Status='' AND DrugaProdaja <>'') as SumCount

关于php - 将两个查询合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18608991/

相关文章:

mysql - 重新创建同名数据库后,magento 主页显示错误

sql - PostgreSQL 嵌套选择查询

sql - 备份和还原整个 Azure SQL 服务器(不是单个数据库)

php - 如何根据用户选择的下拉菜单更改 PHP 中的 SQL 查询

php - 清理/过滤用户评论的最佳方式?

php - 引用 - 这个错误在 PHP 中意味着什么?

mysql - 从 MySQL 中的分层数据生成基于深度的树(无 CTE)

mysql - 使用多列作为 mysql 的唯一标识符

php - 我的代码没有将数据插入数据库

php - 创建触发器 MYSQL PHPMyadmin 时出错