Поскольку я упомянул не дублировать другие вопросы, заданные пользователями, в другом решении люди получают значения и печатают их на одной странице. Но мне нужно хранить данные mysql в php-массиве и передать этот массив в мое приложение для Android.
Ниже мой PHP-код, чтобы получить список данных из mysql db, теперь мне нужно хранить эти данные в массиве php, чтобы я мог отправить эти данные обратно в приложение Android, которое вызывает эту страницу. Итак, как я могу сохранить результаты в php-массиве.
$stmt = $linkID1->prepare("select slno,video_url,views,downloads from VideoUploads");
$stmt->execute();
$stmt->bind_result($slno,$video_url,$views,$downloads);
$stmt->fetch();
$stmt->close();
здесь $stmt-> bind_result() может хранить только один результат за раз, поэтому мне нужен массив, который может хранить все результаты, затем я передам этот массив моему приложению для Android.
Наконец, получил решение с некоторыми googling--
/* Get total number of records */
$sql = "SELECT count(*) FROM VideoUploads";
$retval = $conn->query($sql);
if(! $retval )
{
die($mysqli->error.__LINE__);
}
$rec_count = $retval->fetch_row();
$rec_count = $rec_count[0];
//getting all data from table
$sql = "SELECT * FROM VideoUploads ORDER BY slno DESC";
$retval = $conn->query($sql);
if(! $retval )
{
die($mysqli->error.__LINE__);
}
//creating an array for response
$response = array();
if ($retval->num_rows > 0) {
$response["wallpapers"] = array();
$response["success"] = 1;
$response["count"]= $rec_count;
while ($row = $retval->fetch_array()) {
// temp wallpaper array
$wallpaper = array();
$wallpaper["slno"] = $row["slno"];
$wallpaper["video_url"] = "http://xxxwebsiteurlxxx/".$row["video_url"];
$wallpaper["downloads"] = $row["downloads"];
$wallpaper["views"] = $row["views"];
// push all data into final response array
array_push($response["wallpapers"], $wallpaper);
}
// echoing JSON response
echo str_replace('\/','/',json_encode($response));
//echo str_replace('\/','/',json_encode($response,JSON_PRETTY_PRINT));
} else {
// no wallpapers found
$response["success"] = 0;
$response["message"] = "No Wallpapers found";
}
<?php
$resultdata = array();
$resultdata['data']=array();
$stmt = $linkID1->prepare("select slno,video_url,views,downloads from VideoUploads");
$stmt->execute();
$stmt->bind_result($slno,$video_url,$views,$downloads);
$stmt->fetch();
$result = $stmt->get_result();
while ($myrow = $result->fetch_assoc()) {
$rowdata = array('slno'=>$myrow->slno,'video_url' => $myrow->video_url, 'views' => $myrow->views,'downloads'=>$myrow->downloads);
array_push($resultdata['data'], $rowdata);
}
$stmt->close();
?>
Вы задаете два разных вопроса, так что вот два разных ответа:
Поскольку у вас уже есть эти значения в некоторых переменных, вы можете просто создать массив с ними:
$arrayOfStuff = array($slno,$video_url,$views,$downloads);
Но вы можете посмотреть на get_result
вместо bind_result
. Вы могли бы сделать что-то вроде:
$stmt = $linkID1->prepare("select slno,video_url,views,downloads from VideoUploads");
$stmt->execute();
$arrayOfStuff = $stmt->get_result()->fetch_array();
$stmt->fetch();
$stmt->close();
Ну, это зависит от вашего приложения. Думаю, вы пишете API, к которому он будет обращаться? Ожидает ли вас, что вы ответите с помощью json или xml или что-то еще? Вы, вероятно, будете делать что-то вроде этого:
echo json_encode($arrayOfStuff);
Но здесь действительно недостаточно информации, чтобы правильно ответить на эту часть вашего вопроса.