PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (13): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец

> Найдено сообщений: 187
Uchenik Отправлено: 09 Февраля, 2012 - 07:01:36 • Тема: Таблица • Форум: Вопросы новичков

Ответов: 11
Просмотров: 284
В таком случае логичней сделать case
что-то типа
PHP:
скопировать код в буфер обмена
  1. switch(ПЕРЕМЕННАЯ_ИНДИКАТОРА)
  2. {
  3. case '0':$img='путь к картинке 0';break;
  4. case '1':$img='путь к картинке 1';break;
  5. }

при срабатываниее одного из условий, выведется одна картинка, а если нужно вывести все тогда, уберите break и передайте в кейс нулевое значение, он переберёт весь кейс по порядку.
Uchenik Отправлено: 09 Февраля, 2012 - 05:46:14 • Тема: Вывод результата запроса • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1049
snikers987, спасибо, логику я понял. Не понятно только одно.
Почему Var_Dump выводит результат NULL. Это как? Т.е. результат не пустой, но и не несёт никаких данных. странно.
Может полная конструкция прояснит ситуацию:
PHP:
скопировать код в буфер обмена
  1. $type='2';
  2. $table=$db_plugins;
  3. $field='*';
  4. $cycle=true;
  5. sql_selector($type,$table,$field,$data,$where,$cycle);

Вот так я вызываю. функцию во всех скриптах. На самом деле sql_selector это конструкция из 7и разных функций.
Т.е. как-то так:
PHP:
скопировать код в буфер обмена
  1.  function sql_selector($type,$table,$field,$data,$where,$cycle)
  2. {
  3.     switch($type)
  4.     {
  5.       case '1':sql_insert($table,$field,$data);break;
  6.       case '2':sql_select($table,$field,$where,$cycle);break;
  7.       case '3':sql_delete($table,$field,$where);break;
  8.       case '4':sql_update($table,$field,$where);break;
  9.       case '5':sql_drop($table,$field,$where);break;
  10.       case '6':sql_alter($table,$field,$where);break;
  11.      }
  12. }

Дальше идут сами функции, ну вот функция, которая делает выбор (sql_select)
она сейчас такая, как Вы предложили, а что может быть не так? Почему результат не работает, т.е. я не совсем понимаю как его вызвать этот результат.
Кстати на 4 строке функции, у вас синтаксическая ошибка.
(Добавление)
Попробовал ещё вот так
Спойлер (Отобразить)

Выводит ArrayArrayArray и так далее кучу раз.
А вот echo $result[0]; выводит просто А
c print_r такая же ситуация.
Uchenik Отправлено: 08 Февраля, 2012 - 15:05:23 • Тема: Вывод результата запроса • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1049
Добрый день!
У меня есть функция, которая делает запрос к БД, но чтобы она сделала правильный запрос нужно передать ей несколько параметров
PHP:
скопировать код в буфер обмена
  1. global $result; //глобальная переменная в которую выгрузится результат функции
  2. $table=$db_plugins; //имя таблицы, из которой нужно вытянуть данные
  3. $field='*'; //какие поля нужны
  4. $cycle=true; //использовать ли цикл в запросе
  5. sql_select($table,$field,$where,$cycle); //вызов функции

PHP:
скопировать код в буфер обмена
  1. function sql_select($table,$field,$where,$cycle)
  2. {global $result; //принимаем глобальную переменную созданную до вызова функции
  3. if (!empty($where)) //если условие указано
  4. //используем версию с условием
  5. {$sql="SELECT ".$field."
  6.                 FROM ".$table."
  7.                 WHERE ".$where."";}
  8. //или используем версию без условия
  9.                 else
  10. {$sql="SELECT ".$field." FROM ".$table."";}
  11. $res=mysql_query($sql);
  12. if ($cycle==true)//если указано включить цикл
  13. //пропускаем через цикл
  14. {while($row = mysql_fetch_row($res)) //специально используем ROW потому-что не знаем имена полей
  15. {$result=mysql_fetch_row($res);}
  16. }
  17. //или запрос без цикла
  18. else {$result=mysql_fetch_assoc($res);}
  19. //возвращаем результат
  20. return $result;
  21. }


Подскажите, если запрос проходит через цикл, он будет работать пока не переберёт всю таблицу, а как мне сохранить все результаты, у меня сохраняется только последний, создать ещё одну глобал переменную, которая будет массивом, и будет принимать результат каждого прохода цикла как строку? Или можно сделать проще? Ниндзя
Uchenik Отправлено: 12 Января, 2012 - 05:54:42 • Тема: Multilang в xTemplate • Форум: CMS и фреймворки

Ответов: 1
Просмотров: 1197
Пока сделал так:
1. подключаем класс, который переводит на нужный язык
PHP:
скопировать код в буфер обмена
  1. require ('system/classes/lang.class.php');

вот сам класс:
PHP:
скопировать код в буфер обмена
  1.  class Lang
  2. { public static function evaluate($str,$arr)
  3.    { foreach($arr as $k=>$v)
  4.              $str = str_replace("{".$k."}", $v,$str);
  5.              return $str; }
  6.  }

2. Прогоняем текст через класс
PHP:
скопировать код в буфер обмена
  1. $hello = Lang::evaluate('{text.hello}',$L);

3.Результат обработки закидываем в массив, который передаётся в другой класс для дальнейшей обработки и выводи пользователю
PHP:
скопировать код в буфер обмена
  1. $arr = array
  2. (
  3.     'HELLO' => $hello,
  4.         );
  5. $tpl->assign('TEXT', $arr);
  6. $tpl->parse($block);
  7. $tpl->out($block);

Топорный вариант, но другого пока нет.
Uchenik Отправлено: 11 Января, 2012 - 12:19:43 • Тема: Пишу CMF, ищу единомышленников для дальнейшей разработки. • Форум: CMS и фреймворки

Ответов: 59
Просмотров: 13245
Не всё, но я пока не парюсь, на данном этапе они соответствуют всем моим требованиям, а если где-то что-то не так, то ничего не стоит написать хак, модуль, плагин, шестерёнку, или ещё что-то в этом роде =)
(Добавление)
кстати о вашем сайте, я вот например не понимаю когда шаблон форума абсолютно не соответствует шаблону самого сайта, такое ощущение, какбудто совсем другой проект.
Uchenik Отправлено: 11 Января, 2012 - 12:03:24 • Тема: Пишу CMF, ищу единомышленников для дальнейшей разработки. • Форум: CMS и фреймворки

Ответов: 59
Просмотров: 13245
Интересно, сколько ещё блуждает таких интузиастов по просторам интернет?
Зачем изобретать велосипед?
Сейчас этих CMS и CMF с самым разным набором возможностей уже миллионы. Если писать что-то такое то только для себя, под свои какие-то цели. И то это уже крайний случай, когда другие просто не подходят, да и то, никто не запрещает взять ту же Seditio от Оливера и переделать под свои нужды.
Uchenik Отправлено: 11 Января, 2012 - 11:59:42 • Тема: пишу свою cms • Форум: Прочее

Ответов: 44
Просмотров: 319
Странно он как-то рассуждает, по его логике CMS должна уметь только управлять физическими файлами и каталогами на серве, а вот реального управления КОНТЕНТОМ я что-то не заметил среди всех функций этой "CMS" =)
Uchenik Отправлено: 11 Января, 2012 - 11:52:11 • Тема: Multilang в xTemplate • Форум: CMS и фреймворки

Ответов: 1
Просмотров: 1197
Подскажите, как сделать чтобы XTemplate воспринимал указание к использованию языка.
Сейчас вывод сделан так:
PHP:
скопировать код в буфер обмена
  1. $arr = array
  2. (
  3.     'HELLO' => $L['text.hello'] ,
  4.         );
  5. $tpl->assign('TEXT', $arr);
  6. $tpl->parse($block);
  7. $tpl->out($block);

а как теперь сделать чтобы $L['text.hello'] заменялся в зависимости от языка?
Есть файлы main.lang.php в которых указаны значения для ксех элементов массива.
Uchenik Отправлено: 29 Декабря, 2011 - 09:52:36 • Тема: ошибка в htaccess • Форум: Регулярные выражения

Ответов: 2
Просмотров: 148
но первые два правила же работают, почему третье не срабатывает хотя то же самое, только не list а edit
Нашёл в чем причина, в списке RewriteRule первыми стоят правила, которые относятся к List, а после них правила относящиеся к Edit, поэтому когда идёт обработка адреса, он веряет их с адресами List, а до Edit не доходит
Uchenik Отправлено: 29 Декабря, 2011 - 08:51:03 • Тема: ошибка в htaccess • Форум: Регулярные выражения

Ответов: 2
Просмотров: 148
Подскажите почему правило может не срабатывать

CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)$ list?l=$1&g=$2 [L,QSA]
  2. RewriteRule ^([a-zA-Z]+)$ list?l=$1 [L,QSA]
Этот фрагмент работает идеально

CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteRule ^([a-zA-Z]+)$ edit?c=$1 [L,QSA]

а вот этот не срабатывает, т.е. если адрес имеес вид site/edit?c=settings тогда страница открывается, а когда меняю ссылку на site/settings тогда выдаётся собщение что я зашёл без параметра, почему?
Uchenik Отправлено: 24 Октября, 2011 - 13:23:20 • Тема: Создать таблицу • Форум: Хранение данных, их вывод и обработка

Ответов: 0
Просмотров: 633
Из таблицы БД вытягиваю все записанные в неё группы. Колличество этих групп определяет колличество колонок таблицы.
В результате должно получится расписание на всю неделю для отделения универа.
Подскажите как сгенерировать такую таблицу, и сделать это так чтобы каждая ячейка таблицы имела своё имя и свой id
CODE (html):
скопировать код в буфер обмена
  1. <table border=1>
  2. <tr><td>День недели/Группа</td><td>Группа1</td><td>Группа2</td></tr>
  3. <tr><td rowspan=6>Понедельник</td></tr>
  4. <tr><td>1</td><td>1</td></tr>
  5. <tr><td>1</td><td>1</td></tr>
  6. <tr><td>1</td><td>1</td></tr>
  7. <tr><td>1</td><td>1</td></tr>
  8. <tr><td>1</td><td>1</td></tr>
  9. </table>

Планируется что в неё (в таблицу) будут вставляться элементы (уроки)
Uchenik Отправлено: 04 Октября, 2011 - 07:50:12 • Тема: Проверка наличия скина • Форум: Работа с файловой системой и файлами

Ответов: 6
Просмотров: 2530
Я попробовал даже вот так
PHP:
скопировать код в буфер обмена
  1. function get_directory_list($path)
  2. {
  3.    if(is_dir($path)){
  4.        $dh = opendir($path);
  5.        while (false !== ($dir = readdir($dh))) {
  6.            if (is_dir($path . $dir) && $dir !== '.' && $dir !== '..') {
  7.                print "<br>".$dir;
  8.                            $q="Select ID,Name from `acep_Skins` where Name='{$dir}'";
  9.                            $r=mysql_query($q);
  10.                            $m=mysql_fetch_array($r);
  11.                            if (empty($m['Name'])){$q2="Insert Into acep_Skins (Name) values('$dir')";}
  12.                            get_directory_list($dir);
  13.            }  
  14.        }
  15.        closedir($dh);
  16.    }  
  17. }

PHP:
скопировать код в буфер обмена
  1. <?$path = $_SERVER['DOCUMENT_ROOT']."/templates/";
  2. get_directory_list($path);?>

Результата никакого, в каталоге лежат 3 скина, а в БД прописан только 1, тот который по дефолту.
Uchenik Отправлено: 03 Октября, 2011 - 11:17:57 • Тема: Проверка наличия скина • Форум: Работа с файловой системой и файлами

Ответов: 6
Просмотров: 2530
$query="SELECT `ID` FROM `acep_Skins` WHERE `Name`={$one}";
Тот же эффект, я кстати просмотрел значения $one, она не видит скины, точнее сказать она видит только первый, который дефолт, а остальные не видит.
Uchenik Отправлено: 03 Октября, 2011 - 11:08:55 • Тема: Проверка наличия скина • Форум: Работа с файловой системой и файлами

Ответов: 6
Просмотров: 2530
LIME
Я не совсем понял
PHP:
скопировать код в буфер обмена
  1. if (mysqli_num_rows($result)>0) {
  2.                 $query="INSERT INTO table VALUES($one)";


И почему-то у меня не работает.
PHP:
скопировать код в буфер обмена
  1. function checkdir(){
  2.  $dir = $_SERVER['DOCUMENT_ROOT']."/templates/"; // папка которую будем сканировать
  3.  $data = opendir ($dir); // считываем содержимое папки $dir
  4.  $res = mysqli_connect('localhost','root','','Acep') OR die ('Не удалось подключение к БД');
  5.  while ($one = readdir ($data)) // собираем массив из результата сканирования
  6.  {
  7.  if($one != '.' && $one != '..') // если это содержимое дирректории
  8.  {
  9.         $query="SELECT `ID` FROM `acep_Skins` WHERE `Name`={$one}";
  10.         $result=mysqli_query($res,$query) OR die ('He удалось выполнить запрос');
  11.         if (mysqli_num_rows($result)==0) {
  12.                 $query="INSERT INTO acep_Skins VALUES($one)";
  13.                 $result=mysqli_query($res,$query) OR die ('He удалось добавление');
  14.         }
  15.  }
  16.  }
  17.  mysqli_close($res);
  18. closedir ($data);
  19.     }

Ругается что не удаётся выполнить запрос
Uchenik Отправлено: 03 Октября, 2011 - 09:13:34 • Тема: Проверка наличия скина • Форум: Работа с файловой системой и файлами

Ответов: 6
Просмотров: 2530
Подскажите как сделать чтобы сканировалась папка со скинами и сравнивалась со скинами, которые указаны в БД, если какого-то нет, то добавить скин в БД.
Я пока сделал как-то так
PHP:
скопировать код в буфер обмена
  1.         function checkdir(){
  2.  $dir = $_SERVER['DOCUMENT_ROOT']."/templates/"; // папка которую будем сканировать
  3.  $data = opendir ($dir); // считываем содержимое папки $dir
  4.  while ($one = readdir ($data)) // собираем массив из результата сканирования
  5.  {
  6.  if($one != '.' && $one != '..') // если это содержимое дирректории
  7.  {
  8.  $files[] = $one;
  9.  }
  10.  }
  11. closedir ($data);
  12. print_r($files); //выводим массив с папками, вложенными в папку $dir.
  13.         }

Страниц (13): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB