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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: как можно сократить код функций

Сообщения:  [1-10] 

 
 автор: tima2010   (05.09.2011 в 15:30)   письмо автору
 
   для: Lotanaen   (05.09.2011 в 15:30)
 

все понял спасибо

  Ответить  
 
 автор: Lotanaen   (05.09.2011 в 15:30)   письмо автору
 
   для: tima2010   (05.09.2011 в 15:29)
 

ну сколько раз функцию будете вызывать - столько запросов и будет

  Ответить  
 
 автор: tima2010   (05.09.2011 в 15:29)   письмо автору
 
   для: Lotanaen   (05.09.2011 в 15:28)
 

точно! спасибо! а количество запросов все равно будет 9 ? :)

  Ответить  
 
 автор: Lotanaen   (05.09.2011 в 15:28)   письмо автору
 
   для: tima2010   (05.09.2011 в 15:26)
 

нет там должна тогда быть строка
$query = "SELECT $key FROM config LIMIT 1";

  Ответить  
 
 автор: tima2010   (05.09.2011 в 15:26)   письмо автору
 
   для: cheops   (05.09.2011 в 15:21)
 

Спасибо то, что нужно!
видимо только 3 строка должна быть выбрать все
$query = "SELECT * FROM config LIMIT 1";  

  Ответить  
 
 автор: Lotanaen   (05.09.2011 в 15:22)   письмо автору
 
   для: tima2010   (05.09.2011 в 15:19)
 

$query = "SELECT * FROM config"; 

единственно, что тогда не функцию, а массив нужно будет везде подставлять...

  Ответить  
 
 автор: cheops   (05.09.2011 в 15:21)   письмо автору
 
   для: tima2010   (05.09.2011 в 15:05)
 

Можно поступить следующим образом
<?php 
function config_request($key) { 
  
$query "SELECT title FROM config LIMIT 1"
  
$res mysql_query($query) or die(mysql_error()); 
  
$row mysql_fetch_array($res);
  return 
$row[$key]; 


function 
cms_title() { 
  echo 
config_request('title'); 


function 
cms_description() { 
  echo 
config_request('description'); 


function 
cms_keywords() { 
  echo 
config_request('keywords'); 


function 
cms_patch() { 
  echo 
config_request('patch'); 


function 
cms_imgfolder() { 
  echo 
config_request('imgfolder'); 


function 
cms_imgwidth() { 
  echo 
config_request('imgwidth'); 

function 
cms_imgheight() { 
  echo 
config_request('imgheight'); 

function 
cms_themes() { 
  echo 
config_request('themes'); 


function 
cms_siteurl() { 
  echo 
config_request('siteurl'); 
}
?>

  Ответить  
 
 автор: tima2010   (05.09.2011 в 15:19)   письмо автору
 
   для: Lotanaen   (05.09.2011 в 15:13)
 

Да пока, что одна, в которую входят все настройки редактируемые на странице админки

каждую запись вывожу в шаблоне методом

<?php cms_title(); ?>


весь смысл в том, чтобы у каждой ячейки была своя функция вызова

а как 1 запросом это сделать?

  Ответить  
 
 автор: Lotanaen   (05.09.2011 в 15:13)   письмо автору
 
   для: tima2010   (05.09.2011 в 15:05)
 

а у вас одна запись в данной таблице что ли? Если да, можно и без БД массив использовать, а если нет, то как вы осуществляете поиск нужной для вас записи?
ЗЫ: вообще-то это все можно одним запросом делать, а не 9-ю...

  Ответить  
 
 автор: tima2010   (05.09.2011 в 15:05)   письмо автору
 
 

приветствую
для удобства сделал файл который объявляет функции
эти функции вывожу в нужных мне местах сайта

код получается довольно большим, и он почти одинаковый, хотел у вас спросить каким образом его лучше всего уменьшить?

из таблицы config беру данные настройки сайта получается следующее:


<?php

function cms_title() {
    
$query "SELECT title FROM config";
    
$res mysql_query($query) or die(mysql_error());
    while (
$row mysql_fetch_array($res)) { 
        echo 
$row['title'];
    }
}

function 
cms_description() {
    
$query "SELECT description FROM config";
    
$res mysql_query($query) or die(mysql_error());
    while (
$row mysql_fetch_array($res)) { 
        echo 
$row['description'];
    }
}

function 
cms_keywords() {
    
$query "SELECT keywords FROM config";
    
$res mysql_query($query) or die(mysql_error());
    while (
$row mysql_fetch_array($res)) { 
        echo 
$row['keywords'];
    }
}

function 
cms_patch() {
    
$query "SELECT patch FROM config";
    
$res mysql_query($query) or die(mysql_error());
    while (
$row mysql_fetch_array($res)) { 
        echo 
$row['patch'];
    }
}

function 
cms_imgfolder() {
    
$query "SELECT imgfolder FROM config";
    
$res mysql_query($query) or die(mysql_error());
    while (
$row mysql_fetch_array($res)) { 
        echo 
$row['imgfolder'];
    }
}

function 
cms_imgwidth() {
    
$query "SELECT imgwidth FROM config";
    
$res mysql_query($query) or die(mysql_error());
    while (
$row mysql_fetch_array($res)) { 
        echo 
$row['imgwidth'];
    }
}
function 
cms_imgheight() {
    
$query "SELECT imgheight FROM config";
    
$res mysql_query($query) or die(mysql_error());
    while (
$row mysql_fetch_array($res)) { 
        echo 
$row['imgheight'];
    }
}
function 
cms_themes() {
    
$query "SELECT themes FROM config";
    
$res mysql_query($query) or die(mysql_error());
    while (
$row mysql_fetch_array($res)) { 
        echo 
$row['themes'];
    }
}

function 
cms_siteurl() {
    
$query "SELECT siteurl FROM config";
    
$res mysql_query($query) or die(mysql_error());
    while (
$row mysql_fetch_array($res)) { 
        echo 
$row['siteurl'];
    }
}

?>

  Ответить  

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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