我正在尝试在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");
?>
-
numara
平均数 -
adsoyad
的意思是名字和姓氏 -
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");
?>