Код
$score1query = mysql_query("SELECT score1 FROM stavlist", $link) or die($db_error);
$score1row = mysql_fetch_row($score1query);
$score2query = mysql_query("SELECT score2 FROM stavlist", $link) or die($db_error);
$score2row = mysql_fetch_row($score2query);
$arrcount1 = count ($score1row);
$arrcount2 = count ($score2row);
print "$arrcount1\n";
print "$arrcount2\n";
$score1row = mysql_fetch_row($score1query);
$score2query = mysql_query("SELECT score2 FROM stavlist", $link) or die($db_error);
$score2row = mysql_fetch_row($score2query);
$arrcount1 = count ($score1row);
$arrcount2 = count ($score2row);
print "$arrcount1\n";
print "$arrcount2\n";
Count пишет что в обоих массивах только по одному значению, хотя их там гораздо больше. Почему? Как сделать так, чтобы mysql_fetch_row читал все строки?
Спустя 15 минут, 15 секунд (7.09.2008 - 12:36) phpdog написал(а):
Цитата(Всеслав Чародей @ 7.9.2008, 15:20) [snapback]47912[/snapback]
Здравствуйте! Есть такая проблема...
Count пишет что в обоих массивах только по одному значению, хотя их там гораздо больше. Почему? Как сделать так, чтобы mysql_fetch_row читал все строки?
Код
$score1query = mysql_query("SELECT score1 FROM stavlist", $link) or die($db_error);
$score1row = mysql_fetch_row($score1query);
$score2query = mysql_query("SELECT score2 FROM stavlist", $link) or die($db_error);
$score2row = mysql_fetch_row($score2query);
$arrcount1 = count ($score1row);
$arrcount2 = count ($score2row);
print "$arrcount1\n";
print "$arrcount2\n";
$score1row = mysql_fetch_row($score1query);
$score2query = mysql_query("SELECT score2 FROM stavlist", $link) or die($db_error);
$score2row = mysql_fetch_row($score2query);
$arrcount1 = count ($score1row);
$arrcount2 = count ($score2row);
print "$arrcount1\n";
print "$arrcount2\n";
Count пишет что в обоих массивах только по одному значению, хотя их там гораздо больше. Почему? Как сделать так, чтобы mysql_fetch_row читал все строки?
Код
$score1query = mysql_query("SELECT COUNT(DISTINCT score1) FROM stavlist", $link) or die($db_error);
$score1row = mysql_fetch_array($score1query);
$score2query = mysql_query("SELECT COUNT(DISTINCT score2) FROM stavlist", $link) or die($db_error);
$score2row = mysql_fetch_array($score2query);
$arrcount1 = $score1row[0];
$arrcount2 = $score2row[0];
print "$arrcount1\n";
print "$arrcount2\n";
$score1row = mysql_fetch_array($score1query);
$score2query = mysql_query("SELECT COUNT(DISTINCT score2) FROM stavlist", $link) or die($db_error);
$score2row = mysql_fetch_array($score2query);
$arrcount1 = $score1row[0];
$arrcount2 = $score2row[0];
print "$arrcount1\n";
print "$arrcount2\n";
или
Код
$scorequery = mysql_query("SELECT score1, score2 FROM stavlist", $link) or die($db_error);
$scorerow = mysql_fetch_array($scorequery);
$arrcount1 = count($scorerow["score1"]);
$arrcount2 = count($scorerow["score2"]);
print "$arrcount1\n";
print "$arrcount2\n";
$scorerow = mysql_fetch_array($scorequery);
$arrcount1 = count($scorerow["score1"]);
$arrcount2 = count($scorerow["score2"]);
print "$arrcount1\n";
print "$arrcount2\n";
Хотя в принципе, т.к. ты берёшь значения из одной таблицы, то кол-во строк будут равны!
Спустя 44 минуты, 58 секунд (7.09.2008 - 13:21) sergeiss написал(а):
Цитата(Всеслав Чародей @ 7.9.2008, 13:20) [snapback]47912[/snapback]
Здравствуйте! Есть такая проблема...
Count пишет что в обоих массивах только по одному значению, хотя их там гораздо больше. Почему? Как сделать так, чтобы mysql_fetch_row читал все строки?
Код
$score1query = mysql_query("SELECT score1 FROM stavlist", $link) or die($db_error);
$score1row = mysql_fetch_row($score1query);
$score2query = mysql_query("SELECT score2 FROM stavlist", $link) or die($db_error);
$score2row = mysql_fetch_row($score2query);
$arrcount1 = count ($score1row);
$arrcount2 = count ($score2row);
print "$arrcount1\n";
print "$arrcount2\n";
$score1row = mysql_fetch_row($score1query);
$score2query = mysql_query("SELECT score2 FROM stavlist", $link) or die($db_error);
$score2row = mysql_fetch_row($score2query);
$arrcount1 = count ($score1row);
$arrcount2 = count ($score2row);
print "$arrcount1\n";
print "$arrcount2\n";
Count пишет что в обоих массивах только по одному значению, хотя их там гораздо больше. Почему? Как сделать так, чтобы mysql_fetch_row читал все строки?
Вся "проблема" в том, что mysql_fetch_row на самом деле выдает только одну строку
![smile.gif](html/emoticons/smile.gif)
Для получения всех данных надо создать цикл и пройти по всем строкам выборки.
Например, так вот:
---
while( ($score2row = mysql_fetch_row($score2query)) != false)
{
// далее, внутри цикла - всё, что ты хочешь сделать с данными из одной (текущей) строки
....
}
---
Спустя 3 минуты, 20 секунд (7.09.2008 - 13:24) phpdog написал(а):
Цитата(sergeiss @ 7.9.2008, 16:21) [snapback]47932[/snapback]
Цитата(Всеслав Чародей @ 7.9.2008, 13:20) [snapback]47912[/snapback]
Здравствуйте! Есть такая проблема...
Count пишет что в обоих массивах только по одному значению, хотя их там гораздо больше. Почему? Как сделать так, чтобы mysql_fetch_row читал все строки?
Код
$score1query = mysql_query("SELECT score1 FROM stavlist", $link) or die($db_error);
$score1row = mysql_fetch_row($score1query);
$score2query = mysql_query("SELECT score2 FROM stavlist", $link) or die($db_error);
$score2row = mysql_fetch_row($score2query);
$arrcount1 = count ($score1row);
$arrcount2 = count ($score2row);
print "$arrcount1\n";
print "$arrcount2\n";
$score1row = mysql_fetch_row($score1query);
$score2query = mysql_query("SELECT score2 FROM stavlist", $link) or die($db_error);
$score2row = mysql_fetch_row($score2query);
$arrcount1 = count ($score1row);
$arrcount2 = count ($score2row);
print "$arrcount1\n";
print "$arrcount2\n";
Count пишет что в обоих массивах только по одному значению, хотя их там гораздо больше. Почему? Как сделать так, чтобы mysql_fetch_row читал все строки?
Вся "проблема" в том, что mysql_fetch_row на самом деле выдает только одну строку
![smile.gif](html/emoticons/smile.gif)
Для получения всех данных надо создать цикл и пройти по всем строкам выборки.
Например, так вот:
---
while( ($score2row = mysql_fetch_row($score2query)) != false)
{
// далее, внутри цикла - всё, что ты хочешь сделать с данными из одной (текущей) строки
....
}
---
я же написал, правильный скрипт, нада читать предыдущие посты
![wink.gif](html/emoticons/wink.gif)
Спустя 2 минуты, 27 секунд (7.09.2008 - 13:26) Всеслав Чародей написал(а):
2 phpdog: Ваш скрипт к сожалению не помог, в обоих случаях
Код
$arrcount1 = count ($score1row);
выводят 1. Сейчас попробую сделать циклом...Спустя 2 минуты, 36 секунд (7.09.2008 - 13:29) phpdog написал(а):
Цитата(Всеслав Чародей @ 7.9.2008, 16:26) [snapback]47936[/snapback]
2 phpdog: Ваш скрипт к сожалению не помог, в обоих случаях
Код
$arrcount1 = count ($score1row);
выводят 1. Сейчас попробую сделать циклом...вообще как я уже сказал, независимо, какой столбец ты берёшь, кол-во строк буит одинаково, поетому мона сделать так:
Код
$scorequery = mysql_query("SELECT COUNT(*) FROM stavlist", $link) or die($db_error);
$scorerow = mysql_fetch_array($scorequery);
$arrcount = $scorerow[0];
print "$arrcount\n";
$scorerow = mysql_fetch_array($scorequery);
$arrcount = $scorerow[0];
print "$arrcount\n";
Спустя 13 минут, 54 секунды (7.09.2008 - 13:43) Всеслав Чародей написал(а):
Немного переделав ваш код вот в это:
получаю на выходе всеравно единицу, а должно быть 4. Цикл тоже не заработал, просто виснет... Нужно загнать в массив весь столбец из бд а потом вывести его, неужели никто с этим не сталкивался???
Код
$scorequery = mysql_query("SELECT COUNT(score1) FROM stavlist", $link) or die($db_error);
$scorerow = mysql_fetch_array($scorequery);
$arrcount = count($scorerow);
print "$arrcount\n";
$scorerow = mysql_fetch_array($scorequery);
$arrcount = count($scorerow);
print "$arrcount\n";
получаю на выходе всеравно единицу, а должно быть 4. Цикл тоже не заработал, просто виснет... Нужно загнать в массив весь столбец из бд а потом вывести его, неужели никто с этим не сталкивался???
Спустя 5 минут, 11 секунд (7.09.2008 - 13:48) phpdog написал(а):
Цитата(Всеслав Чародей @ 7.9.2008, 16:43) [snapback]47942[/snapback]
Немного переделав ваш код вот в это:
получаю на выходе всеравно единицу, а должно быть 4. Цикл тоже не заработал, просто виснет... Нужно загнать в массив весь столбец из бд а потом вывести его, неужели никто с этим не сталкивался???
Код
$scorequery = mysql_query("SELECT COUNT(score1) FROM stavlist", $link) or die($db_error);
$scorerow = mysql_fetch_array($scorequery);
$arrcount = count($scorerow);
print "$arrcount\n";
$scorerow = mysql_fetch_array($scorequery);
$arrcount = count($scorerow);
print "$arrcount\n";
получаю на выходе всеравно единицу, а должно быть 4. Цикл тоже не заработал, просто виснет... Нужно загнать в массив весь столбец из бд а потом вывести его, неужели никто с этим не сталкивался???
я те предоставил другой код, а тот что ты выполняешь не правильный... возьми код из последнего моего поста!
Спустя 1 час, 12 минут, 55 секунд (7.09.2008 - 15:01) sergeiss написал(а):
Цитата(Всеслав Чародей @ 7.9.2008, 14:43) [snapback]47942[/snapback]
Цикл тоже не заработал, просто виснет... Нужно загнать в массив весь столбец из бд а потом вывести его, неужели никто с этим не сталкивался???
Ну я с этим "сталкиваюсь" постоянно
![smile.gif](html/emoticons/smile.gif)
Цитата(phpdog @ 7.9.2008, 14:24) [snapback]47933[/snapback]
я же написал, правильный скрипт, нада читать предыдущие посты ![wink.gif](html/emoticons/wink.gif)
![wink.gif](html/emoticons/wink.gif)
Слющай, генацвале!
Покажи мне, плз, хотя бы один цикл в твоем "правильном" скрипте?!! Человеку же надо данные получить!
В крайнем случае, если надо только количество строк в выборке, то надо использовать mysql_num_rows. А если сами строки нужны, то используется mysql_fetch_array в цикле.
Спустя 3 минуты, 26 секунд (7.09.2008 - 15:04) phpdog написал(а):
ему нада кол-во строк, вот я и написал... COUNT их подсчитывает, а mysql_etch_array, создаёт массив, с 0 елементом, откуда мона и взять ето знаение!, если, же ему нада ещё, чтото узнавать из етих строк, то тогда воть:
Код
$arrcount = 0;
$scorequery = mysql_query("SELECT score1, score2 FROM stavlist", $link) or die($db_error);
while ($scorerow = mysql_fetch_array($scorequery))
$arrcount++;
print "$arrcount\n";
$scorequery = mysql_query("SELECT score1, score2 FROM stavlist", $link) or die($db_error);
while ($scorerow = mysql_fetch_array($scorequery))
$arrcount++;
print "$arrcount\n";
Спустя 9 минут, 19 секунд (7.09.2008 - 15:14) sergeiss написал(а):
Цитата(phpdog @ 7.9.2008, 16:04) [snapback]47955[/snapback]
ему нада кол-во строк, вот я и написал... COUNT их подсчитывает, а mysql_etch_array, создаёт массив, с 0 елементом, откуда мона и взять ето знаение!, если, же ему нада ещё, чтото узнавать из етих строк, то тогда воть:
Код
$arrcount = 0;
$scorequery = mysql_query("SELECT score1, score2 FROM stavlist", $link) or die($db_error);
while ($scorerow = mysql_fetch_array($scorequery))
$arrcount++;
print "$arrcount\n";
$scorequery = mysql_query("SELECT score1, score2 FROM stavlist", $link) or die($db_error);
while ($scorerow = mysql_fetch_array($scorequery))
$arrcount++;
print "$arrcount\n";
Прочитай хэлп хотя бы, прежде чем советы давать
![smile.gif](html/emoticons/smile.gif)
mysql_fetch_array создает массив, ты правильно говоришь... Но только в этом массиве содержатся данные ПО ОДНОЙ ЗАПИСИ!!! То есть, это не массив всех строк, а массив значений одной строки из выборки.
Спустя 3 минуты, 16 секунд (7.09.2008 - 15:17) phpdog написал(а):
Цитата(sergeiss @ 7.9.2008, 18:14) [snapback]47956[/snapback]
Цитата(phpdog @ 7.9.2008, 16:04) [snapback]47955[/snapback]
ему нада кол-во строк, вот я и написал... COUNT их подсчитывает, а mysql_etch_array, создаёт массив, с 0 елементом, откуда мона и взять ето знаение!, если, же ему нада ещё, чтото узнавать из етих строк, то тогда воть:
Код
$arrcount = 0;
$scorequery = mysql_query("SELECT score1, score2 FROM stavlist", $link) or die($db_error);
while ($scorerow = mysql_fetch_array($scorequery))
$arrcount++;
print "$arrcount\n";
$scorequery = mysql_query("SELECT score1, score2 FROM stavlist", $link) or die($db_error);
while ($scorerow = mysql_fetch_array($scorequery))
$arrcount++;
print "$arrcount\n";
Прочитай хэлп хотя бы, прежде чем советы давать
![smile.gif](html/emoticons/smile.gif)
mysql_fetch_array создает массив, ты правильно говоришь... Но только в этом массиве содержатся данные ПО ОДНОЙ ЗАПИСИ!!! То есть, это не массив всех строк, а массив значений одной строки из выборки.
все мои знания из собственного опыта, и из опыта я всё ему и говарил... почему же, когда я работал над скриптам, всё считалось норм?
Спустя 1 день, 1 час, 11 минут, 11 секунд (8.09.2008 - 16:28) Всеслав Чародей написал(а):
Сделал вот такую загогулину:
В итоге создается массив только с одним значением, последним считанным из бд. Пробовал использовать mysql_fetch_array - не помогло. Интересная вещь получается если сделать код
Тогда создается куча переменных и каждая - массив из одной записи))) Как же сделать чтобы это было два массива и print_r написал нормально что-то типа Array
( [0] => x
[1] => y
[2] => z
)
?
Код
$numrows1q = mysql_query("SELECT score1 FROM stavlist", $link) or die ($db_error);
$numrows2q = mysql_query("SELECT score2 FROM stavlist", $link) or die ($db_error);
$numrows1 = mysql_num_rows($numrows1q);
$numrows2 = mysql_num_rows($numrows2q);
if ($numrows1 <> $numrows2) {
die("Непредвиденная ошибка в структуре бд. Проверьте вашу бд.");
}
$nr=0;
while ($nr <> $numrows1) {
$score1row = mysql_fetch_row($numrows1q);
$score2row = mysql_fetch_row($numrows2q);
$nr++;
}
print_r(array_values ($score1row));
print_r(array_values ($score2row));
$numrows2q = mysql_query("SELECT score2 FROM stavlist", $link) or die ($db_error);
$numrows1 = mysql_num_rows($numrows1q);
$numrows2 = mysql_num_rows($numrows2q);
if ($numrows1 <> $numrows2) {
die("Непредвиденная ошибка в структуре бд. Проверьте вашу бд.");
}
$nr=0;
while ($nr <> $numrows1) {
$score1row = mysql_fetch_row($numrows1q);
$score2row = mysql_fetch_row($numrows2q);
$nr++;
}
print_r(array_values ($score1row));
print_r(array_values ($score2row));
В итоге создается массив только с одним значением, последним считанным из бд. Пробовал использовать mysql_fetch_array - не помогло. Интересная вещь получается если сделать код
Код
$score1row[$nr] = mysql_fetch_row($numrows1q);
$score2row[$nr] = mysql_fetch_row($numrows2q);
$score2row[$nr] = mysql_fetch_row($numrows2q);
Тогда создается куча переменных и каждая - массив из одной записи))) Как же сделать чтобы это было два массива и print_r написал нормально что-то типа Array
( [0] => x
[1] => y
[2] => z
)
?
Спустя 5 часов, 14 минут, 6 секунд (8.09.2008 - 21:42) sergeiss написал(а):
Ну так и выводи внутри цикла полученные величины, ЁПРСТ!!! И обрабатывай их там же!!!!! Или тебе "религия не позволяет"
это делать? Или она же не дает думать?
![smile.gif](html/emoticons/smile.gif)
Спустя 21 минута, 42 секунды (8.09.2008 - 22:04) Всеслав Чародей написал(а):
Дело в том что на этом этапе мне надо было получить именно двумерный массив вида Array ( [0] => 2 [1] => 1 [2] => 3 [3] => 2 [4] => 1 [5] => 0 ), НЕ ВЫВОДИТЬ ЕГО ИЛИ ЧТО-ТО ДЕЛАТЬ С НИМ, а именно получить массив. Добится этого просто оказалось, всеголишь дописал current перед mysql_fetch_row)
Вот то что мне надо было. Всем спасибо за помощь!
Код
while ($nr <> $numrows1) {
$score1row[] = current(mysql_fetch_row($numrows1q));
$score2row[] = current(mysql_fetch_row($numrows2q));
$nr++;
}
$score1row[] = current(mysql_fetch_row($numrows1q));
$score2row[] = current(mysql_fetch_row($numrows2q));
$nr++;
}
Вот то что мне надо было. Всем спасибо за помощь!
_____________