выборка из массива

Paranoiac

Новичок
выборка из массива

$sql="select reg.login from reg where (login='$Username')";
$result=mysql_query($sql) or die ("Invalid query:" . mysql_error());

$rows=mysql_num_rows($result);

$rows1=mysql_fetch_array($result);

mysql_free_result($result);

var_dump($rows1);

foreach ($rows1 as $key=>$val)
{
print "<br>";
print $rows1[$key];
}

результат работы

var_dump($rows1);
array(2) { [0]=> string(3) "111" ["login"]=> string(3) "111" }

print $rows1[$key];
111
111

откуда береться второе значение 111 , если в mysql таблице
только 1 запись в reg.login обьясните плиз :confused:
 

Nick Mitin

Новичок
Внимательно прочитай мануал по mysql_fetch_array, RTFM а потом задавай вопрос.
 

McSimm

Новичок
mysql_fetch_array как раз ее одну и возвращает. Причем даже если в выборке будет много записей.
Но каждое поле в нем доступно по двум ключамю См. документацию на mysql_fetch_array
 

MuXaJIbI41981

Новичок
а не легче написать так:

$nme = mysql_query("select login from reg where login='$Username'");
if (!$nme) exit("<P>Ошибка в запросе к таблице</P>");
if (mysql_num_rows($nme) > 0)
{
while($logins = mysql_fetch_array($nme))
{
echo $logins['login'];
}
}
 

ZN

Новичок
потому, что так работает mysql_fetch_array()
если бы вы читали мануалы, то знали бы, что у неё есть второй необязательный параметр, который указывает, в каком виде возвращать результаты, значение этого параметра по умолчанию MYSQL_BOTH, то есть вам вернётся и ассоциативный, и численный массив
если вам нужен только ассоциативный, передайте вторым параметром MYSQL_ASSOC, или пользуйтесь mysql_fetch_assoc
и ещё, заключайте код в теги
PHP:
 
Сверху