Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL Select在Select中不接受x,如%y%_Php_Mysql - Fatal编程技术网

Php SQL Select在Select中不接受x,如%y%

Php SQL Select在Select中不接受x,如%y%,php,mysql,Php,Mysql,我希望这段代码在底部接受多个WHERE参数,但当添加的文本起作用时,它不会返回任何内容。它返回不使用过滤器时应该返回的内容 我试图做的是从发布到PHP代码中的用户输入数据中过滤从内部查询得到的结果 在这一点上,任何建议都会有所帮助 $OgrenciNo= " AND OgrenciNo LIKE %1005%"; $sth = $conn->prepare('SELECT t.* FROM (SELECT ogrenciler.OgrenciNo, ogrenciler.a

我希望这段代码在底部接受多个WHERE参数,但当添加的文本起作用时,它不会返回任何内容。它返回不使用过滤器时应该返回的内容

我试图做的是从发布到PHP代码中的用户输入数据中过滤从内部查询得到的结果

在这一点上,任何建议都会有所帮助

    $OgrenciNo= " AND OgrenciNo LIKE %1005%";
    $sth = $conn->prepare('SELECT t.* FROM (SELECT ogrenciler.OgrenciNo, ogrenciler.adsoyad as adsoyad1,
        dersler.Ders, dersler.DersKodu, tarih.Tarih, ogretmenler.isim, 
        login.adsoyad, onayturu.Onay, mazeretturu.tur,  
        mazeretaciklama.Aciklama, mazeretaciklama.LogTarihi
        FROM ogrenciler, tarih, aratablo, ogretmenler,
        mazeretaciklama, login, dersler, mazeretturu, onayturu
        WHERE aratablo.AciklamaID = mazeretaciklama.AciklamaID
        AND aratablo.TarihID = tarih.TarihID
        AND aratablo.DersID = dersler.DersID
        AND aratablo.OnaylayanID = login.OnaylayanID
        AND aratablo.OnayID = onayturu.OnayID
        AND aratablo.Mazturu = mazeretturu.Mazturu
        AND dersler.OgrGorID = ogretmenler.OgrGorID
        AND mazeretaciklama.OgrenciNo = ogrenciler.OgrenciNo) t
        WHERE LogTarihi > "1900-01-01"
    '.$OgrenciNo
    );
    $sth->execute();
正常结果如下:

array (size=2)
  0 => 
    array (size=11)
      'OgrenciNo' => string '1005.02021' (length=10)
      'adsoyad1' => string 'Örnek Öğrenci' (length=13)
      'Ders' => string 'Ders Adı' (length=8)
      'DersKodu' => string 'KOD000' (length=6)
      'Tarih' => string '2016-02-01' (length=10)
      'isim' => string 'Öğretim Elemanı İsmi' (length=20)
      'adsoyad' => string 'ROOT' (length=4)
      'Onay' => string 'Onaylandı' (length=9)
      'tur' => string 'Sınav' (length=5)
      'Aciklama' => string 'hastalık hastası' (length=16)
      'LogTarihi' => string '2016-02-09 09:14:52' (length=19)
  1 => 
    array (size=11)
      'OgrenciNo' => string '1035.02021' (length=10)
      'adsoyad1' => string 'ahmet mehmet' (length=12)
      'Ders' => string 'E-Ticaret Sistem Tasarımı' (length=25)
      'DersKodu' => string 'BIL446' (length=6)
      'Tarih' => string '2016-02-07' (length=10)
      'isim' => string 'Yrd. Doç. Dr. Mustafa Cem Kasapbaşı' (length=35)
      'adsoyad' => string 'Araş. Gör. Erdem Yavuz' (length=22)
      'Onay' => string 'Onaylanmadı' (length=11)
      'tur' => string 'Ders' (length=4)
      'Aciklama' => string 'cenaze vardı' (length=12)
      'LogTarihi' => string '2016-02-11 13:33:53' (length=19)
我试图过滤掉第二个结果,但类似的论点似乎不起作用

根据大众的需求,在我将其打印到p.s.页面后,这里是整个查询。唯一不同于顶部的是,它在末尾包含和OgrenciNo类似的%1005%:

 SELECT t.* FROM (SELECT ogrenciler.OgrenciNo, ogrenciler.adsoyad as adsoyad1, dersler.Ders, dersler.DersKodu, tarih.Tarih, ogretmenler.isim, login.adsoyad, onayturu.Onay, mazeretturu.tur, mazeretaciklama.Aciklama, mazeretaciklama.LogTarihi FROM ogrenciler, tarih, aratablo, ogretmenler, mazeretaciklama, login, dersler, mazeretturu, onayturu WHERE aratablo.AciklamaID = mazeretaciklama.AciklamaID AND aratablo.TarihID = tarih.TarihID AND aratablo.DersID = dersler.DersID AND aratablo.OnaylayanID = login.OnaylayanID AND aratablo.OnayID = onayturu.OnayID AND aratablo.Mazturu = mazeretturu.Mazturu AND dersler.OgrGorID = ogretmenler.OgrGorID AND mazeretaciklama.OgrenciNo = ogrenciler.OgrenciNo) t WHERE LogTarihi > "1900-01-01" AND OgrenciNo LIKE %1005%

你的情况应该是这样的。只需在其中加上'

 $OgrenciNo= " AND OgrenciNo LIKE '%1005%'";

空是什么意思?它实际上是空的,或者只是它们没有被设置,当我将它们与点作为字符串组合时,它们不会向字符串中添加任何内容。如果它们没有被设置,那么它会给你未定义的索引错误。好的,我已经暂时删除了它们,如果我能首先让这个部分工作,我会将它们添加到循环或其他东西中。但是它仍然不起作用。您应该发送整个查询,并将其与php variables.Yep连接起来。当然,我是个白痴,因为我错过了那部分。谢谢:是的,现在可以用了