PHP.SU

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

Страниц (19): [1] 2 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 271
dXdYdZ Отправлено: 01 Января, 2015 - 23:38:01 • Тема: Новогодние поздравления! :) • Форум: Прочее

Ответов: 14
Просмотров: 129
Присоединяюсь к поздравлениям. Желаю всем счастья.
dXdYdZ Отправлено: 12 Декабря, 2014 - 11:42:01 • Тема: Помогите навести порядок в некотором агрегаторе... • Форум: Вопросы новичков

Ответов: 20
Просмотров: 859
Сталкивался с подобной задачей. Нашёл оригинальное решение.
PHP:
скопировать код в буфер обмена
  1.  
  2. //Функция сообщает, что процесс с заданным номером запущен
  3. function start_process($number)
  4.     {
  5.     //Блокируем доступ к файлу процесса
  6.     $fp=fopen ("processes/proc_".(string)$number,"w+");//открытие
  7.     if($fp)
  8.         {
  9.         if(flock($fp,LOCK_EX+LOCK_NB))
  10.                 return $fp;
  11.          else
  12.                 return false;
  13.         }
  14.     return $fp;
  15.     }
  16. //Получаем файл процесса
  17. $process_file=start_process($number);
  18. //Проверяем, доступен ли файл, и, следовательно, свободен ли процесс
  19. if($process_file===false)
  20.     exit;

(Добавление)
В Вашем случае, кроме этого, надо ещё где-то текущий этап сохранять
(Добавление)
Ой, не заметил, что тему можно закрыть уже. Ну да ладно. Раз уж написал-пусть будет.
(Добавление)
Плюс этого способа в том, что даже при аварийном вылете скрипта в любом месте всё работает как надо.
dXdYdZ Отправлено: 06 Декабря, 2014 - 20:21:32 • Тема: как составить возможные комбинации сочетания массивов • Форум: Вопросы новичков

Ответов: 5
Просмотров: 321
Ну, с ходу вот так получается. Хотя не факт, что это лучший вариант
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.  
  4. $a=array('a1','a2','a3');
  5. $b=array('b1','b2','b3');
  6. $c=array('c1','c2','c3');
  7.  
  8. $params=array($a,$b,$c);
  9.  
  10. $res=array();
  11.  
  12. function recurs($params,$num,$sub_res,&$res)
  13.         {
  14.         foreach($params[$num] as $pos=>$sub_param)
  15.                 {
  16.                 $sub_res1=$sub_res;
  17.                 $sub_res1[]=$sub_param;
  18.                 if($num==count($params)-1)
  19.                         {
  20.                         $res[]=$sub_res1;
  21.                         }
  22.                 else
  23.                         recurs($params,$num+1,$sub_res1,$res);
  24.                 }
  25.         }
  26.  
  27. recurs($params,0,array(),$res);
  28.  
  29. var_dump($res);
dXdYdZ Отправлено: 06 Декабря, 2014 - 19:03:07 • Тема: как составить возможные комбинации сочетания массивов • Форум: Вопросы новичков

Ответов: 5
Просмотров: 321
Не известно количество элементов в массивах, или количество самих массивов?
dXdYdZ Отправлено: 05 Декабря, 2014 - 12:27:00 • Тема: На чем запиливать будем? • Форум: Колонка администратора

Ответов: 107
Просмотров: 14200
RomAndry пишет:
Удобства исчезли?

Что касается топов, то лично мне они не нужны. А вот последние темы - нужны. С помощью них можно было отслеживать, какие появились темы и в каких темах появились новые ответы и быстренько их читать/отвечать в них. А теперь для того, чтобы понять, где появились новые темы или новые ответы, придётся перебирать все разделы форума. Это очень неудобно.
dXdYdZ Отправлено: 15 Ноября, 2014 - 22:49:05 • Тема: вывод из бд mysql • Форум: Напишите за меня, пожалуйста

Ответов: 5
Просмотров: 55
Только что проверил запрос teddy - нормально работает. На Вашей таблице возвращает
name maxtime
"Ivan" "8"
"Masa" "6"
"Nona" "5"
"Petr" "8"
dXdYdZ Отправлено: 14 Ноября, 2014 - 19:25:03 • Тема: Анимация с задержкой в слайдере • Форум: JavaScript & VBScript

Ответов: 10
Просмотров: 1658
Если используете JQuery, то там есть функция delay
http://jquerybook[dot]ru/api/[dot]delay()-fn50[dot]html
Если пишете на чистом JS, то можно использовать функцию setTimeout().
dXdYdZ Отправлено: 11 Ноября, 2014 - 16:14:29 • Тема: Что должно возвращать $s-++$s • Форум: Вопросы новичков

Ответов: 5
Просмотров: 270
всё правильно возвращает. Сначала переменная $s увеличивается на 1, то есть становится равной 11. После этого Из $s вычитается $s, то есть из 11 вычитается 11, и получается 0.
(Добавление)
Уже до меня написали...
dXdYdZ Отправлено: 10 Ноября, 2014 - 20:31:16 • Тема: Разобрать html на абзацы • Форум: Регулярные выражения

Ответов: 4
Просмотров: 518
Ну так, тогда вот так получается:
PHP:
скопировать код в буфер обмена
  1. $reg='#<p(.*?)>(.+?)</p>#mi';
  2. preg_match_all($reg,$page,$matches);

Из $matches уже вытаскиваете результат, как Вам удобно
dXdYdZ Отправлено: 10 Ноября, 2014 - 20:00:14 • Тема: Pagination • Форум: Вопросы новичков

Ответов: 16
Просмотров: 579
CODE (htmlphp):
скопировать код в буфер обмена
  1. Notice: Undefined variable: articles in Z:\home\test2.ru\www\admin\articles.php on line 26
  2. [Денвер: показать возможную причину ошибки]
  3. Warning: Invalid argument supplied for foreach() in Z:\home\test2.ru\www\admin\articles.php on line 26

Ну так, надо или проверять, существует ли массив $articles, либо перед его наполнением инициализировать этот массив таким образом:
dXdYdZ Отправлено: 10 Ноября, 2014 - 00:16:03 • Тема: замена цвета в изображении png на прозрачное • Форум: Графика в PHP

Ответов: 2
Просмотров: 1729
Возможно, дело в том, что надо использовать функцию
перед
Это для того, чтобы преобразовать полноцветное изображение в изображение с палитрой.
Я увидел это вот тут: http://www[dot]softtime[dot]ru/forum/rea[dot][dot][dot]12256&page=0
dXdYdZ Отправлено: 09 Ноября, 2014 - 20:02:47 • Тема: Pagination • Форум: Вопросы новичков

Ответов: 16
Просмотров: 579
file.shreder пишет:
скопировать код в буфер обмена
Notice: Undefined variable: page2left in Z:\home\test2.ru\www\admin\articles.php on line 63
[Денвер: показать возможную причину ошибки]
Notice: Undefined variable: page1right in Z:\home\test2.ru\www\admin\articles.php on line 63
 
Notice: Undefined variable: page2right in Z:\home\test2.ru\www\admin\articles.php on line 63
все равно присутствует

Ты весь мой код себе скопировал? У меня никаких предупреждений нету.
dXdYdZ Отправлено: 09 Ноября, 2014 - 19:58:59 • Тема: Pagination • Форум: Вопросы новичков

Ответов: 16
Просмотров: 579
file.shreder пишет:
что это значит? действительно заработало!!! Можешь про $posts = $data[0]; пояснить?

Ну, запрос
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT COUNT(*) FROM articles

Вернёт 1 строку, в которой есть только 1 элемент - количество записей в таблице articles/
Этот код

Вернёт массив, который содержит значения из первой и единственной строки результата

