for() + массив

IBSN

Новичок
for() + массив

значит так, выдергиваю из БД данные:
$data = mysql_fetch_array ($result[3]);

далее мне надо их вывести, while() почему-то отказывается работать, пишу for() - работает:

for ($i=0; $i<$num_rows; $i++) // $num_rows кол. строк
{
echo '<input type="Radio" name=golos value='.$data['id'].' checked>'.$data['otvet'].'<br>';
}

Так выводит только последние значение, а если:

for ($i=0; $i<$num_rows; $i++)
{
echo '<input type="Radio" name=golos value='.$data[$i]['id'].' checked>'.$data[$i]['otvet'].'<br>';
}

выводит непонятно что =( как мне сделать ???
 

Сергей123

Новичок
$result[3] = mysql_query(' ... ');
while ( $data = mysql_fetch_array($result[3]) ) {
echo '<input type="Radio" name=golos value='. $data['id'] . ' checked>' . $data['otvet'] . '<br>';
};
 

Фанат

oncle terrible
Команда форума
что такое $result[3]?
зачем вообще ты записываешь указатель на результат запроса в МАССИВ?!

ты спрашиваешь "как мне сделать ???"
но ты НЕ НАПИСАЛ - А ЧТО ты хочешь сделать?!!!!!

тебе просто вывести данные из базы?
а ну брысь в фак!
там все написано
 

IBSN

Новичок
while() не хочет выводить =( даже не ругается

объянсю, значит есть в таблице:
Один
Два
Три
...
при вызове:

for ($i=0; $i<$num_rows; $i++) // $num_rows кол. строк
{
echo '<input type="Radio" name=golos value='.$data['id'].' checked>'.$data['otvet'].'<br>';
}

он показывает:
Один
Один
Один
...


при вызове:

for ($i=0; $i<$num_rows; $i++)
{
echo '<input type="Radio" name=golos value='.$data[$i]['id'].' checked>'.$data[$i]['otvet'].'<br>';
}

он показывет:
О
Д
И
...

А мне надо чтобы он показывал:
Один
Два
Три
...

И желательно без while()

как сделать???

ЗЫ с while() я и сам умеюю =)
 

Baster

Guest
я сделал так :

PHP:
 $query = 'select * from numbers';
$r = mysql_query($query);
for ($i=0;$i<$num_rows;$i++) {
	$line[$i] = mysql_fetch_array($r, MYSQL_ASSOC);

	foreach ($line[$i] as $key => $value) {
       echo '<input type="Radio" name=golos value='.$value.' checked>'.$value.'<br>';
    }
}
я как бы тоже начинающий так что может это не самый грамотный вариант но у меня работает
 

Фанат

oncle terrible
Команда форума
объясни словами.
без единой строчки кода.
что тебе надо, зачем, и как ты к этому пришел.
 

Фанат

oncle terrible
Команда форума
Бастер, это не самый грамотный вариант, посольку для его использования надо знать этот самый $num_rows.

а вообще, зачем отвечать на вопрос, смысла которого ты не понимаешь?
 

Crazy

Developer
Автор оригинала: IBSN
for ($i=0; $i<$num_rows; $i++) // $num_rows кол. строк
{
echo '<input type="Radio" name=golos value='.$data['id'].' checked>'.$data['otvet'].'<br>';
}
У тебя в массиве ОДНА строка. Хочешь прочесть следующую -- сделай fetch еще раз.
 

Crazy

Developer
Автор оригинала: Фанат
а вообще, зачем отвечать на вопрос, смысла которого ты не понимаешь?
1. Смысл вопроса объяснен совершенно четко. Словами. Я -- понял.

2. Бастер тоже понял правильно. И дал вполне приемлемый -- на данном этапе -- вариант.
 

Profic

just Profic (PHP5 BetaTeam)
уууу ёёёёё :) Брысь в фак :)
и где, простите, у тебя в цикле [m]mysql_fetch_array[/m]() или [m]mysql_fetch_assoc[/m]()?
 

Baster

Guest
Автор оригинала: Фанат
Бастер, это не самый грамотный вариант, посольку для его использования надо знать этот самый $num_rows.

а вообще, зачем отвечать на вопрос, смысла которого ты не понимаешь?
автор писал что типа у него в этой переменной храниться число строк
поэтому я не писал ничо лишнего , и он просил через for , я сам обычно через while делаю
 

Фанат

oncle terrible
Команда форума
Крейзи, бля, объясни мне - за каким хером ему это надо обязательно через фор, а не через файл, которым он и сам прекрасно может?
Если тебе так офигенно ясен смысл?
 

IBSN

Новичок
Фанат читаем вопрос:
while() не хочет выводить =( даже не ругается

=)

Спасибо crazy и blaster =)
 

IBSN

Новичок
$query[1] = "SELECT * FROM main ORDER BY date DESC LIMIT 10";
$query[3] = "SELECT * FROM votebase";
$query[4] = "SELECT * FROM voteban";

$result[1] = mysql_query ($query[1]);
$result[3] = mysql_query ($query[3]);
$result[4] = mysql_query ($query[4]);
 

IBSN

Новичок
for ($i=0; $i<$num_rows; $i++)
{

$data[$i] = mysql_fetch_array($result[3], MYSQL_ASSOC);

foreach ($data[$i] as $key => $stroka) {

echo '<input type="Radio" name=golos value='.$data[1].' checked>'.$data[3].'<br>';

}

}

ну не получается =(
 

Фанат

oncle terrible
Команда форума
$query = "SELECT * FROM votebase";
$result = mysql_query ($query);
while($data = mysql_fetch_row($result)) {
echo '<input type="Radio" name=golos value='.$data[1].' checked>'.$data[3].'<br>';
}

Хотя это все равно выведет не то, что тебе надо, буратино ты стоеросовый.
скажи, как называется поле в базе, которое ты выводишь, как $stroka[1] и как называется то, которое ты выводишь как $stroka[3].

и я напишу тебя как вывести без этих мудовых страданий, которые ты ту развел

Если уж ты не можешь прочестья фак и посмотреть как это делается по-человечески.
 

Фанат

oncle terrible
Команда форума
тебе, остолопу, здесь не нужен ни for, ни foreach
ты увидел их в чужом коде, и как обезьяна скопировал.
Но ни зачем они вообще, ни зачем они ТЕБЕ, ты так и не понял.

и отвечатели твои, которые радостно повизгивая, кинулись помогать, тоже ни хера не знают, зачем тебе это надо

по поводу крейзи у меня есть одно объяснение - он мучается жесточайшим похмельем.
сам на себя не похож
 

Фанат

oncle terrible
Команда форума
$query = "SELECT * FROM votebase";
$result = mysql_query ($query);
while($data = mysql_fetch_array($result)) {
echo '<input type="Radio" name=golos value='.$data['id'].' checked>'.$data['otvet'].'<br>';
}

у тебя бы и цифры сработали, если бы ты знал, что нумерация идет с нуля, а не с единицы.
 
Сверху