PHP.SU

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

Страниц (16): В начало « ... 7 8 9 10 [11] 12 13 14 15 ... » В конец

> Найдено сообщений: 238
Dezmont Отправлено: 14 Февраля, 2012 - 08:26:31 • Тема: Как написать правильный код? • Форум: Хранение данных, их вывод и обработка

Ответов: 12
Просмотров: 3099
PHP:
скопировать код в буфер обмена
  1. $sql = mysql_query("SELECT `name` FROM `persons`");
  2. while($array = mysql_fetch_assoc($sql)){
  3.    $sql_2 = mysql_query("SELECT `id`,`descr` FROM `torrents` WHERE `descr` LIKE '%{$array['name']}%'");
  4.    while($array_2 = mysql_fetch_assoc($sql_2)){
  5.       $link = substr_replace($array_2['descr'], 'persons.php?id=ID', 0);
  6.       $sql = mysql_query("UPDATE `torrents` SET `descr`='$link' WHERE `id`='{$array_2['id']}'");
  7.    }
  8. }


Как то так, вроде должно работать. Про быстродействие кода не скажу, нужно у более опытных спрашивать.
Dezmont Отправлено: 10 Февраля, 2012 - 07:59:17 • Тема: Отношение многие ко многим • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 36
Евгений, спасибо. Будет прочитано и, надеюсь, начну понимать логику построения. =)))

EuGen пишет:


На rd.php что-то с кодировкой...Адрес сайта из: http://ru.wikipedia.org/wiki/Нормальная_форма, превращается в http://ru.wikipedia.org/wiki/Нормальная_форма
Dezmont Отправлено: 09 Февраля, 2012 - 15:37:28 • Тема: Отношение многие ко многим • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 36
Не уверен, уместно ли тут отношение многие ко многим, но мне так показалось. В общем есть таблица load: load_id,address,company (addres - UNIQUE). Есть таблица request: request_id, company, load_id.
request.load_id относится как 1 ко многим с load.load_id. В company одинаковые значения для обеих таблиц, не знаю, стоит ли выносить в отдельную таблицу, так вроде удобнее. Так вот, в зависимости от значения request.company, пользователю выводятся все load.address с load.company, и он уже может выбрать необходимые load.address (это могут быть 1, 2, 3... значения; выбираются в таблице select).
Далее идёт запись load.load_id выбранных в request.load_id (например мы записали 1,8,9,15).
Я записываю эти id в строку, а потом через php разбираю и вывожу уже то, что нужно. Насколько это ужасно? ) Просто с базами слабовато разбираюсь, не могу пока использовать нормальные формы и тд и тп.

З.Ы. Что-то много букв понаписал, может кто-нибудь осилит. ((( А вообще, ещё хотел спросить совета, может книжку кто посоветует, по проектированию БД. Чтобы начать понимать, когда лучше использовать доп таблицы, когда не использовать.... В каком случае можно выполнить функции БД php скриптом, а в каком лучше использовать процедуры Базы данных....
Dezmont Отправлено: 07 Февраля, 2012 - 10:13:40 • Тема: Как лучше сделать include? • Форум: Вопросы новичков

Ответов: 3
Просмотров: 145
EuGen пишет:
то подключайте сразу все Ваши файлы - сомневаюсь, что лишние две-три переменных создадут проблемы, тогда как это избавит от условных сключений и прояснит логику.

Извините, смысла что-то не понял. Все ваши файлы = просто сделать включение конфигурационного файла во всех включаемых файлах из case?

У меня просто в case-файлах вывод html кода. Сделал так, потому что выводятся отдельные формы, и чтобы человек, не знающий php, мог спокойно редактировать html код.
Dezmont Отправлено: 07 Февраля, 2012 - 09:58:50 • Тема: Как лучше сделать include? • Форум: Вопросы новичков

Ответов: 3
Просмотров: 145
Подскажите как сделать?
Вот такой код:
PHP:
скопировать код в буфер обмена
  1. include "conf/data.php";
  2.  
  3. function include_file($filename){
  4.         if(file_exists($filename)){
  5.                 include $filename;
  6.         }
  7.         else{
  8.                 exit("Подключаемый файл не найден. Проверьте правильность пути: $filename");
  9.         }
  10. }
  11.  
  12. switch($_GET['id']):
  13. case '1':
  14.         include_file("forms/form-contragent.php");
  15.         break;
  16. case '2':
  17.         include_file("forms/form-person.php");
  18.         break;
  19. case '3':
  20.         include_file("forms/form-request.php");
  21.         break;
  22. default:
  23.         if($_GET['id'] != ''){
  24.                 exit('<h1>Параметр ID='.$_GET['id'].' задан неверно.</h1>');
  25.         }
  26.         else{
  27.                 exit('<h1>Не задан параметр ID!!!</h1>');
  28.         }
  29. endswitch;


conf/data.php - конфигурационный файл. Содержит значения переменных (например $a,$b,$c соответствующих кейсам 1,2,3. В подключаемых файлах используются эти значения.
Подскажите, как лучше сделать так, чтобы в подключаемых кейсах обрабатывались переменные из конфигурационного файла? Вариантов просто много, а я точно не знаю как правильнее и удобнее.
Варианты:
1) Сделать include конфига в каждом "case-файле";
2) Переопределить все переменные из conf/data.php во включающем файле;
3) Возвращать значения всех переменных из conf/data.php;
4) Переопределить переменные на глобальные;
5) Загнать в константы все переменные;
6) Ещё что-нибудь наверное можно придумать )))
Dezmont Отправлено: 06 Февраля, 2012 - 10:22:31 • Тема: капча для гостевой книги • Форум: Вопросы новичков

