[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Функция
Dmitry
Здравствуйте,
я вот тут недавно писал вопрос по поводу поиска, вроде написал biggrin.gif , но возникла проблема с функцией, вот с этой:

PHP
function prague()
{
$prague = array("Прага-4","Прага-5","Прага-6","Прага-7","Прага-8");
$q10 mysql_query("SELECT * FROM aktuality");
while(
$r1 mysql_fetch_array($q10))

$type $r1['lokation'];
if(
in_array($type,$prague))
return 
$r1['lokation'];
}
}


у меня тут массив, который должен вернуть значение lokation, но проблема в том, что он высылает ответ в виде "Прага-5Прага-6" и потом когда я обращаюсь к этой функции, то поевляется только один первый случай, т.е. "Прага-5", как сделать так, чтобы результат приходил в виде массива?
Спасибо

отзываюсь я на эту функцию вот так:

PHP
$praha prague();
$qes mysql_query("SELECT * FROM aktuality WHERE lokation='".$praha."' ORDER BY id DESC");




Спустя 1 час, 27 минут, 51 секунда (14.04.2009 - 20:02) Joker написал(а):
Так для начала определись и скажи что именно ты хочешь. Потомучто я писал тебе функцию, в прошлый раз но ты её не используешь. То что ты делаешь в теперешней функции, это насилие мускула, т.к. ты сначало достаешь все значения а потом сравниваешь. Нужно сначало создать условие и после делать выборку по этому условию. Опиши ситуацию, т.к. раньше ты описывал что нужно искать москву или подмосковье, сейчас видимо изменились требования скажи что хочешь и тогда я обьясню, тебе как именно это сделать.

Что я понел на данном этапе дак это то что тебе нужно вернуть, не одно значение а все в виде массива, попробуй сделать так:
PHP
function prague()
{
$prague = array("Прага-4","Прага-5","Прага-6","Прага-7","Прага-8");
$q10 = mysql_query("SELECT * FROM aktuality");
while(
$r1 = mysql_fetch_array($q10))
{
 
$type 
= $r1['lokation'];
if(
in_array($type,$prague))
$result[] = $r1['lokation'];
}
return $result;
}

Спустя 28 минут, 44 секунды (14.04.2009 - 20:31) Dmitry написал(а):
не не требования теже, просто чегото у меня не получалось с твоей функцией.
Ага мне надо чтобы на выходе был массив. Я просто сделал эту функцию только как массив например "подмосковье" а уже потом вне ее делаю все и на нее ссылаюсь.
Я сделал для выбора значения вот так:
PHP
if($_POST['location'] == 'Prague'){
$praha prague();
$qes mysql_query("SELECT * FROM aktuality WHERE lokation='".$praha."' ORDER BY id DESC");
if(
mysql_num_rows($qes)>0)
{
while(
$res mysql_fetch_array($qes))

и
PHP
if($_POST['location'] =='Moskva')
{
$qer mysql_query("SELECT * FROM aktuality WHERE lokation='moskva' ORDER BY id DESC");
if(
mysql_num_rows($qer)>0)
{
while(
$rer mysql_fetch_array($qer))
{

Спустя 1 минута, 18 секунд (14.04.2009 - 20:32) Dmitry написал(а):
попробовал с
PHP
$result[] = $r1['lokation'];
не идет...

Спустя 10 минут, 50 секунд (14.04.2009 - 20:43) Joker написал(а):
PHP
function prague($s = false)
{
    if ($s == true ) // Проверяем что искать москву или подмосковье
    {
        // Если подмосковье то из массива состовлем уловие запроса.
        $array = array("Прага-5","Прага-4","Прага-10","Прага-3","Прага-6");
        foreach ($array as $value)
        {
            $where .= (empty($sql))?"`location`='".$value."'":" OR `location`='".$value."'";
        }
    }
    else
    
{
        // Если москву то делаем одно условие.
        $where = "`location`='Moscow'"
    }
    // Делаем запрос с готовым условием.
    $res = mysql_query("SELECT `object` FROM `table` WHERE ".$where);
    // выводим обьекты которые удволетворяют запросу.
    while(    $row = mysql_fetch_array($res)    )
    {
        $table[] = $row['object'];
    }
    return $table;
}


Использование
PHP
// В переменную $array будет выведен список обьектов. которые находяться в подмосковье. В результате, перменная $array станет массивом.
$array = prague(true); 
// В переменную $array2 будет выведен список обьектов. которые находяться в москве. В результате, перменная $array станет массивом.
$array2 = prague();



И если ты спрашиваешь, по той же функции но чтото новое не нужно создовать новый топик и засорят базу форума, отпиши в той же теме. Это тебе справка на будующее.

Спустя 6 минут, 18 секунд (14.04.2009 - 20:49) Dmitry написал(а):
Спасиб за помощь, щас буду пробовать.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.