長くて忙しい質問をしてしまい、申し訳ありません。MySQL クエリとbase64_encode
画像ブロブ データから結果を取得し、それを配列に返し、最後json_encode
に結果を取得して、Android アプリケーションで使用できるようにしようとしています。Android 側のすべてが適切に設定されていることはわかっています。
私が持っているものは次のとおりです。
PHP/SQL:
$query = "SELECT `locations`.`businessName`, `photos`.`img`
FROM `locations`
JOIN `photos` ON `locations`.`co_id` = `photos`.`co_id`
WHERE `locations`.`businessName` = '".$companyID."'";
mysql_connect($dbserver, $dbusername, $dbpassword) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());
$result = mysql_query($query) or die(mysql_error());
$num = mysql_numrows($result);
$row = mysql_fetch_assoc($result);
$i = 0;
$rows = array();
while ($i < $num) {
$img = mysql_result($result, $i, "img");
$finalImg['img'] = base64_encode($img);
$businessName['businessName'] = mysql_result($result, $i, "businessName");
$finalArray = array_push($rows, $businessName, $finalImg);
// I know that array_push is pushing each variable as a separate array item
// I tried creating an alternative variable that amends the two together
// But that didn't work, result printed [Array, Array] [Array, Array]
// Was I on the right track?
$i++;
}
print json_encode($rows);
8 つの結果を返します。
[0] => {
["businessName"]=> string(12) "Some Company" }
[1] => {
["img"]=> string(145968) "/9j/4AAQSkZJRgABAQEAYABgAAD/4QIw..." }
必要なもの:
結果をこのように表示したいのですが、結果は 4 つしかありません。
[0] => {
["businessName"] => string(12) "Some Company"
["img"] => string(145968) "/9j/4AAQSkZJRgABAQEAYABgAAD/4QIw..." }
[1] => {
["businessName"] => string(12) "Some Company",
["img"] => string(145968) "/9j/4AAQSkZJRgABAQEAYABgAAD/4QIw..." }
Android アプリケーションのスニペット:
jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject jObject = jArray.getJSONObject(i);
String testerPhoto = jObject.getString("img");
//Process image. Base64 decode... etc
Android エラー:
07-18 11:28:52.573: E/onPostExecute(14562): FAILED: No value for img