[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Из программы в функцию
m4a1fox
Доброго всем дня (утра). Во-первых спасибо Invisible за вчерашнюю помощь в скрипте. Во-вторых, скажите стоит ли и вообще реально вот эту программу

include './libs/db.php';
$y = mysql_query("SELECT `number` FROM `pair`") or die (mysql_error ());
if (mysql_num_rows($y) > 0)
{
while ($p = mysql_fetch_assoc($y))
{
$array[] = $p['number'];
}
}


$min = 1000;
$max = 1010;

$arr_diff = array_diff(range($min, $max), $array);
shuffle($arr_diff);

echo '<select>';
foreach ($arr_diff as $key => $value)
{
echo '<option name="'.$value.'">'.$value.'</option>';
}
echo '</select>';


Некиим хитрым образом перенести в функцию....?



Спустя 3 минуты, 26 секунд (14.06.2011 - 11:00) inpost написал(а):
m4a1fox
в функцию пихаешь лишь то, что будешь вызывать из нескольких мест, и достаточно часто. Если этот код используется в 1 или в 2-х местах на сайте, то смысл вообще?
Всё, что начинается с $min -> отправляешь в фунцию, только echo заменяешь н какую-нибудь переменную, типо $select, и в конце: return $select. В функцию отправляешь $array при вызове.

Спустя 4 минуты, 33 секунды (14.06.2011 - 11:05) m4a1fox написал(а):
inpost
Ага! Сейчас попробую... спасибо!

Спустя 5 минут, 52 секунды (14.06.2011 - 11:11) m4a1fox написал(а):
Поправьте если не прав...

function MinMAX ($array)
{
$min = 1000;
$max = 1010;

$arr_diff = array_diff(range($min, $max), $array);
shuffle($arr_diff);

$select = '<select>';
foreach ($arr_diff as $key => $value)
{
$select .= '<option name="'.$value.'">'.$value.'</option>';
}
$select .= '</select>';

return $select;
}


и вызов

include './libs/db.php';
echo '<br />';
$y = mysql_query("SELECT `number` FROM `pair`") or die ("Ошибка - ".mysql_error());
if (mysql_num_rows($y) > 0)
{
while ($p = mysql_fetch_assoc($y))
{
$array[] = $p['number'];
}
}

echo MinMAX($array);

Спустя 43 минуты, 42 секунды (14.06.2011 - 11:54) m4a1fox написал(а):
Господа. А как насчет вот такой функции... подскажите как правильно ее оформить?

function MinMAX ($row, $table, $array = TRUE)
{
$y = mysql_query("SELECT '".$row."' FROM '".$table."'") or die ("Ошибка - ".mysql_error());
if (mysql_num_rows($y) > 0)
{
while ($p = mysql_fetch_assoc($y))
{
$array[] = $p[$row];
}
}

return $array;

$min = 1000;
$max = 1010;

$arr_diff = array_diff(range($min, $max), $array);
shuffle($arr_diff);

$select = '<select>';
foreach ($arr_diff as $key => $value)
{
$select .= '<option name="'.$value.'">'.$value.'</option>';
}
$select .= '</select>';

return $select;

}

Спустя 26 минут, 44 секунды (14.06.2011 - 12:21) m4a1fox написал(а):
Скажите, почему так не получается

function LoadBook()
{
$y = mysql_query("SELECT `number` FROM `pair`") or die ("Ошибка - ".mysql_error());
if (mysql_num_rows($y) > 0)
{
while ($p = mysql_fetch_assoc($y))
{
$array[] = $p['number'];
}
}

return $array;
}




function MinMax ($array = TRUE)
{

global $array;

$min = 1000;
$max = 1010;

$arr_diff = array_diff(range($min, $max), $array);
shuffle($arr_diff);

$select = '<select>';
foreach ($arr_diff as $key => $value)
{
$select .= '<option name="'.$value.'">'.$value.'</option>';
}
$select .= '</select>';

return $select;

}

Спустя 3 минуты, 14 секунд (14.06.2011 - 12:24) sharki написал(а):
Во-первых: Зачем ты указал $array = TRUE ?
Во-вторых: Где сам массив $array? где вызов, или чего не получается? smile.gif

Спустя 6 минут, 30 секунд (14.06.2011 - 12:31) m4a1fox написал(а):
sharki
А если так?

function MinMax ($row, $table)
{
function LoadBook($row, $table)
{
$y = mysql_query("SELECT $row FROM $table") or die ("Ошибка - ".mysql_error());
if (mysql_num_rows($y) > 0)
{
while ($p = mysql_fetch_assoc($y))
{
$array[] = $p[$row];
}
}

return $array;
}

$min = 1000;
$max = 1010;

$arr_diff = array_diff(range($min, $max), LoadBook($row, $table));
shuffle($arr_diff);

$select = '<select>';
foreach ($arr_diff as $key => $value)
{
$select .= '<option name="'.$value.'">'.$value.'</option>';
}
$select .= '</select>';

return $select;
}


вывод вот так

echo MinMax("number", "pair");


Впринципе работает... может что-то не так???? Гляньте... может что лишнее?

Спустя 2 минуты, 45 секунд (14.06.2011 - 12:34) sharki написал(а):
Эту часть лучше вынести отдельно, вдруг что-то другое надо будет сотворить

 $select = '<select>';
foreach ($arr_diff as $key => $value)
{
$select .= '<option name="'.$value.'">'.$value.'</option>';
}
$select .= '</select>';


А функция пусть возвращает return$arr_diff;

Спустя 28 минут, 1 секунда (14.06.2011 - 13:02) m4a1fox написал(а):
sharki
Это вариант но тогда как это применить? Всмысле на вывод?!

Спустя 5 минут, 30 секунд (14.06.2011 - 13:07) sharki написал(а):
Допустим есть твоя функция

function MinMax ($row, $table) 
{
function LoadBook($row, $table)
{
$y = mysql_query("SELECT $row FROM $table") or die ("Ошибка - ".mysql_error());
if (mysql_num_rows($y) > 0)
{
while ($p = mysql_fetch_assoc($y))
{
$array[] = $p[$row];
}
}

return $array;
}

$min = 1000;
$max = 1010;

$arr_diff = array_diff(range($min, $max), LoadBook($row, $table));
shuffle($arr_diff);
return $arr_diff;
}


В виде или где там

$arr_diff = MinMax("number", "pair");


$select = '<select>';
foreach ($arr_diff as $key => $value) {
$select .= '<option name="'.$value.'">'.$value.'</option>';
}
$select .= '</select>';


потом
echo $select;

Спустя 2 минуты, 27 секунд (14.06.2011 - 13:10) m4a1fox написал(а):
sharki
Понятно. Спасибо.
Быстрый ответ:

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