Ответов: 3
Просмотров: 224
Тут почитайте.
Dezmont Отправлено: 31 Января, 2012 - 08:45:56 • Тема: Помогите новичку! • Форум: Вопросы новичков

Ответов: 2
Просмотров: 88
Прочитайте про BBCode. Там функции как раз для вашего случая.
http://www.php[dot]ru/manual/book[dot]bbcode[dot]html

Если вам нужен ASCII код символа, то можете воспользоваться функциями chr() и ord()
Dezmont Отправлено: 31 Января, 2012 - 08:23:32 • Тема: поле для ввода • Форум: Вопросы новичков

Ответов: 4
Просмотров: 139
Каролина пишет:
у мя такое неработает в денвере

Ну если у Вас не работает Денвер, то это вам на сайт Денвера. Там помогут с решением вашей проблемы.
Dezmont Отправлено: 31 Января, 2012 - 08:17:32 • Тема: перевод кирилицы в транслит • Форум: Вопросы новичков

Ответов: 17
Просмотров: 682
foozzi, прочитайте в мануале по функции... Откроете для себя много нового и полезного. =)

Передаёте переменную в функцию, и выводите результат.

PHP:
скопировать код в буфер обмена
  1. $string = 'Преобразуй меня';
  2. echo translitIt($a);

Первый вариант, который предложил armancho7777777 неправильный, его нужно немного переделать, чтобы работал. 2 работает исправно.
Dezmont Отправлено: 31 Января, 2012 - 07:35:20 • Тема: Как на php реализовать связь многие ко многим? • Форум: Работа с СУБД

Ответов: 16
Просмотров: 10073
Чтобы в полной мере использовать потенциал БД, нужно грамотно с ними работать... Составлять грамотные запросы, индексировать и т.д. и т.п. Когда вы используете что-то без чего-то, это может приводить не к тому, что задумывалось.
Я думаю, что если у человека не очень большой сайт, и нагрузка на БД не так высока, то можно обойтись и PHP с запросами SQL типа SELECT и UPDATE.
sergtka4ov пишет:
Мелкий пишет:
Именно так и делают все, кто в этом хоть что-то понимает.

ну ну

Мне кажется, что посмотрев, как минимум, на ваше количество сообщений и на количество сообщений Мелкого, становится понятно, кто тут "хоть что-то понимает" ©
Dezmont Отправлено: 30 Января, 2012 - 15:14:27 • Тема: Как на php реализовать связь многие ко многим? • Форум: Работа с СУБД

Ответов: 16
Просмотров: 10073
Тут не так уж много PHP. Вам только SQL запросы нужно правильно составить.
В 3 пункте связь spisok_id, tags_id вам нужно сделать UNIQUE. Т.е. пара тэг/статья у вас будут уникальными.
CODE (SQL):
скопировать код в буфер обмена
  1. UNIQUE(spisok_id, tags_id)

Предположим вы хотите вывести список тегов под статьёй.
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM link WHERE spisok_id='10'

И аналогично для тегов:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM link WHERE tags_id='auto'


Делаете:
PHP:
скопировать код в буфер обмена
  1. $sql = mysql_query("SELECT * FROM table_name WHERE tags_id='auto'");
  2. $tags_array = my_sql_fetch_assoc($sql);

Получаете массив с необходимыми вам данными. Его уже обрабатываете в зависимости от ваших потребностей.
Dezmont Отправлено: 30 Января, 2012 - 12:25:08 • Тема: Проблема с выводом id методом GET • Форум: Вопросы новичков

Ответов: 10
Просмотров: 444
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?
  3.  
  4. $id = $GET['id'];
  5.  
  6. ?>


Вот тут вы ошиблись. Нужно $id = $_GET['id'].
Нижнее подчёркивание забыли.
Dezmont Отправлено: 30 Января, 2012 - 10:49:12 • Тема: Дни недели на русском. • Форум: Вопросы новичков

Ответов: 1
Просмотров: 1379
Так будет работать.
PHP:
скопировать код в буфер обмена
  1.  <?PHP  
  2.  
  3. function getWeekdays_select($outlet_closeday, $status=''){
  4.         $outlet_closeday=explode(",",$outlet_closeday);
  5.         $sContent = '';
  6.         $day = strtotime("next Monday");
  7.         for ($i=1; $i <= 7; $i++) {
  8.         $sContent .= "<input type='checkbox' name='outlet_closeday_".$i."' value='".date("w",$day)."' ";
  9.                
  10.                 if (in_array(date("w",$day), $outlet_closeday)) {
  11.                         $sContent .= "'checked='checked'";
  12.                 }
  13.                 $sContent .= $status." >&nbsp;".date("D",$day)."&nbsp;&nbsp;";
  14.                 $day = $day + 86400;
  15.                 }
  16.         return $sContent;
  17. }
  18.                
  19.  
  20.  
  21. $rgSearch = array('Mon',
  22. 'Tue',
  23. 'Wed',
  24. 'Thu',
  25. 'Fri',
  26. 'Sat',
  27. 'Sun'
  28. );
  29. $rgReplace = array('Пн',
  30. 'Вт',
  31. 'Ср',
  32. 'Чт',
  33. 'Пт',
  34. 'Сб',
  35. 'Вс'
  36. );
  37.  
  38. echo str_replace($rgSearch, $rgReplace, getWeekdays_select(7));
  39.  
  40. ?>
Dezmont Отправлено: 27 Января, 2012 - 08:03:10 • Тема: Как прикрутить капчу (проект KCAPTCHA) к форме • Форум: Вопросы новичков

Ответов: 21
Просмотров: 4456
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. ?>
  3. <form action="" method="post">
  4. <p>Enter text shown below:</p>
  5. <p><img src="./?<?PHP echo session_name()?>=<?PHP echo session_id()?>"></p>
  6. <p><input type="text" name="keystring"></p>
  7. <p><input type="submit" value="Check"></p>
  8. </form>
  9. <?PHP
  10. if(count($_POST)>0){
  11.         if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] === $_POST['keystring']){
  12.                 echo "Correct";
  13.         }else{
  14.                 echo "Wrong";
  15.         }
  16. }
  17. unset($_SESSION['captcha_keystring']);
  18. ?>

Всё что между PHP тэгами нужно. 1) Открывает сессию, никакого вывода не должно быть до этого.
2) Грубо говоря ссылка на картинку.
3) Проверка капчи на правильность.

З.Ы. Вместо тегов формы вставьте свою ХТМЛ страницу с капчей там, где надо, и всё должно заработать.
Dezmont Отправлено: 24 Января, 2012 - 15:42:58 • Тема: Тег Select атрибут Size • Форум: HTML, Дизайн & CSS

Ответов: 0
Просмотров: 689
Кто нибудь знает, что за баг с тегом атрибутом size тега select в Google Chrome?
При значении size <=4 отображается 4 элемента списка. В других браузерах нормально.

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

Страниц (16): В начало « ... 7 8 9 10 [11] 12 13 14 15 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB