我有2个输入框,' person.tag_name'和' person.created_by',我发布了#39; person'从.js到.php。
现在的问题是它需要只输出两个输入框才会显示数据,但是在我的sql语句中我只匹配createdBy而且tag_name根本没用。
总结:
$tagName = $request->tag_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();
请协助。
答案 0 :(得分:0)
数据接收是指数据库,如果
请检查您的查询
$sql = "SELECT *
FROM piwik.piwik_tag
WHERE deleted_by is null
AND created_by LIKE '%$createdBy%';";
它只有created_by,查询中没有tag_name。
所以这里说它只需要created_by来从数据库中获取数据
答案 1 :(得分:0)
我已经找到了一种方法来解决这个问题,方法是在为$request->tag_name
分配$tagName
之前包括检查if (!empty($request->created_by)){
$createdBy = $request->created_by;
}
if (!empty($request->tag_name)){
$tagName = $request->tag_name;
}
的条件是否存在。
但是,我不知道为什么没有这个条件,数据将无法检索,因为我检查代码仍然会继续运行带有正确语句的sql。
var tempPath = req.files.image.path;
var ext = path.extname(req.files.image.name).toLowerCase();
var targetPath = path.resolve('./profile_img/' + user_id + ext);
// var targetPath = path.resolve('D:/Alex/Project/img/' + user_id + ext);
if (ext === '.png' || ext === '.jpg' || ext === '.jpeg' || ext === '.gif')
{
var inStr = fs.createReadStream(tempPath);
var outStr = fs.createWriteStream(targetPath);
inStr.pipe(outStr);
//save profile image to database
connection.query('update users set img_path=? where id=?',[targetPath,user_id],
function(err,imagesave){
if(!err)
{
console.log('Profile Picture Uploaded ..');
res.json({'code':200,'status':'Success','message':'Profile Picture Uploaded ..'});
return;
}
else
{
console.log('can not update ..',err);
res.json({'code':200,'status':'Success','message':err});
return;
}
});
}
else
{
console.log('File type must be image',err);
res.json(500, {error: 'Only image files are allowed.'});
}
}
感谢您的所有回复。
答案 2 :(得分:-2)
name
是MYSQL关键字,不应将其用作列名。
如果你尽力将它包装成像这样的反复使用
`name` LIKE '%$tagName%'