0

PHP my admin データベースから画像を取得し、Android リスト ビューに表示するにはどうすればよいですか? 名前とIDを取得するための次のスクリプトがあります。しかし、画像を取得する方法もわかりません。同じクエリを使用して画像を取得するにはどうすればよいですか?

    <?php

/*
Our "config.inc.php" file connects to database every time we include or require
it within a php script.  Since we want this script to add a new user to our db,
we will be talking with our database, and therefore,
let's require the connection to happen:
*/
require("config.php");

//initial query
$query = "Select * FROM channels";

//execute query
try {
    $stmt   = $db->prepare($query);
    $result = $stmt->execute($query_params);
}
catch (PDOException $ex) {
    $response["success"] = 0;
    $response["message"] = "Database Error!";
    die(json_encode($response));
}

// Finally, we can retrieve all of the found rows into an array using fetchAll 
$rows = $stmt->fetchAll();


if ($rows) {
    $response["success"] = 1;
    $response["message"] = "Post Available!";
    $response["posts"]   = array();

    foreach ($rows as $row) {
        $post             = array();
        $post["channelname"] = $row["channelname"];
        $post["channelid"]    = $row["channelid"];



        //update our repsonse JSON data
        array_push($response["posts"], $post);
    }

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


} else {
    $response["success"] = 0;
    $response["message"] = "No Channel Available!";
    die(json_encode($response));
}

?>
4

3 に答える 3

0

テーブルに次の列があるとします

1) ID 2) 名前 3) 画像

画像がデータベースに保存されている場合、imageフィールドのタイプは次のようになりますblob

データベースから画像を取得するコードは次のとおりです

<?php
$host="your_hostname";
$user="your_databaseuser";
$pass="your_database_password";
$db="database_name_to_use";

// just so we know it is broken
 error_reporting(E_ALL);
 // some basic sanity checks
 if(isset($_GET['id']) && is_numeric($_GET['id'])) {
     //connect to the db
     $link = mysql_connect("$host", "$user", "$pass")
     or die("Could not connect: " . mysql_error());

     // select our database
     mysql_select_db("$db") or die(mysql_error());

     // get the image from the db
     $sql = "SELECT image FROM test_image WHERE id=" .$_GET['id'] . ";";

     // the result of the query
     $result = mysql_query("$sql") or die("Invalid query: " . mysql_error());

?>

画像はデータベースから取得され$result、次のようにコンテンツ タイプを設定することで Html に表示されます。

<?php
     // set the header for the image
     header("Content-type: image/jpeg");
     echo mysql_result($result, 0);

     // close the db link
     mysql_close($link);
 }
 else {
     echo 'Please use a real id number';
 }

?>

結果変数を post 変数に設定して、json 配列にバインドしてさらに使用することができます

于 2013-09-04T07:34:55.450 に答える
0

それはうまくいきますか、私はあなたのコメントの後にこれを編集しました

    <?php

/*
Our "config.inc.php" file connects to database every time we include or require
it within a php script.  Since we want this script to add a new user to our db,
we will be talking with our database, and therefore,
let's require the connection to happen:
*/
require("config.php");

//initial query
$query = "Select * FROM channels";

//execute query
try {
    $stmt   = $db->prepare($query);
    $result = $stmt->execute($query_params);
}
catch (PDOException $ex) {
    $response["success"] = 0;
    $response["message"] = "Database Error!";
    die(json_encode($response));
}

// Finally, we can retrieve all of the found rows into an array using fetchAll 
$rows = $stmt->fetchAll();


if ($rows) {
    $response["success"] = 1;
    $response["message"] = "Post Available!";
    $response["posts"]   = array();

    foreach ($rows as $row) {
        $post             = array();
        $post["channelname"] = $row["channelname"];
        $post["channelid"]    = $row["channelid"];
        $post["image"]    = $row["content"];



        //update our repsonse JSON data
        array_push($response["posts"], $post);
    }

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


} else {
    $response["success"] = 0;
    $response["message"] = "No Channel Available!";
    die(json_encode($response));
}

?>
于 2013-09-04T07:29:11.897 に答える