Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.04.2014, 15:17
Новичок на форуме
Отправить личное сообщение для apaxicko Посмотреть профиль Найти все сообщения от apaxicko
 
Регистрация: 27.04.2014
Сообщений: 4

Выборка из БД
Как вывести всё содержимое базы данных?
В базе данных есть таблица: 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?
Ответить с цитированием
  #2 (permalink)  
Старый 27.04.2014, 18:41
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

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!');
});

Последний раз редактировалось ruslan_mart, 27.04.2014 в 18:52.
Ответить с цитированием
  #3 (permalink)  
Старый 27.04.2014, 19:36
Новичок на форуме
Отправить личное сообщение для apaxicko Посмотреть профиль Найти все сообщения от apaxicko
 
Регистрация: 27.04.2014
Сообщений: 4

Спасибо большое, а можешь подсказать, как теперь правильно вывести?
вместо //code пишу, например, alert(); не работает.

for(var i=0; i<json.data.length; i++) alert(json.data[i].title);

Эта строка, так же, ничего не дает.

Последний раз редактировалось apaxicko, 27.04.2014 в 19:39.
Ответить с цитированием
  #4 (permalink)  
Старый 27.04.2014, 20:06
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

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; //прекращаем работу
Ответить с цитированием
  #5 (permalink)  
Старый 27.04.2014, 20:22
Новичок на форуме
Отправить личное сообщение для apaxicko Посмотреть профиль Найти все сообщения от apaxicko
 
Регистрация: 27.04.2014
Сообщений: 4

Всем, спасибо, получилось)

Последний раз редактировалось apaxicko, 27.04.2014 в 20:32.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка из базы на основании результата выборки djonA Серверные языки и технологии 12 13.05.2013 14:37
Выборка элемента по динамично добавленному Id vladimirlip jQuery 6 19.12.2012 14:26
Выборка по значению css Telnet jQuery 5 29.05.2011 17:47
ajax выборка сообщений maximu$$ AJAX и COMET 5 05.05.2011 14:45
возможно: массив + выборка mvorobjov Общие вопросы Javascript 5 13.08.2008 17:54