Странное поведение MySQL

G9
На сайте с 04.05.2009
Offline
92
546

Решил написать скрипт, который плотно работает с БД. Но получилась загвоздка: mysql_query парсит из БД лишь 1 результат, при том, что в БД по запросу более 10К результатов...

кусок из кода:


$zamena=mysql_query("SELECT `slovo` FROM `slovoforma` WHERE `part`='С' AND `gramemas`='ср,им,ед'") or die(mysql_error());
$zam=mysql_fetch_array($zamena);
print_r ($zam['slovo']).' ';

результатом работы является вывод 1 значения из БД, сообтветствующего запросу, хотя должно выводиться, как уже было сказано 10К...

Исправьте ошибку, пожалуйста))

converse19880604
На сайте с 31.05.2009
Offline
164
#1

цикл

10 циклов

мб вот так:


<?php
$zamena=mysql_query("SELECT `slovo` FROM `slovoforma` WHERE `part`='С' AND `gramemas`='ср,им,ед'") or die(mysql_error());
if(mysql_num_rows($zamena)>0)
{
$zam=mysql_fetch_array($zamena);
do
{
print_r ($zam['slovo']).' ';
}
while ($zam=mysql_fetch_array($zamena));
}
else { echo "походу записей нету"; }

?>
G9
На сайте с 04.05.2009
Offline
92
#2

зачем цикл, если теоретически mysql_query посылает базе запрос, в результате которого БД возвращает все значения, удовлетворяющие условию?

спс, попробуем

[Удален]
#3

griff92, учи матччасть

aleksey_php
На сайте с 17.03.2008
Offline
53
#4
griff92:
зачем цикл, если теоретически mysql_query посылает базе запрос, в результате которого БД возвращает все значения, удовлетворяющие условию?

Функции mysql_fetch_* умеют работать только с одной строкой (рядом) таблицы результатов, возвращаемой базой данных. Чтобы собрать эту таблицу в массив - нужно циклом пройтись по каждой строке таблицы.

[Удален]
#5
converse19880604:
цикл
10 циклов
мб вот так:

$zamena=mysql_query("SELECT `slovo` FROM `slovoforma` WHERE `part`='С' AND `gramemas`='ср,им,ед'") or die(mysql_error());


while ($zam=mysql_fetch_array($zamena));
{
$m_slov[]=($zam['slovo']);
}
print_r($m_slov);

работает и в 1 цикл :)

converse19880604
На сайте с 31.05.2009
Offline
164
#6
Soulwest:
$zamena=mysql_query("SELECT `slovo` FROM `slovoforma` WHERE `part`='С' AND `gramemas`='ср,им,ед'") or die(mysql_error());


while ($zam=mysql_fetch_array($zamena));
{
$m_slov[]=($zam['slovo']);
}
print_r($m_slov);


работает и в 1 цикл :)

работает) я просто проверку одну добавил)

G9
На сайте с 04.05.2009
Offline
92
#7

спасибо всем огромное, помогли

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий