Выборка из БД
Как вывести всё содержимое базы данных?
В базе данных есть таблица: songs. В ней поля: id и title . id title 1 song1 2 song2 Код jQuery
$.ajax({
type: "POST",
url: "/ajax.php",
dataType: "json",
async: false,
success: function(data){
// получения данных: song1, song2
}
});
Код из ajax.php
if (!mysql_connect(localhost, admin, root))
{
exit(mysql_error());
}
mysql_select_db("withmusic",mysql_connect(localhost, admin, root));
mysql_set_charset( 'utf8' );
$query = mysql_query("SELECT * FROM songs ORDER BY id DESC");
$result = mysql_fetch_array($query);
do{
echo json_encode($result['title']);
echo "<br/>";
}
while ($result = mysql_fetch_array($query));
Как мне вывести и song1 и song2? |
header('Content-Type: application/json');
$json = array('status' => false);
$bd = new MySQLi('host', 'user', 'password', 'bd');
$query = $bd->query('SELECT * FROM `songs` ORDER BY `id` DESC');
$len = $query->num_rows;
if($len) {
$json['status'] = true;
$json['data'] = array();
for($i=0; $i<$len; $i++) $json['data'][$i] = $query->fetch_assoc();
}
$bd->close();
echo json_encode($json);
$.post('/ajax.php', {}, function(json) {
json = JSON.parse(json);
if(json.status) {
//code
// for(var i=0; i<json.data.length; i++) alert(json.data[i].title);
}
else alert('Error!');
});
|
Спасибо большое, а можешь подсказать, как теперь правильно вывести?
вместо //code пишу, например, alert(); не работает. for(var i=0; i<json.data.length; i++) alert(json.data[i].title); Эта строка, так же, ничего не дает. |
1. Никогда не вставляйте код подключения к базе данных в скрипт. Вы должны выработать для себя как аксиому. Это Singleton одиночка должны быть во всех ваших проектах.
2. close используется когда надо принудительно закрыть соединение, действие происходит автоматически 3. ид в таблицах обычно инкремент, так что ORDER BY `id` DESC' лишнее Мой вариант:)
<?php
//file dbConnect.php
class DbConnect
{
private static $instance = null;
final private function __construct(){}
final private function __clone(){}
public static function getInstance()
{
if (!self::$instance) {
if (!function_exists('mysqli_connect')) {
die('Адаптер MySQL mysqli не доступен');
}
self::$instance = mysqli_connect(
HOSTNAME,
USERNAME,
PASSWORD,
DBNAME
) or die("Не удалось подключиться к MySQL: ("
. self::$instance->connect_errno . ") "
. self::$instance->connect_error);
mysqli_set_charset(self::$instance, "utf8");
}
return self::$instance;
}
}
class DbFunction
{
private $db;
public function __construct()
{
$this->db = DbConnect::getInstance();
}
public function load_table($table)
{
$resultArray = array();
if ($result = $this->db->query("SELECT * FROM $table")) {
while ($row = $result->fetch_array(MYSQL_ASSOC)) {
$resultArray[] = $row;
}
}
return $resultArray;
}
}
Используем
require_once "db.config.php"; // в нем задаем HOSTNAME, USERNAME, PASSWORD, DBNAME
require_once "dbConnect.php";
$db = new DbFunction();
$songs= $db->load_table("songs");
echo json_encode($songs);
die; //прекращаем работу
|
Всем, спасибо, получилось)
|
| Часовой пояс GMT +3, время: 19:27. |