Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: массив в функции
 
 автор: RV   (09.05.2005 в 16:37)   письмо автору
 
 

вобщем функция после некоторых махинаций вохвращает массив ассоциативный. примерно так:

<?
function my()
{
$query SELECT nameemailи еще много полей ...";
$request = mysql_query($query);
$arr = mysql_fetch_array($request);
if (
$arr)
{
$result = $arr;
}
else 
{
$result = "notFound";
}
    
return 
$result;
}
?>

итого в лучшем случае у нас в переменной $result хранится ассоциативный масив.
а как бы обратится к элементам его? например $result['name'] ? естественно за функцией

   
 
 автор: Artem S.   (09.05.2005 в 16:57)   письмо автору
 
   для: RV   (09.05.2005 в 16:37)
 


<?

$array 
my();

if( 
is_array($array) )
     echo 
$array['name'];
?>


P.S. В данном случает вместо Not Found лучше возвращать false. Проверка будит проще

   
 
 автор: RV   (09.05.2005 в 17:22)   письмо автору
 
   для: Artem S.   (09.05.2005 в 16:57)
 

в таблице поле name - tinyint(1), значение 1
а вышеназванный скрипт выводит 11 (а если в бд значение 0 - то выводит 00). если не использовать никаких функции, а просто запросы, то все ок 1 или 0. почему две цифры вместо одной?

   
 
 автор: Artem S.   (09.05.2005 в 18:01)   письмо автору
 
   для: RV   (09.05.2005 в 17:22)
 

Попробуйте распечатать массив print_r($array);
Так же приведите участок кода, где выводиться значение, так легче отвечать на вопрос

   
 
 автор: RV   (09.05.2005 в 18:20)   письмо автору
 
   для: Artem S.   (09.05.2005 в 18:01)
 


<?
function my()
{
    
connect();
$query "SELECT name , admin .... FROM access_table WHERE name = 'qq'";
$request mysql_query($query)or die (mysql_error());
$arr mysql_fetch_array($request);
if (!
arr)
{
$arr "notFound";
}
return 
$arr;      
}


connect();
$query "SELECT name, admin, .... FROM access_table WHERE name = 'qq'";
$request mysql_query($query) or die ('Request: ' mysql_error());
$arr mysql_fetch_array($request);
if (!
arr)
{
    
$arr "notFound";
}

        
echo 
$arr "</br>"; \\ выводит array
echo 
$arr['admin'];    \\ выводит 1 (или 0а не 11 или 00

$array 
my(); 
if( 
is_array($array) ) 
    echo 
$array['admin']; \\ выводит 00 или 11
print_r
($array);     \\ в общем случае выводит 1 или 0
     ?>

   
 
 автор: Artem S.   (09.05.2005 в 18:55)   письмо автору
 
   для: RV   (09.05.2005 в 18:20)
 

Рискну предположить что, после первого вывода, сразу происходит второй.
echo $arr . "</br>";
echo $arr['admin']; // первый
.....
if( is_array($array) )
echo $array['admin'];
// второй
Вот и получается 00 или 11.

>> print_r($array); в общем случае выводит 1 или 0
То есть array( [admin] => 1) или просто 1?

   
 
 автор: RV   (09.05.2005 в 19:10)   письмо автору
 
   для: Artem S.   (09.05.2005 в 18:55)
 

>Рискну предположить что, после первого вывода, сразу
>происходит второй.

хм. так оно и оказалось.

>То есть array( [admin] => 1) или просто 1?

[admin] => 1

спасибо за помощь

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования