Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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不显示结果_Php_Mysql - Fatal编程技术网

PHP sql不显示结果

PHP sql不显示结果,php,mysql,Php,Mysql,我有两个输入框,'person.tag_name'和'person.created_by',我将'person'从.js发布到.php 现在的问题是,它要求两个输入框都要字段化,只有数据才会显示,但是在我的sql语句中,我只匹配createdBy,而tag_name根本没有使用 总之: $postdata = file_get_contents("php://input"); $request = json_decode($postdata); $createdBy = $request

我有两个输入框,'person.tag_name'和'person.created_by',我将'person'从.js发布到.php

现在的问题是,它要求两个输入框都要字段化,只有数据才会显示,但是在我的sql语句中,我只匹配createdBy,而tag_name根本没有使用

总之:

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);    
$createdBy = $request->created_by;
$tagName = $request->tag_name;

if (!empty($createdBy) && !empty($tagName)){
    $Where = "created_by LIKE '%$createdBy%' AND name LIKE '%$tagName%'";
}    
else if (!empty($createdBy)){
     $Where = "created_by LIKE '%$createdBy%'";
}    
else if (!empty($createdBy)){
     $Where = "name LIKE '%$tagName%'";
}



// Create connection
$con = new mysqli($servername, $username, $password, $db);

// Check connection
 if ($con->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * FROM test.test_tag WHERE deleted_by is null AND $Where;" ;

$qry = $con ->query($sql);

$data = array();

if ($qry->num_rows > 0) {
    // output data of each row
    while($row = $qry->fetch_object()) {
        $data[] = $row;
    }
} else {
    $data[] = null;
}

$con->close();
  • 如果2个输入框中只有1个输入框已输入,我将不会收到数据
  • 我将只接收数据,如果2/2输入框是现场
  • 尝试删除
    $tagName=$request->tag\u name并返回数据
php代码:

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);    
$createdBy = $request->created_by;
$tagName = $request->tag_name;

if (!empty($createdBy) && !empty($tagName)){
    $Where = "created_by LIKE '%$createdBy%' AND name LIKE '%$tagName%'";
}    
else if (!empty($createdBy)){
     $Where = "created_by LIKE '%$createdBy%'";
}    
else if (!empty($createdBy)){
     $Where = "name LIKE '%$tagName%'";
}



// Create connection
$con = new mysqli($servername, $username, $password, $db);

// Check connection
 if ($con->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * FROM test.test_tag WHERE deleted_by is null AND $Where;" ;

$qry = $con ->query($sql);

$data = array();

if ($qry->num_rows > 0) {
    // output data of each row
    while($row = $qry->fetch_object()) {
        $data[] = $row;
    }
} else {
    $data[] = null;
}

$con->close();

请协助。

如果需要,请从数据库接收数据

请检查您的查询

$sql = "SELECT * 
        FROM piwik.piwik_tag 
        WHERE deleted_by is null 
          AND created_by LIKE '%$createdBy%';";
它只创建了,查询中没有标记名


所以这里说,从数据库中获取数据只需要created_by

我找到了一种解决方法,在将
$tagName
分配给它之前,包括检查
$request->tagName
是否存在的条件

但是我不知道为什么如果没有这个条件,数据将无法检索,因为我会检查代码是否仍然会继续运行sql语句,并使用正确的语句

if (!empty($request->created_by)){
    $createdBy = $request->created_by;
}

if (!empty($request->tag_name)){
    $tagName = $request->tag_name;
}

感谢您的回复。

在此代码中您没有运行SQL查询。您也没有回显任何内容。您需要创建SQL连接并使用它。。。还要注意的是,创建这样的查询允许SQL注入攻击。这不仅仅是“相关部分”,没有上下文也没用。嗨,里格斯,实际上那不是代码,我只是添加了
if else$where语句
,这样你们就知道添加and in SQL语句不是我要问的。不管怎么说,重要的是它让事情变得更清楚了。谢谢实际上“Nicker”不清楚,让他澄清问题。嗨,谢谢,是的,但这不是我的观点,我的观点是在我的查询中我甚至没有使用tag_名称,但为什么我需要在tag_名称输入框中输入字段来检索数据。太好了,所以你的意思是如果使用created_检索数据,我为什么需要tag_名称。没有问题不发布tag_name。还有一件事,如果您需要使用tag_name从db创建,并使用带有tag_name的一个and子句的查询,即和tag_name类似“%$tag_name%”的查询。您好,现在查看我的更新代码,这满足了您的关注,我已经在查询中添加了tag_name。但是这个问题仍然存在,所以我想说的是,tag_的名字并不重要。