Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > проблема с DbSimple от dklab


Автор: pirrat 25.2.2007, 14:45
извините меня за глупый вопрос,но я толко начал изучать php и вот возникла проблема с библиотекой DbSimple !
есть простейший sql запрос,смысл которого вывести все записи из таблицы,обычно я его делал так:

Код

$valid= $db->query("SELECT * FROM test_pages");
while ($item=$db->fetchrow($valid)){
$link = "http://sait.ru/".$item['pages'].".htm";
 блаблбалабла
 $str= "<div>".$link."</div>
<div>".$item['text']."<br />".$item['title']."</div>";

echo $str;
}

и всё прекрасно работало,поставил DbSimple библиотеку,переделал запрос :

Код

$item= $db->selectRow("SELECT * FROM test_pages");
while ($item){
$link = "http://sait.ru/".$item['pages'].".htm";
 блаблбалабла
 $str= "<div>".$link."</div>
<div>".$item['text']."<br />".$item['title']."</div>";

echo $str;
}

естественно это работает не правильно-цикл проходит бесконечное число раз,а должен столько сколько строк в таблице
помогите плиз правильно составить запрос!

ЗЫ: я уже дописал в библиотеку свои функции и заюзал их,но это же не выход:

Код

function querys($query="") {return @mysql_query($query); }
function fetchrow($query_id){ return @mysql_fetch_array($query_id); }


Автор: mishaSL 26.2.2007, 14:10
Для начала посмотри документацию на эту библиотеку:
Код

mixed connect(string $dsn)
    Соединение с указанной СУБД, используя DSN. 
mixed select(string $query [,$arg1...])
    Выборка двумерного массива (список строк). 
hash selectRow(string $query [,$arg1...])
    Выборка однострочного результата запроса (одна строка). 
array selectCol(string $query [,$arg1...])
    Выборка одноколоночного результата запроса (один столбец). 
scalar selectCell(string $query [,$arg1...])
    Выборка скалярного результата запроса (одна ячейка). 
mixed selectPage(int &$total, string $query [,$arg1...)
    Выборка ограниченного двумерного массива с занесением общего числа записей в переменную. 
mixed query(string $query [,$arg1...])
    Вызов не-SELECT запроса; для автоинкрементных полей в INSERT-запросах возвращает ID вставленной записи. 
mixed transaction([mixed $parameters])
    Запускает новую транзакцию. 
mixed commit() / mixed rollback()
    Подтверждает/отменяет текущую транзакцию.


Исходя из документации понятно, что тебе необходимо использовать метод select. И дальше работать как с массивом.
Т.е. примерно так (замени 1 и 2 строку на это):
Код

$rows= $db->select("SELECT * FROM test_pages");
foreach ($rows as $item){


Добавлено @ 14:12 
P.S. документация: http://www.dklab.ru/lib/DbSimple/

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