Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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 JQuery搜索没有';我找不到所有的记录_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Php JQuery搜索没有';我找不到所有的记录

Php JQuery搜索没有';我找不到所有的记录,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我创建了一个页面,您可以在其中搜索数据库(PHP、MySQL、JQuery)。 它工作正常,但我有一个问题,我真的不明白。 如果我搜索“abbandonato”,它可以准确地工作,但是如果我搜索“abband”、“abbando”、“abbandon”、“abbandona”(以及字符串的其他部分),它就不能工作。返回的错误(警报中的文本)为“SyntaxError:输入意外结束”。为什么?如果查询找到“abbandonato”,则查询还必须找到字符串的一部分(“abbando”、“abband

我创建了一个页面,您可以在其中搜索数据库(PHP、MySQL、JQuery)。 它工作正常,但我有一个问题,我真的不明白。 如果我搜索“abbandonato”,它可以准确地工作,但是如果我搜索“abband”、“abbando”、“abbandon”、“abbandona”(以及字符串的其他部分),它就不能工作。返回的错误(警报中的文本)为“SyntaxError:输入意外结束”。为什么?如果查询找到“abbandonato”,则查询还必须找到字符串的一部分(“abbando”、“abbandon”、…)。 换句话说,我没有这个问题

代码如下:

data2.php

$(function() {
                // Funzione per l'autocomplete
                $("#formSearch").submit(function(e) {
                    //Annulla default form action
                    e.preventDefault();

                    var ricerca= $("#tbSearch").val();

                    // Se il campo ricerca non è vuoto carico i dati
                    if ($("#tbSearch").val().length > 0) {
                        $('#searchResults').html("Caricamento...");
                        $.ajax({                                      
                            url: 'data3.php',                  
                            method: 'POST',
                            asynch: false,
                            data: {
                                dati: 1,
                                ricerca:ricerca
                            },        // Argomenti mandati in POST

                            dataType: 'json',                  
                            success: function(data) {
                                $('#searchResults').html("Caricamento...");

                                var stringa = "";
                                for(var i in data) {
                                    stringa += '<tr><td>' + data[i]['disc'] + '</td>';
                                    stringa += '<td>' + data[i]['frm'] + '</td>';
                                    stringa += '<td>' + data[i]['lex'] + '</td></tr>';
                                }

                                $('#searchResults').html(stringa);
                            },
                            error: function(xhr, status, error) {
                                alert(error);
                            }
                        });
                    }
                });
            });
$(函数(){
//每l'autocomplete的Funzione
$(“#formSearch”).submit(函数(e){
//环违约形式诉讼
e、 预防默认值();
var ricerca=$(“#tbSearch”).val();
//这是一个非常有趣的故事
if($(“#tbSearch”).val().length>0){
$('#searchResults').html(“Caricamento…”);
$.ajax({
url:'data3.php',
方法:“POST”,
asynch:false,
数据:{
达蒂:1,,
里塞卡:里塞卡
},//Argomenti mandati在POST中
数据类型:“json”,
成功:功能(数据){
$('#searchResults').html(“Caricamento…”);
var stringa=“”;
用于(数据中的var i){
stringa+=''+数据[i]['disc']+'';
stringa+=''+数据[i]['frm']+'';
stringa+=''+数据[i]['lex']+'';
}
$('#searchResults').html(stringa);
},
错误:函数(xhr、状态、错误){
警报(错误);
}
});
}
});
});
data3.php

<?php   
require('inc/db_connection.php');


$dati = $_POST["dati"];

if($dati == 1) {

    // Query    
    $result = mysql_query("SELECT tab1.disc, tab1.frm, tab2.lex lex
                           FROM tab1, tab2 
                           WHERE tab1.disc = tab2.disc
                           AND BINARY LOWER(frm) LIKE BINARY LOWER('" . trim($_POST["ricerca"]) . "%')
                           LIMIT 0,500");
    // Array per AJAX
    $array_risultati = array();

    if (mysql_error())
        echo json_encode(array(mysql_error()));
    else {
        // Popolazione $array_risultati
        while ($row = mysql_fetch_assoc($result)) {
            $array_risultati[] = $row;
        }

        echo json_encode($array_risultati);
    }
}
试试:

…较低的(frm)像二进制CONCAT(较低(“”).trim($\u POST[“ricerca”]),“%”.“”)…


我认为发生的情况是
LOWER()
也在转换
'%'
,可能会导致问题。将
'%'
移出
LOWER()
,看看会发生什么。

您没有在PHP代码中传递JSON头。 在
json\u encode

header('Content-Type: application/json');

尝试从查询中删除
二进制文件
,然后像这样尝试

mysql_query("SELECT tab1.disc, tab1.frm, tab2.lex lex
                FROM tab1, tab2 
                WHERE tab1.disc = tab2.disc
                AND LOWER(frm) LIKE LOWER('".trim($_POST["ricerca"])."%')
            LIMIT 0,500");
可以是
二进制
%
转换为附加到搜索值的其他代码,并生成数据库中找不到的其他单词

请参阅

如果需要进行区分大小写的匹配,请将列声明为 二进制的不要在查询中使用LIKE BINARY来强制转换非二进制 柱如果这样做,MySQL将不会在该列上使用任何索引


可能是函数未发送JSON。从jQuery中删除
dataType:'json'
,并打印来自服务器的数据。它的
async:false,
not
asynch:false,
@php>json是空的,但我不明白为什么!如果我将查询放在PHPMyAdmin中,它可以正常工作。@RohanKumar:谢谢,但仍然不能工作。删除
dataType:'json'
并添加
console.log(数据)
success之后:函数(数据){
并告诉我输出或在php代码
ini\u集('display\u startup\u errors',1);ini\u集('display\u errors',1);错误报告(-1);