PHP.SU

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

Страниц (81): В начало « ... 27 28 29 30 [31] 32 33 34 35 ... » В конец

> Найдено сообщений: 1209
evgenijj Отправлено: 04 Ноября, 2007 - 18:49:17 • Тема: Загрузка изображений на сайт • Форум: Программирование на PHP

Ответов: 27
Просмотров: 1439
Andrey5555 пишет:
А как вывести изображение, если в бд храниться ссылка на него?


Зачем в БД хранить ссылку на файл? Ты же знаешь, где хранятся файлы. Достаточно хранить имя:
PHP:
скопировать код в буфер обмена
  1.  
  2. $query = "SELECT image FROM mytable WHERE id=".$id;
  3. $res = mysql_query( $query );
  4. $image = mysql_result( $res, 0, 0 );
  5. echo '<img src="/files/images/'.$image.'" alt="" />';
  6.  
evgenijj Отправлено: 04 Ноября, 2007 - 18:16:45 • Тема: Оформление вывода информации из БД v2 • Форум: SQL и Архитектура БД

Ответов: 45
Просмотров: 679
Snic пишет:
а не проще ли сделать отдельную базу на страницы отдельную на новости ?
просто немного непонятно как это все работает

Скрипт, ссылку на который я дал позволяет удобно редактировать данные в любой таблице. Неважно, какую хранит информацию эта таблица - новости, статьи, публикации и т.п.

Разумеется, для хранения информации мы будем использовать разные таблицы
таблица pages
таблица news
таблица articles
таблица publications
таблица forms
и так далее.

Этот скрипт просто читает записи в некоторй таблице (потому и таблица так названа - items). В админке у тебя будут скрипты
pages_admin.php
news_admin.php
articles_admin.php
publications_admin.php
forms_admin.php
и так далее.

Но все эти скрипты будут очень похожи друг на друга. Потому как их назначение - предоставить удобный интерфейс для добавления/редактирования/удален ия записей в соответствующих таблицах БД.

Цитата:

а тут начинается самое непонятное заместо того чтобы вывести
Компания ТИНКО - это техника безопасности, информа...
выводится статья
непонятно зачем это
можно было написать все в странице


Универсальность. Вот ответ. Положим, табе заказали сделать сайт для фирмы. Они хотят, чтобы на сайте бали следующие страницы:
О компании
Новости
Каталог продукции
Обратная связь
Техническая поддержка
Контакты

Что ты делаешь? Заливаешь на хостинг все файлы, запускаешь файл install.php, который создает таблицы в БД. Потом заходишь в админку, и создаешь страницы
О компании (содержит модуль articles)
Новости (содержит модуль news)
Каталог продукции (содержит модуль catalog)
Обратная связь (содержит модуль forms)
Техническая поддержка (содержит модуль articles)
Контакты (содержит модуль articles)

Потом в той же админке добавляешь статьи "О компании", "Техническая поддержка", "Контакты" (с помощью JavaScript-редактора). И делаешь привязку
статья<->страница

Аналогично, добавляешь записи в таблицу news.

Заливаешь CSV-файл каталога продукции.

Добавляешь форму "Обратная связь". Опять привязываешь страницу "Обратная связь" с формой "Обратная связь".

И в течение дня делаешь сайт.

А потом заказчик тебе говорит, не хочу просто каталог, хочу Интернет-магазин. А вместо страницы "Техническая поддержка" хотим что-то вроде "Ворос-ответ". Ничего страшного. Заходишь в админку, и для страницы "Каталог продукции" модуль catalog заменяешь на модуль shop. А для страницы "Техническая поддержка" модуль articles заменяешь на модуль questions. Это занимает еще пять минут.

Сайт легко подвергается изменению. Как детский конструктор "Lego". Страница - это контейнер. Какой модуль поместим в контейнер, такое содержимое страницы и будет сгенерировано.

Мы до сих пор говорили, что страница содержит один модуль. Но на самом деле, страница может содержать несколько модулей. Каждый модуль формирует свою часть страницы
http://www.php.su/forum/uploads/...cb041d35page.jpg
evgenijj Отправлено: 04 Ноября, 2007 - 13:41:57 • Тема: как определить откуда?! • Форум: Программирование на PHP

Ответов: 9
Просмотров: 660
WiciN пишет:
Как достать оттуда не все, а несколько переменных

PHP:
скопировать код в буфер обмена
  1.  
  2. // Ассоциативный массив
  3. $arr = array( 'PAYEE_ACCOUNT' => 4769509,
  4.               'PAYMENT_AMOUNT' => 0.01,
  5.               'PAYMENT_UNITS' => 1,
  6.               'PAYMENT_METAL_ID' => 1 );
  7. $payee_account = $arr['PAYEE_ACCOUNT'[;
  8. $payment_metal_id = $arr['PAYMENT_METAL_ID']
  9.  
evgenijj Отправлено: 04 Ноября, 2007 - 13:11:56 • Тема: Оформление вывода информации из БД v2 • Форум: SQL и Архитектура БД

Ответов: 45
Просмотров: 679
Написал для тебя несколько небольших скриптов. Можешь посмотреть, как работает и изучить исходники. Для админки можно использовать вот этот скрипт
http://forum.php.su/topic.php?fo...=28&topic=34
Он подойдет для работы с таблицами pages, news и articles. Правда, там нет возможности добавлять новые записи. Но это нетрудно исправить.


Немного разовьем тему. У нас есть только два модуля. Но эти модули - универсальные.

Допустим, ты решил размещать на своем сайта статьи. Или, нет. Термин "статьи" мы уже использовали для других нужд. Назовем их публикации. Для этого берем модуль news и немного его модифицируем. Получаем модуль publications. При переходе на страницу "Публикации" посетитель видит список статей/публикаций (с постраничной навигацией).

Или, скажем, ты решил разместить на своем сайте учебник по html. Что такое учебник? Список публикаций ( Глава 1, Глава 2, ... ). Т.е. у нас тот будет использоваться тот же модуль publications.
evgenijj Отправлено: 03 Ноября, 2007 - 21:32:21 • Тема: Проблема с php5 • Форум: Программирование на PHP

Ответов: 2
Просмотров: 273
По умолчанию в php.ini register_globals = Off. К переменным следует обращаться через суперглобальные массивы $_GET, $_POST и т.д.
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( isset($_GET['a']) ){
  3.   echo 'Пременая равна '.$_GET['a'];
  4. else
  5.   echo 'Переменной не существует';
  6.  


Не передаются переменные! Проблема register_globals
Использование глобальных переменных (Register_Globals)
evgenijj Отправлено: 02 Ноября, 2007 - 11:49:24 • Тема: Помогите построить дерево • Форум: Программирование на PHP

Ответов: 1
Просмотров: 226
PHP:
скопировать код в буфер обмена
  1.  
  2. // Получаем дерево категорий
  3. $categories = get_ctgs_tree( 0, 0 );
  4.        
  5. echo "<h3>Дерево каталога</h3>\\n";
  6. foreach ( $categories as $ctg )
  7. {
  8.     // выводим массив
  9.     // $ctg[0] - уникальный ID категории
  10.     // $ctg[1] - наименование категории
  11.     // $ctg[2] - описание
  12.     // $ctg[3] - уровень вложенности (чтобы делать отступы)
  13. }
  14.  
  15. // Функция возвращает дерево категорий в виде массива
  16. function get_ctgs_tree($parent, $level)
  17. {
  18.         $query = "SELECT id_ctg, name, description FROM ".TABLE_CATEGORIES." WHERE id_parent=".$parent." ORDER BY orders";
  19.         $res = mysql_query( $query ) or die (mysql_error());
  20.         $ctg = array(); // категории
  21.         while ($row = mysql_fetch_row($q))
  22.         {
  23.                 // Уровень вложенности категории
  24.                 $row[3] = $level;
  25.                 $ctg[] = $row;
  26.                 // получаем подкатегории для текущей категории
  27.                 $children = get_ctgs_tree($row[0], $level+1);
  28.                 // добавляем детей текущей категории в конец массива $ctg[]
  29.                 for ($j=0; $j<count($children); $j++)
  30.                 {
  31.                         $ctg[] = $children[$j];
  32.                 }
  33.         }
  34.         return $ctg;
  35. }
  36.  
evgenijj Отправлено: 02 Ноября, 2007 - 09:39:38 • Тема: проблема с регисчтрацией • Форум: Программирование на PHP

Ответов: 1
Просмотров: 184
Блин, цирк. Если флажок установлен, на сервер передается переменная $_REQUEST['agree'] = 'Off'. Ты ее сравниваешь со строкой 'off'. Вполне логично, что 'Off' != 'off' поэтому $error=true.

Если флажок не выставлен, переменная $_REQUEST['agree'] не определена. Сравнивать undefined переменную с чем бы то ни было - глупое занятие. Всегда будет false. Т.е. если пользователь не выставил флажок, то по твоей логике, $error=false, т.е. пользователь согласен с соглашением.

Ты изменил логику с точностью до наоборот.

И вообще, так никто не делает. Нет никакой необходимости сравнивать $_REQUEST['agree'] с чем бы то ни было. Если флажок установлен, переменная $_REQUEST['agree'] определена. Если флажок не выставлен -- перменная не определена
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( !isset($_REQUEST['agree']) ) {
  3.   $errorMessageAgr = $app_voc->words['w_no_accept_user_agreement'];
  4.   $error = true;
  5. }
  6.  
evgenijj Отправлено: 02 Ноября, 2007 - 00:53:05 • Тема: Оформление вывода информации из БД v2 • Форум: SQL и Архитектура БД

Ответов: 45
Просмотров: 679
Для каждой страницы сайта надо настраивать модуль, отвечающий за формирование основного содержимого страницы.

Например, у тебя есть страница "Новости компании". Ты можешь настроить вывод новостей так, что будут показываться только заголовки или заголовки и анонсы. Можно показывать 10 новостей на страницу, а можно 20. Можно для каждой новости показывать маленькую картинку и т.п.

По большому счету, у нас может быть несколько страниц, использующих модуль news, например
Новости компании
Новинки продукции
Новости отрасли
Только в этом случае у нас в БД кроме таблицы news будет еще одна таблица, new_categories где будут храниться категории новостей, а таблица news будет содержать дополнительное поле category - для хранения ссылки на категорию новостей, которой принадлежит данная новость.

По поводу модуля forms. В БД создаем две таблицы - forms и forms_fields. Одно хранит формы, другое - поля этих форм. Таблица forms_fields содержит поле parent, которе содержит уникальный ID формы, которой принадлежит это поле.

evgenijj Отправлено: 01 Ноября, 2007 - 15:11:05 • Тема: Опрос, создание цикла... • Форум: Программирование на PHP

Ответов: 8
Просмотров: 559
PHP:
скопировать код в буфер обмена
  1. echo 'вы выбрали '.$a.'-й вариант';
evgenijj Отправлено: 01 Ноября, 2007 - 10:04:20 • Тема: Опрос, создание цикла... • Форум: Программирование на PHP

Ответов: 8
Просмотров: 559
Волк пишет:
EuGen, а разве не нужно, если я например пишу переменную вместе с словом отделять её точкой или фигурными скобками?
например
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $a = "hell";
  4. echo "$a.o world";
  5. ?>
  6.  

или
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $a = "hell";
  4. echo "{$a}o world";
  5. ?>
  6.  


Ты не отделяешь переменную точкой, а "склеиваешь" строку с переменной
PHP:
скопировать код в буфер обмена
  1.  
  2. $a = "Hell";
  3. echo $a."o world";
  4. echo "{$a}o world";
  5. echo "${a}o world";
  6.  

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

Да и вообще, использование в строке переменных -- анахронизм, от которого давно пора отказаться. Во-первых, строки в двойных кавычках обрабатываются медленнее, чем в одинарных (PHP нужно время на анализ спецсиволов). Во-вторых, это просто нечитабельно.
evgenijj Отправлено: 01 Ноября, 2007 - 09:43:42 • Тема: Опрос, создание цикла... • Форум: Программирование на PHP

Ответов: 8
Просмотров: 559
PHP:
скопировать код в буфер обмена
  1.  
  2. <form action="otvet.php" method="POST">
  3. <input type="text" name="otvet[]" value="" />
  4. <input type="text" name="otvet[]" value="" />
  5. <input type="text" name="otvet[]" value="" />
  6. <input type="submit" name="submit" value="Go!" />
  7. </form>
  8. <?PHP
  9. if ( isset( $_POST['submit'] ) )
  10. {
  11.   foreach( $_POST['otvet'] as $value )
  12.   {
  13.     echo $value.'<br/>';
  14.   }
  15. }
  16. ?>
  17.  
evgenijj Отправлено: 01 Ноября, 2007 - 09:16:48 • Тема: Оформление вывода информации из БД v2 • Форум: SQL и Архитектура БД

Ответов: 45
Просмотров: 679
Поле settings содержит дополнительную информацию, которорая задает дополнительные характеристики для работы модуля. Например, для модуля news это поле может иметь вид

10|announce|img

10 - количество новостей для показа на одной странице (постраничная навигация)
title/announce - показывать только заголовок новости или заголовок и анонс
img/noimg - показывать или нет картинку в списке новостей

Это строка, которую с помощью функции explode можно преобразовать в массив.

Цитата:

...а как лучше реализовать идею с полем модуль через селект...

Ну, ты все правильно делаешь. Сначала предлагаешь пользователю выбрать модуль, отправляешь данные формы на сервер, а потом (уже зная, какой модуль был выбран) предлагаешь выставить дополнительные характеристики

evgenijj Отправлено: 31 Октября, 2007 - 19:34:40 • Тема: Оформление вывода информации из БД v2 • Форум: SQL и Архитектура БД

Ответов: 45
Просмотров: 679
Ладно, раз не понял, значит пока тебе это ни к чему.
evgenijj Отправлено: 31 Октября, 2007 - 09:09:25 • Тема: Загрузка изображений через POST • Форум: Программирование на PHP

Ответов: 3
Просмотров: 336
Сам с этой проблемой не сталкивался, но много о ней слышал. Это русский Apache
Цитата:

В русском Apache есть параметр, который если установлен, то Apache при загрузке бинарников заменяет байт 00 на 20 (пробел). Необходимо "выключить" перекодировку multipart содержимого POST-а в .htaccess строкой: CharsetRecodeMultipartForms Off.
evgenijj Отправлено: 31 Октября, 2007 - 09:04:30 • Тема: Проблемы с кодировкой • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 122
sineus пишет:
Здравствуйте.У меня проблема.В форме регистрации длина поля ввода названия 25 символов,но,когда заполняешь русскими символами выводятся не все символы и к тому же иногда со всякими левыми знаками,типа &#65533; .В базе данных прописана кодировка cp1251 и название там выглядит в виде символов Р?НФА+ЗАГРУЗКР? .Как сделать,что выводились все русские символы,которые заполнил при реге и без всяких косяков? Файл реги прилагается


Функции substr, ereg и некоторые другие некорректно работают с UTF-8. Надо использовать функции mb_substr, mb_ereg и т.д.

http://www.phpwact[dot]org/php/i18n/utf-8
http://ru2.php.net/mb_string

Страниц (81): В начало « ... 27 28 29 30 [31] 32 33 34 35 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB