从PHP查询

时间:2017-11-07 09:35:32

标签: php mysql json

我想在php中进行查询,返回行列表并考虑使用json,我想在Android Studio中检索数据但这是另一个问题。

这是我的代码:

<?php
$username = $_POST['username'];

$host_name  = "host";
$database   = "database";
$user_name  = "username";
$password   = "password";

$connect = mysqli_connect($host_name, $user_name, $password, $database);

$select = "SELECT titulo,contenido,fecha,prioridad FROM tasker WHERE encargado='$username' AND estado = 0 ORDER BY fecha";

$result = $connect->query($select);
$rows = array();

while($r = mysqli_fetch_assoc($result)) {
    $rows[] = $r;
}

if ($result->num_rows > 0) {
  echo json_encode($rows);
} else {
    echo $rows;
}
$connect->close();
?>

你们有没有想过它为什么不能正常工作?

1 个答案:

答案 0 :(得分:1)

您的问题不包含自包含的示例。

假设您发布的代码是json.php,我们缺少的是index.php(调用json.php)和SQL代码(重新)创建基本任务表。

当我使用这个SQL时......

CREATE TABLE `tasker` (
    id INT(11) UNIQUE NOT NULL AUTO_INCREMENT,
    titulo VARCHAR(255) NOT NULL COMMENT "title",
    contenido VARCHAR(255) NOT NULL COMMENT "content",
    fecha DATETIME NOT NULL COMMENT "date",
    prioridad INT(11) NOT NULL COMMENT "priority",
    encargado VARCHAR(255) NOT NULL COMMENT "leader username",
    estado INT(11) NOT NULL COMMENT "state",
    PRIMARY KEY(`id`)
);
INSERT INTO `tasker` VALUES (NULL, 'Mr.', 'test1', NOW(), 1, "leader1", 0);
INSERT INTO `tasker` VALUES (NULL, 'Mrs.', 'test2', NOW(), 2, "leader1", 0);
INSERT INTO `tasker` VALUES (NULL, 'Ms.', 'test3', NOW(), 3, "leader2", 0);

...使用此index.php ...

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Green_Sam</title>
</head>
<body>

<form action="json.php" method="post">
<input type="text" name="username" placeholder="username">
<input type="submit" value="Submit">
</form>

</body>
</html>

..然后结果,当我访问index.php并搜索“leader1”时:

[{"titulo":"Mr.","contenido":"test1","fecha":"2017-11-07 11:40:23","prioridad":"1"},{"titulo":"Mrs.","contenido":"test2","fecha":"2017-11-07 11:40:25","prioridad":"2"}]

在评论中,您将问题描述为“它返回一个空数组”。 这意味着我的PHP / SQL代码修复了这个问题。 但同样,很难说,因为你没有发布一个不适合你的自包含的例子。

顺便问一下,你在哪里使用...... $ username = $ _POST ['username']; ......而是用... $ username = htmlspecialchars($ _POST ['username'],ENT_QUOTES); ...或类似的东西,以防止SQL注入和类似的问题。

此外,我建议您始终发布您明确启用错误/警告报告的示例:

error_reporting (-1);
ini_set ('display_errors', 'On');

然后至少我们知道你不太可能遇到任何与例如连接到数据库相关的基本错误。

相关问题