MySQL 分页过滤器问题



我正在尝试在php - mysqli上进行分页和三个过滤器。MySQL查询适用于PhpMyAdmin,但不适用于php页面。怎么了?

<?php
include("header.php");
if(isset($_GET['numara'], $_GET['adsoyad'], $_GET['firmaadi']))
{
    $numaram=$_GET['numara'];     //numbers
    $adsoyad=$_GET['adsoyad'];    //FirstName and LastName
    $firmaadi=$_GET['firmaadi'];  //Company Name
}
    else
{
    $numaram="";
    $adsoyad="";
    $firmaadi="";
}
$sorgu = mysqli_query($mysqllink,"SELECT `id`, `numara`, `tarih`, `adsoyad`, `firmaadi` FROM `numaralar` WHERE (`numara` like '%$numaram%' or `adsoyad` like '%$adsoyad%' or `firmaadi` like '%$firmaadi%') order by `id`");
    if (isset($_GET["syf"]))
    {
        $syf=$_GET["syf"];
    }
    else
    {
        $syf=1;
    }
    $limit=3; 
    $kayitSayisi=mysqli_num_rows($sorgu);
    $sayfaSayisi=ceil($kayitSayisi/$limit);
    $baslangic=($syf*$limit)-$limit;
?>
<div id="divin">
<form method="GET" action="numaralistele2.php">
    Numara: <input type="textbox" name="numara"> Adı Soyadı: <input type="textbox" name="adsoyad"> Firma Adı: <input type="textbox" name="firmaadi"> <input type="submit" name="button" id="button" value="Arama Yap">
</form>
<?php
    $sorgu2=mysqli_query($mysqllink,"SELECT `id`, `numara`, `tarih`, `adsoyad`, `firmaadi` FROM `numaralar` WHERE (`numara` like '%$numaram%' or `adsoyad` like '%$adsoyad%' or `firmaadi` like '%$firmaadi%') order by `id` LIMIT $baslangic,$limit");
    echo "<table>";
    echo '<tr>
    <td>Silme</td><td>ID</td><td>NUMARA</td><td>TARİH</td><td>ADI SOYADI</td><td>FİRMA ADI</td>
    </tr>';
    while($kayit=mysqli_fetch_array($sorgu2)){
        echo '<tr>';
        echo '<td><a href="delete.php?id='.$kayit[0].'">Sil</a></td>';
        echo '<td>'.$kayit[0].'</td>';
        echo '<td>'.$kayit[1].'</td>';
        echo '<td>'.$kayit[2].'</td>';
        echo '<td>'.$kayit[3].'</td>';
        echo '<td>'.$kayit[4].'</td>';
        echo '</tr>';
    }
    echo '</table>';
        if ($sayfaSayisi>1){
        echo '<div style="margin-left:42%; position:absolute; bottom:0;" class="sayfalama">';
        for ($i=1;$i<=$sayfaSayisi;$i++){
        echo '<a href="numaralistele2.php?numara='.$numaram.'&adsoyad='.$adsoyad.'&firmaadi='.$firmaadi.'&syf='.$i.'"';
        if ($syf==$i){ echo 'class="syf_aktif"';}
        echo '>'.$i.'</a>';
        }
        echo '</div>';
        }
        echo '</div>';      
?>
<?php
include("footer.php");
?>
  1. numara平均数
  2. adsoyad的意思是名字和姓氏
  3. firmaadi 表示公司名称

我正在尝试在文本框中制作过滤器,但它不会过滤任何内容并加载所有内容。

你必须像这样编写查询:

$sorgu2=mysqli_query($mysqllink,"SELECT `id`, `numara`, `tarih`, `adsoyad`, `firmaadi` FROM `numaralar` WHERE (`numara` like '%$numaram%' AND `adsoyad` like '%$adsoyad%' AND `firmaadi` like '%$firmaadi%') order by `id` LIMIT $baslangic,$limit");
好的,

我终于解决了我的代码。 工作完美,但不知道"<>"是什么意思。谁知道呢?为什么我必须在代码中使用"<>"?

<?php
include("header.php");
if(isset($_GET['numara']) || isset($_GET['adsoyad']) || isset($_GET['numara']))
{
    $ss[0]=$_GET['numara']<>''?" numara like '%".$_GET['numara']."%'" :""; //bunları bilmiyorum öğren...
    $ss[1]=$_GET['adsoyad']<>''?" adsoyad like '%".$_GET['adsoyad']."%'" :""; //bunları bilmiyorum öğren...
    $ss[2]=$_GET['firmaadi']<>''?" firmaadi like'%".$_GET['firmaadi']."%'" :""; //bunları bilmiyorum öğren...

    $numaram=$_GET['numara'];
    $adsoyad=$_GET['adsoyad'];
    $firmaadi=$_GET['firmaadi'];
    $ss=array_filter($ss);
    $sorgui=implode(" and ",$ss);  //dizilerin arasına and koydu
    $sorgui=count($ss)>0? "where $sorgui":"";
}
    else
{
    $sorgui="";
    $numaram="";
    $adsoyad="";
    $firmaadi="";
}

$sorgu = mysqli_query($mysqllink,"SELECT `id`, `numara`, `tarih`, `adsoyad`, `firmaadi` FROM `numaralar`  $sorgui order by `id`");
    if (isset($_GET["syf"]))
    {
        $syf=$_GET["syf"];
    }
    else
    {
        $syf=1;
    }
    $limit=3; 
    $kayitSayisi=mysqli_num_rows($sorgu);
    $sayfaSayisi=ceil($kayitSayisi/$limit);
    $baslangic=($syf*$limit)-$limit;
?>
<div id="divin">
<form method="GET" action="numaralistele2.php">
    Numara: <input type="textbox" name="numara"> Adı Soyadı: <input type="textbox" name="adsoyad"> Firma Adı: <input type="textbox" name="firmaadi"> <input type="submit" name="button" id="button" value="Arama Yap">
</form>
<?php
    $sorgu2=mysqli_query($mysqllink,"SELECT `id`, `numara`, `tarih`, `adsoyad`, `firmaadi` FROM `numaralar`  $sorgui order by `id` LIMIT $baslangic,$limit");
    echo "<table>";
    echo '<tr>
    <td>Silme</td><td>ID</td><td>NUMARA</td><td>TARİH</td><td>ADI SOYADI</td><td>FİRMA ADI</td>
    </tr>';
    while($kayit=mysqli_fetch_array($sorgu2)){
        echo '<tr>';
        echo '<td><a href="delete.php?id='.$kayit[0].'">Sil</a></td>';
        echo '<td>'.$kayit[0].'</td>';
        echo '<td>'.$kayit[1].'</td>';
        echo '<td>'.$kayit[2].'</td>';
        echo '<td>'.$kayit[3].'</td>';
        echo '<td>'.$kayit[4].'</td>';
        echo '</tr>';
    }
    echo '</table>';
        if ($sayfaSayisi>1){
        echo '<div style="margin-left:42%; position:absolute; bottom:0;" class="sayfalama">';
        for ($i=1;$i<=$sayfaSayisi;$i++){
        echo '<a href="numaralistele2.php?numara='.$numaram.'&adsoyad='.$adsoyad.'&firmaadi='.$firmaadi.'&syf='.$i.'"';
        if ($syf==$i){ echo 'class="syf_aktif"';}
        echo '>'.$i.'</a>';
        }
        echo '</div>';
        }
        echo '</div>';      
?>
<?php
include("footer.php");
?>

最新更新