Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопросы от новичков [2]

 PHP.SU

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


 Страниц (5): « 1 [2] 3 4 5 »   

> Без описания
IllusionMH
Отправлено: 22 Февраля, 2012 - 21:01:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Symby,
PHP:
скопировать код в буфер обмена
  1. if(is_array[$m[$i]]) {
  2. echo "массив";
  3. //функция прохода по массиву
  4. } else {
  5. echo $m[$i];
  6. }
 
 Top
Symby
Отправлено: 22 Февраля, 2012 - 21:14:03
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2012  
Откуда: Пермь


Помог: 1 раз(а)




IllusionMH, LIME
Большое спасибо, такие элементарные вещи порой не вижу( наверно то что опыта мало, сказывается.

(Отредактировано автором: 22 Февраля, 2012 - 21:15:25)



-----
Пишу немного о электронной музыке > http://techno-arena[dot]ru
 
 Top
IllusionMH
Отправлено: 22 Февраля, 2012 - 21:15:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Symby, ну это в случае если нужно вывести инфу специальным образом. Если для себя в качестве дебага var_dump

LIME, спасибо Улыбка Изначально сообщение не заметил.
Забыл про парaметр offset. Думал через "обрезание" строки + смещение на вырезанную часть. (способ мышления с паскаля остался)

(Отредактировано автором: 22 Февраля, 2012 - 21:21:11)

 
 Top
Symby
Отправлено: 22 Февраля, 2012 - 21:21:21
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2012  
Откуда: Пермь


Помог: 1 раз(а)




IllusionMH пишет:
var_dump

Не знал бы что есть такая функция то не знаю как писал сейчас. Она незаменима )
Цитата:
Думал через "обрезание" строки + смещение на вырезанную часть. (способ мышления с паскаля остался)

Изначально делал так,
циклом whil'ом проверял пока не равно "заданному слову" и записывал в переменную каждый символ, и если когда слово совпало то записывал последнего символа позицию.
Т.к. у меня всегда первым словом в строке шло то самое искомое)
Затем с сохранившейся позиции я шел дальше до нового совпадения, и сохранял еще позицию. и потом в цикле я просто от 1 позиции до 2 присваивал "" =))) и потом 1 позиции присваивал значение второй позиции и по новой. Запутанная логика)

(Отредактировано автором: 22 Февраля, 2012 - 21:31:03)



-----
Пишу немного о электронной музыке > http://techno-arena[dot]ru
 
 Top
Symby
Отправлено: 23 Февраля, 2012 - 14:27:46
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2012  
Откуда: Пермь


Помог: 1 раз(а)




Я точно тупица) Не могу разобраться ссылками...
Смотрите допустим, у нас есть блок в котором выводится 4 строки или элемента массива.
PHP:
скопировать код в буфер обмена
  1.  
  2. echo "<meta charset='utf-8'>";
  3. $rows = 4; //количество вывода на странице информации
  4. $iCurrentPage = 1; //Это получается текущая страница 1
  5. $rgArr = array("Привет", "Здравствуйте", "Пока", "До свидание", "Как дела?", "Все окей?", "Как настроение?", "Чем занята?");
  6. $iCountEl = count($rgArr); // количество элементов массива
  7. $pages = ceil($iCountEl / $rows);
  8. $iCount = 0;
  9. foreach ($rgArr as $k => $v) {
  10.         if ($iCount != $rows) {
  11.                 echo $v . "<br>";
  12.                 $iCount++;
  13.         }
  14. }
  15.  
  16. for ($i = 1; $i <= $pages; $i++)
  17. {
  18.         if ($i != $iCurrentPage)
  19.         echo " [ <a href='test3.php?page=" . $i . "'>" . $i . "</a>]";
  20.         else echo "[" . $i . "]";
  21. }
  22.         if ($iCurrentPage < $pages) {
  23.                 echo "<a href='test3.php?page=" . ($iCurrentPage + 1) . "'>Дальше>></a>";
  24.         }
  25.  
  26.  


Как мне вывести информацию на 1 странице одни 4 элемента на 2 странице другие 4 элемента?? Что то я не догоняю работу со ссылками, есть какие нить статьи??


-----
Пишу немного о электронной музыке > http://techno-arena[dot]ru
 
 Top
Panoptik
Отправлено: 23 Февраля, 2012 - 15:58:00
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




в массив GET (а значит в ссылку добавляем параметр, например, page - который отвечает за номер страницы)
у нас для страниц будет 2 ссылки вида
CODE (html):
скопировать код в буфер обмена
  1. <a href="?page=1">page 1</a><br /><a href="?page=2">page 2</a>

теперь в коде мы проверяем этот параметр
PHP:
скопировать код в буфер обмена
  1.  
  2. if(!isset($_GET['page'])) {
  3.  $page = 1;
  4. } else {
  5.  $page = (int)$_GET['page'];
  6. }
  7. //количество элементов для вывода
  8. $count_elements = 4;
  9. $start_position = ($page-1)*$count_elements;
  10. //массив
  11. $rgArr = array("Привет", "Здравствуйте", "Пока", "До свидание", "Как дела?", "Все окей?", "Как настроение?", "Чем занята?");
  12. for($i=$start_position; $i<($start_position+$count_elements); $i++) {
  13.  echo $rgArr[$i]."<br />";
  14. }
  15.  

(Отредактировано автором: 23 Февраля, 2012 - 15:59:08)



-----
Just do it
 
 Top
Symby
Отправлено: 24 Февраля, 2012 - 20:38:15
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2012  
Откуда: Пермь


Помог: 1 раз(а)




Panoptik
Спасибо )
Выводится по 4 записи.
Допустим у нас 10 записей, получаем 3 страницы, 1,2 - по 4 записи, а на 3-ю страницу 2 записи выводится.
То у нас получается обращение к не существующим элементам, 10 и 11.
Как я делаю чтоб не появлялось предупреждение к обращение к ним:

Правильно я делаю, проверяю на существование каждого элемента? У меня все норм, но так надо ли делать? Улыбка


-----
Пишу немного о электронной музыке > http://techno-arena[dot]ru
 
 Top
Bio man
Отправлено: 24 Февраля, 2012 - 22:40:06
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Symby, именно так.
 
 Top
Symby
Отправлено: 25 Февраля, 2012 - 21:25:31
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2012  
Откуда: Пермь


Помог: 1 раз(а)




Опять загвоздка, опять сомнения..
Опять постраничный вывод..

Допустим мы получили ассоциативный массив из 10 постов, допустим.

PHP:
скопировать код в буфер обмена
  1.  
  2. $rgArr = array("Say1" => "Hello people", "Say2" => "Hello world", "Say3" => "Hello RC", "Say4" => "Привет", "Say5" => "Как дела", "Say6" => "Как жизнь",
  3.                        "Say7" => "Бла бла", "Say8" => "hihhi", "Say9" => "Hi!", "Say10" => "Goodbie");
  4.  


Указали все переменные насчет как выводить, указали.

PHP:
скопировать код в буфер обмена
  1.  
  2. $iArticles = count($rgArr); // Количество всего постов
  3. $iArticles_num = 2; // Количество выводимых постов на 1 страницу
  4. $iPage_num = intval(ceil($iArticles / $iArticles_num)); // Количество страниц исходя из количество постов/количество выводимых на 1 страницу
  5.  


Но как мне выводить? Через foreach пробовал белиберда получается, через for с припиской функций (next, current, key) ?
Мне нужно выводить кеи и значение. Как быть?? Пробовал делать условие внутри foreach, но оно лишь один раз срабатывала, а остальные разы выводила одно и тоже значение странно как то Хм


-----
Пишу немного о электронной музыке > http://techno-arena[dot]ru
 
 Top
Symby
Отправлено: 11 Мая, 2012 - 22:13:13
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2012  
Откуда: Пермь


Помог: 1 раз(а)




Давно не появлялся, начну сразу же с дела.
Пишу диплом, о качестве кода пока не задумываюсь, кстати посмотреть хочу курсы "СПЕЦИАЛИСТ" по php, стоит ли? Просто к видеокурсам скептично отношусь.

В коде наблюдается три функции одинаковые по составу.

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. //Добавление дисциплин
  3.         function Discipline_Insert($kod, $spec, $name, $cutName, $hoursOne, $hoursTwo, $hoursAll, $vidZach) {
  4.                 $link = db_conn();
  5.                 $insert = "INSERT INTO `Discipline` VALUES ('$kod', '$spec', '$name', '$cutName', '$hoursOne', '$hoursTwo', '$hoursAll', '$vidZach')";
  6.                 mysql_query($insert);
  7.                 mysql_close($link);
  8.         }
  9.  
  10.  
  11.                 //Добавление преподователей
  12.         function Teacher_Insert($kodTeach, $name, $numCab) {
  13.                 $link = db_conn();
  14.                 $insert = "INSERT INTO `Teachers` VALUES ('$kodTeach', '$name', '$numCab')";
  15.                 mysql_query($insert);
  16.                 mysql_close($link);
  17.         }
  18.  
  19.                         //Добавление групп
  20.         function Group_Insert($kod, $name, $rate, $date, $teach) {
  21.                 $link = db_conn();
  22.                 $insert = "INSERT INTO `Group` VALUES ('$kod', '$name', '$rate', '$date', '$teach')";
  23.                 mysql_query($insert);
  24.                 mysql_close($link);
  25.         }
  26.  
  27.         //Добавление специальностей
  28.         function Spec_Insert($kod, $name, $cutName) {
  29.                 $link = db_conn();
  30.                 $insert ="INSERT INTO `SpecTable` VALUES ('$kod', '$name', '$cutName')";
  31.                 mysql_query($insert);
  32.                 mysql_close($link);
  33.         }
  34.  

Возможно как то сделать из них одну функцию? Думаю реализовать при помощи func_get_arg() и func_num_args(), при вызове отдавать известный параметр функции название таблицы и в самой функции при помощи переменной подставлять название и отправлять запрос.

(Отредактировано автором: 11 Мая, 2012 - 22:13:46)



-----
Пишу немного о электронной музыке > http://techno-arena[dot]ru
 
 Top
LIME
Отправлено: 11 Мая, 2012 - 22:24:04
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Symby пишет:
хочу курсы "СПЕЦИАЛИСТ"
эти можно смотреть
Symby пишет:
Возможно как то сделать из них одну функцию?
да
надо делать
 
 Top
sKaa
Отправлено: 11 Мая, 2012 - 22:50:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


incker, endif; endwhile; endforeach - обычные синонимы тех самых фигурных скобок, но названы гордым именем альтернативного синтаксиса, ничем экзотическим они от своих собратьев не отличаются, кроме как зрительным восприятием, и это это только "может быть" Улыбка

PHP:
скопировать код в буфер обмена
  1.  
  2. if(TRUE) :
  3.   ...
  4.   ...
  5. elseif(TRUE==FALSE) :
  6.   ...
  7. else :
  8.   ...
  9. endif;
  10.  

Очень печально, что вы путаете эти синонимы фигурных скобок с простейшими конструкциями языка которые могут останавливать вложенные циклы любого уровня!

PHP:
скопировать код в буфер обмена
  1.  
  2. $a = 30;
  3. $b = 20;
  4. $c = 10;
  5. while($a > 0):
  6.    $a--;
  7.    while($b > 0):
  8.       $b--;
  9.       if($b == 10) :
  10.          break 2; // Прерывает итерацию оставшихся двух циклов ($b > 0 & $a >0)
  11.       endif;
  12.       while($c > 0):
  13.          $c--;  
  14.          if($c == 5) :
  15.             break 1; // Прерываем итерацию ближайшего цикла ($c > 0);
  16.          endif;
  17.       endwhile;
  18.    endwhile;
  19. endwhile;
  20. echo $a . '<br> ' .  $b . '<br> ' .  $c;
  21.  


Собственно break; полностью прерывает все последующие итерации любого цикла и полностью останавливает его, условно говоря переходит сразу за предел цикла, в качестве необязательного аргумента принимает числовое значение, в котором указано кол-во циклов которые нужно прервать!
Важно не путать с continue; который в свою очередь призван прервать только текущую итерацию!

Стыдно товарищи! А еще боремся за почетное звание форума культуры и быта!)))) ™ "Иван Васильевич меняет профессию"

(Отредактировано автором: 11 Мая, 2012 - 23:14:55)

 
 Top
LIME
Отправлено: 11 Мая, 2012 - 22:52:55
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




заблудился?
 
 Top
sKaa
Отправлено: 11 Мая, 2012 - 22:56:30
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


Я? Да мог, легко вообще! Сейчас перепроверю и добавлю цитату если не ошибся !)
(Добавление)
Нет, ошибки быть не могло! )
Внимание ! Вопрос форумчанина :
Symby пишет:

Хотелось узнать про альтернативный синтаксис конструкций php, то есть про

Symby пишет:

Symby пишет:

Такие подобные конструкции используются для чего? Как я понимаю они используются для упрощения редактирования и чтения html кода заключенный в php файл?

Далекий от истины ответ другого форумчанина, таким образом и появляются различные неверные убеждения в правильности или нет использования тех или иных вещей - Вы сплетники господа!)
incker пишет:
нет endif и endwhile. все сделано умнее. чтоб можно было делать условие внутри условия которое в еще одном условии (то же самое while)

(Добавление)
Ну а вообще пхп славиться большим количеством функций сам факт присутствия которых очень сложно объяснить. Например goto ?? Зачем?? Зачем его включили в пых 5.3 если не ошибаюсь Улыбка

Ну а вообще такие вещи делают сам язык более универсальным. Вот ты писал всю жизнь на куБейсике, там как раз все эти begin, goto итд, а тут случилось так, что пых поддерживает такой изврат. Это и многое другое, например не строгая типизация данных и куча остальной фигни обеспечивает пыху очень низкий "входной порог", слишком уже малый багаж знаний нужен начинающему пых прогеру, чтобы с чистым сердцем и без угрызений совести начать говнокодить Улыбка

(Отредактировано автором: 11 Мая, 2012 - 23:09:11)

 
 Top
IllusionMH
Отправлено: 11 Мая, 2012 - 23:22:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)





sKaa пишет:
Ну а вообще пхп славиться большим количеством функций сам факт присутствия которых очень сложно объяснить. Например goto ?? Зачем?? Зачем его включили в пых 5.3 если не ошибаюсь Улыбка

омг, глянул - реально добавили с 5[dot]3[dot]0
Но даже офф документация(при поддержке xkcd.com) как бы намекает Подмигивание
 
 Top
Страниц (5): « 1 [2] 3 4 5 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB