我是PHP和MYSQL的新手,我试图获取状态栏中未更新(或接收)的数据库中所有行。

提取单行值时,此代码段非常适用。尝试在代码中插入while循环时。使用回显时,它显示空白响应。

保存时,在编辑器中不会显示错误消息,甚至显示“ x”。使用浏览器调用和测试url时,只是一个空白屏幕。我在Hostinger中使用文件管理器来获取我的php文件和mysql数据库。

// array for JSON response
$response = array();

try {
    $sql = "SELECT * FROM Complaints where status=''";

    if (mysqli_query($conn, $sql)) {
        if (mysqli_num_rows(mysqli_query($conn, $sql)) > 0) {
            $response["success"] = 1;
            $response["message"] = "Request successfully created.";

            $row = mysqli_fetch_array(mysqli_query($conn, $sql));

            $photo = $row['id'];
            $name = $row['name'];
            $sin = $row['sin'];
            $cp_no = $row['cp_no'];
            $complaint = $row['complaint'];
            $landmark = $row['landmark'];

            $response["success"] = 1;
            $response["name"] = $name;
            $response["id"] = $photo;
            $response["sin"] = $sin;
            $response["cp_no"] = $cp_no;
            $response["complaint"] = $complaint;
            $response["landmark"] = $landmark;
        } else {
            //no items found
            $response["success"] = 0;
            $response["message"] = "No items found.";
        }

        echo json_encode($response);
        mysqli_close($conn);
    } else {
        //failed to fetch
        $response["success"] = 0;
        $response["message"] = "Oops! an Error occured.";

        //echoing JSON response
        echo json_encode($response);
    }
    mysqli_close($conn);
} catch (Exception $e) {
    echo "exception";
    // failed to fetch
    $response["success"] = 0;
    $response["message"] = 'message: ' . $e->getMessage();

    // echoing JSON response
    echo json_encode($response);
}


这是到目前为止我尝试过的代码

while ($row = mysqli_fetch_array(mysqli_query($conn, $sql))) {
    $photo = $row['id'];
    $name = $row['name'];

    $response["names"] = $name;
    $response["data"] = $photo;

    // $response[$i]=$row;
}


从数据库中获取的数据随后将转换为json格式。

然后将在VB.net上解析hich
此代码也可以在单行值上正常工作

VB.NET代码

    Dim request As HttpWebRequest
    Dim response As HttpWebResponse = Nothing
    Dim reader As StreamReader

    request = DirectCast(WebRequest.Create("http://u969542451.hostingerapp.com/Get_Data.php"), HttpWebRequest)

    response = DirectCast(request.GetResponse(), HttpWebResponse)
    reader = New StreamReader(response.GetResponseStream())

    Dim rawresp As String
    rawresp = reader.ReadToEnd()
    TextBox2.Text = rawresp.ToString
    MsgBox(rawresp.ToString)

    Dim jsonResulttodict = JsonConvert.DeserializeObject(Of Dictionary(Of String, Object))(rawresp)
    Dim dataItem = jsonResulttodict.Item("id")
    Dim nameItem = jsonResulttodict.Item("name")
    Dim SINItem = jsonResulttodict.Item("sin")
    Dim cpItem = jsonResulttodict.Item("cp_no")
    Dim compItem = jsonResulttodict.Item("complaint")
    Dim LMItem = jsonResulttodict.Item("landmark")
    Dim typeItem = "COMPLAINT"

    dgvSearch.Rows.Add(SINItem, nameItem, dataItem, cpItem, compItem, LMItem, typeItem)

最佳答案

你能这样尝试吗

try {
    $response = array();
    $i=0;
    $sql = "SELECT * FROM Complaints where status=''";
    $data = mysqli_query($conn, $sql)
    if (mysqli_num_rows($data) > 0) {
        while ($row = mysqli_fetch_array($data)) {
            $photo = $row['id'];
            $name = $row['name'];

            $response[$i]["names"] = $name;
            $response[$i]["data"] = $photo;
            $i++;
        }
    }
}

10-06 07:39
查看更多