Вернёт нулевой (то есть первый по счёту) элемент этого массива, то есть первый (и, в данном случае, единственный) результат - число, выведенное конструкцией COUNT(*).
(Добавление)
Почитай про функцию mysql_fetch_array (http://www.php.su/mysql_fetch_array )
dXdYdZ Отправлено: 09 Ноября, 2014 - 19:36:03 • Тема: Pagination • Форум: Вопросы новичков

Ответов: 16
Просмотров: 579
Вот так работает:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.                  
  3. require "database_connection.php";
  4.       //записей в базе мало, лень добавлять, поэтому поставил 2 записи на экран        
  5. $num = 2;
  6.                
  7. $page=isset($_GET['page'])?$_GET['page']:1;
  8.                  
  9. $result = mysql_query("SELECT COUNT(*) FROM articles");
  10. $data=mysql_fetch_array($result);
  11. $posts = $data[0];
  12.                  
  13.  $total = intval(($posts - 1) / $num) + 1;
  14.   echo $result;
  15. echo $posts;
  16. $page = intval($page);
  17.           //так было у меня , но я выше исправил на твое, а это убрал        
  18. //if(empty($_GET['page']) or $_GET['page'] < 0) $page = 1;
  19.   if($page > $total) $page = $total;
  20.              
  21. $start = $page * $num - $num;
  22.        
  23. $result = mysql_query("SELECT * FROM articles LIMIT $start, $num");
  24. if (!$result){ die (mysql_error());}
  25.      
  26.  
  27. for ($c=0; $c<mysql_num_rows($result); $c++)
  28. {
  29. $articles[] = mysql_fetch_array($result);
  30. }?>
  31.  <?foreach($articles as $article): ?>
  32.    <div id="articles">
  33.      <div id="title"><h3>
  34.          <?=$article['title']?></h3>
  35.      </div>
  36.      <div id="view">
  37.       <?=$article['view']?> Переглядів
  38.      </div>
  39.          <div id="date">
  40.          <?=$article['date']?>
  41.      </div>
  42.  
  43. <? endforeach; ?>
  44.  
  45. <?
  46.  
  47. if ($page > 1) $pervpage = '<a href="?do=articles&page=1"><<</a>
  48.                             <a href="?do=articles&page='. ($page - 1) .'"><</a> ';
  49. else
  50.    $pervpage='';
  51.  
  52. if ($page < $total) $nextpage = ' <a href="?do=articles&page='. ($page + 1) .'">></a>
  53.                                 <a href="?do=articles&page=' .$total. '">>></a>';
  54. else
  55.    $nextpage='';
  56. // var_dump($total);
  57.  
  58. if($page - 2 > 0) $page2left = ' <a href= ?do=articles&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
  59. else $page2left='';
  60. if($page - 1 > 0) $page1left = '<a href= ?do=articles&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
  61. else $page1left='';
  62. if($page + 2 <= $total) $page2right = ' | <a href= ?do=articles&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
  63. else $page2right='';
  64. if($page + 1 <= $total) $page1right = ' | <a href=?do=articles&page='. ($page + 1) .'>'. ($page + 1) .'</a>';
  65. else $page1right='';
  66.  
  67.  
  68. echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
  69.  
  70. ?>

Основная ошибка заключалась в том, что ты получал количество постов с помощью

$posts при этом всегда будет равен 1, так как количество возвращённых строк в данном случае-всегда 1, потому что возвращается только 1 строка с количеством count(*).
Вместо этого надо было сделать так:

В данном случае мы получаем в переменную posts значение, полученное с помощью count(*)
(Добавление)
И ещё, я этого не делал в твоём коде, но всё же очень желательно ввести url-адреса ссылок, возвращаемых скриптом, в кавычках, а не просто так.
dXdYdZ Отправлено: 09 Ноября, 2014 - 18:20:28 • Тема: Pagination • Форум: Вопросы новичков

Ответов: 16
Просмотров: 579
С ходу вижу недоработки вот тут:
1) url-адреса ссылок надо заключать в кавычки.
Не так:
PHP:
скопировать код в буфер обмена
  1. if($page - 2 > 0) $page2left = ' <a href= ?do=articles&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';

А так:
PHP:
скопировать код в буфер обмена
  1. if($page - 2 > 0) $page2left = ' <a href="?do=articles&page='. ($page - 2) .'">'. ($page - 2) .'</a> | ';

И так везде.
(Добавление)
2) Вместо
PHP:
скопировать код в буфер обмена
  1. if ($page != 1) $pervpage = '<a href= ?do=articles&page=1><<</a>
  2.                              <a href= ?do=articles&page='. ($page - 1) .'><</a> ';
  3.  
  4. if ($page != $total) $nextpage = ' <a href= ?do=articles&page='. ($page + 1) .'>></a>
  5.                                  <a href= ?do=articles&page=' .$total. '>>></a>';

Лучше сделать так:
PHP:
скопировать код в буфер обмена
  1. if ($page > 1) $pervpage = '<a href="?do=articles&page=1"><<</a>
  2.                              <a href="?do=articles&page='. ($page - 1) .'"><</a> ';
  3. else
  4.    $pervpage='';
  5.  
  6. if ($page < $total) $nextpage = ' <a href="?do=articles&page='. ($page + 1) .'">></a>
  7.                                  <a href="?do=articles&page=' .$total. '">>></a>';
  8. else
  9.    $nextpage='';

(Добавление)
Запустить твой код я сейчас не могу, так как сервер запустится только после перезагрузки, поэтому остальное посмотрю позже. Может, до этого кто-нибудь другой ошибку найдёт.

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB