[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Преобразование куска кода в функцию
fredrsf
Доброго дня. Имеется такой кусок кода. Ограничение записей на тренинги. Передается название тренинга и дата. Постоянно меняется название, дата и количество посетителей.

<?php

if ($traning=='TRAINING'){
if ($date=='07/07/2010(12_00)') {
$link = mysql_connect("localhost", "root", "") or die("Could not connect: " . mysql_error());
mysql_select_db("hh") or die ("Could not select hh db".mysql_error());
$id="select count(id) from tranings_new where traning like 'TRAINING' AND date LIKE '07/07/2010(12_00)' ";
$res=mysql_query($id) or die("error1". mysql_error());
$j=mysql_result($res,0);

if ($j<25){
$link = mysql_connect("localhost", "root", "") or die("Could not connect: " . mysql_error());
mysql_select_db("hh") or die ("Could not select hh db".mysql_error());
$id="select max(id) from tranings_new ";
$res=mysql_query($id) or die("error1". mysql_error());
$j=mysql_result($res,0);
$j=$j+1;
$in='insert into tranings_new values ('.'"'.$j.'",'.'"'.$fio.'",'.'"'.$depart.'",'.'"'.$chef.'",'.'"'.$email_chef.'",'.'"'.$job.'",'.
'"'.$traning.'",'.'"'.$date.'",'.'"'.$tel.'",'.'"'.$email.'",'.'"'.$hope.'",'.'"'.$questions.'")';
$insert_db=mysql_query($in) or die("can't insert into table".mysql_error());
// выводится запись что вы зарегестрированы и формируется письмо
} else
{ // выводится запись типа извините
}
}
}



вот здесь if ($traning=='TRAINING') меняется 'TRAINING'
вот здесь if ($date=='07/07/2010(12_00)') меняется '07/07/2010(12_00)'
вот здесь if ($j<25) меняется 25

Мне приходится для каждого тренинга писать этот кусок кода и эти три параметра печатать в ручную. Как сделать чтобы этот кусок был функцией в которую только подставлять эти три параметра. Ух, надеюсь объяснил понятно. За код прошу палкой не бить, ногами не пинать. Я только начинающий, пытался разобраться, но что-то с функциями тяжко... Прошу объяснить, чтоб запомнить и научиться и более глупых вопросов не задавать. Спасибо!



Спустя 25 минут, 1 секунда (14.09.2010 - 10:11) silius написал(а):

function name_function ($traning, $date, $j)
{
echo $traning;
echo $date;
echo $j;
}

// Вызываем функцию где надо

name_function('TRAINING', '07/07/2010(12_00)', '25');

// Входные данные меняешь и всё


Спустя 48 минут, 50 секунд (14.09.2010 - 11:00) fredrsf написал(а):
Я наверное неправильно объяснил. Вот этот весь кусок кода + добавление в бд + отправка письма это одинаковый код для каждого тренинга. меняются только эти три параметра. Вот как сделать так, чтобы каждый раз не писать этот большой кусок кода, а как бы указывать, что должен исполнится этот код но с параметрами, которые я сам задам.

Спустя 6 минут, 52 секунды (14.09.2010 - 11:07) amazing написал(а):
Сама функция:



function yourFunction ($training , $date, $fio, $depart, $chef, $email_chef, $job, $tel, $email, $hope, $questions, $training_get, $date_get, $j_get)
{
if ($traning==$training_get)
{
if ($date==$date_get)
{
$link = mysql_connect("localhost", "root", "") or die("Could not connect: " . mysql_error());
mysql_select_db("hh") or die ("Could not select hh db".mysql_error());
$id="select count(id) from tranings_new where traning like $training_get AND date LIKE $date_get ";
$res=mysql_query($id) or die("error1". mysql_error());
$j=mysql_result($res,0);
if ($j<$j_get)
{
$link = mysql_connect("localhost", "root", "") or die("Could not connect: " . mysql_error());
mysql_select_db("hh") or die ("Could not select hh db".mysql_error());
$id="select max(id) from tranings_new ";
$res=mysql_query($id) or die("error1". mysql_error());
$j=mysql_result($res,0);
$j=$j+1;
$in='insert into tranings_new values ('.'"'.$j.'",'.'"'.$fio.'",'.'"'.$depart.'",'.'"'.$chef.'",'.'"'.$email_chef.'",'.'"'.$job.'",'.'"'.$traning.'",'.'"'.$date.'",'.'"'.$tel.'",'.'"'.$email.'",'.'"'.$hope.'",'.'"'.$questions.'")';
$insert_db=mysql_query($in) or die("can't insert into table".mysql_error());
// выводится запись что вы зарегестрированы и формируется письмо
}
else
{ // выводится запись типа извините
}
}
}
}






Вызов функции



yourFunction ($training, $date, $fio, $depart, $chef, $email_chef, $job, $tel, $email, $hope, $questions, 'TRAINING', '07/07/2010(12_00)', '25');


Спустя 12 минут, 15 секунд (14.09.2010 - 11:19) drouZ написал(а):
простите, теперь у меня возник вопрос: как понять
if ($traning==$training_get)

нет инициализации переменной
$traning
а функция её по-идее пошлет лесом, если её проинициализировали не в её теле и не передали ей, или я ошибаюсь?

Спустя 17 минут, 50 секунд (14.09.2010 - 11:37) amazing написал(а):
Выпустил из виду...Отредактировал

Не на всем же готовом всегда жить smile.gif

Спустя 42 минуты, 59 секунд (14.09.2010 - 12:20) fredrsf написал(а):
А если все эти переменные кроме $j берутся в самом начале отсюда
$traning=$_POST['traning'];
$date=$_POST['date'];
$tel=$_POST['tel'];
это не поможет?

Спустя 15 минут, 10 секунд (14.09.2010 - 12:35) inpost написал(а):
fredrsf
Какая разница? Функция - независимая операция, ей пофиг на весь код на странице. Ты указываешь, что попадет в функцию (какие переменные):
yourFunction ($training, $date, $fio, $depart, $chef, $email_chef, $job, $tel, $email, $hope, $questions, 'TRAINING', '07/07/2010(12_00)', '25');
И что из неё выйдет:
return $text;


_____________
Фриланс-студия webthrust. Создание, поддержка и продвижение сайтов.
Быстрый ответ:

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