Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Drupal > Работа с бд


Автор: dkfl 7.5.2010, 19:28
Привет всем.
Возникла необходимость извлекать из бд данные с помощью пхп кода, но как их обработать я не знаю.
Я разобрался как можно вставлять записи в бд, даже как можно их удалять. Делаю я это с помощью ф-ии db_query. Но вот когда запрос формирую db_query('SELECT * FROM {guestbook}'); то что делать дальше? Как мне отсюда получить чей-нибудь id или его месседж?

Автор: KuZyagroup 7.5.2010, 23:03
$result = db_query("...");

while ($row = db_fetch_object($result)): // $row - это одна строка результата
    $row->имя_поля  /* id или другое */
endwhile;

Автор: dkfl 8.5.2010, 10:34
Спасибо большое! Всё отлично работает. Я нашёл ещё один вариант как можно выводить например message:
Код

$sql = "SELECT * FROM {guestbook}";
$result = db_query(db_rewrite_sql($sql));

while ($row = db_fetch_object($result))
{
    echo $row->message;
}

Скажите пож-та чем он отличается от 1ого? Выводит все также как и первый код, но тут есть ф-ия db_rewrite_sql, я не понимаю что она делает..

И ещё вопрос. Как можно например вывести вторую запись? Или 3ью.

Автор: KuZyagroup 9.5.2010, 14:40
http://api.drupal.org/api/function/db_rewrite_sql/6
И ещё вопрос. Как можно например вывести вторую запись? Или 3ью.
Эта структура выведет и 2 и 3 и вообще все записи, если нужно конкретно вторую то добавь в sql запрос WHERE и что именно, допустим id = 2
P.S. Скорее всего в таблице guestbook поле id называется как-то по другому, и не именно оно вам нужно

Автор: dkfl 10.5.2010, 06:32
Ну если эта структура выдаёт все записи, то можно вот так выводить их echo row[1]->message; или echo row[3]->message;?

Автор: WolfAlone 11.5.2011, 09:58
По моему, в запрос достаточно добавить ключевое слово LIMIT. Тогда запрос будет выглядеть примерно так:
Код

$sql = "SELECT * FROM {guestbook} LIMIT 2, 1";


"2, 1" означает, что выбрать записи начиная со второй в количестве 1шт.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)