将两个查询合并为一个

时间:2013-09-04 08:32:15

标签: php mysql sql jointable

我想将两个查询加入一个,但我不知道如何。

这是一页: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"; 

但这不起作用。

1 个答案:

答案 0 :(得分:0)

将您的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注入。 或者:

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