Старый 25.11.2005, 12:23   #1   
89036541967
 
Аватар для Dim_Z
 
Сообщений: 850
Регистрация: 09.07.2004
Возраст: 35

Dim_Z вне форума Не в сети
Php вопрос.

Есть два фаила menu.php
Цитата:
<?

include("menudb.php");
echo $menu[0][link];

?>
и menudb.php
Цитата:
<?php
$menu=array (
array ( 'menunm'=>"Главная",
'link'=>"index.php",
'alt'>"" ),
array ( 'menunm'=>"Программы",
'link'=>"modules/soft.php",
'alt'>"Программы" ),
array ( 'menunm'=>"Статьи",
'link'=>"modules/docs.php",
'alt'>"Статьи" )
);
?>
Почему при исполнении menu.php сервер выводит
Use of undefined constant link - assumed 'link' in menu.php on line 4
и пишет index.php т.e menu[0][link]
  Ответить с цитированием
Старый 25.11.2005, 12:42   #2   
Форумец
 
Аватар для Vital_N
 
Сообщений: 1,834
Регистрация: 04.04.2005

Vital_N вне форума Не в сети
Правильно - ['link']
  Ответить с цитированием
Старый 25.11.2005, 12:57   #3   
89036541967
 
Аватар для Dim_Z
 
Сообщений: 850
Регистрация: 09.07.2004
Возраст: 35

Dim_Z вне форума Не в сети
Спасибо
  Ответить с цитированием
Старый 25.11.2005, 13:41   #4   
89036541967
 
Аватар для Dim_Z
 
Сообщений: 850
Регистрация: 09.07.2004
Возраст: 35

Dim_Z вне форума Не в сети
Сейчас нужно вывести кол-во элеменьов скрипт
Цитата:
include("menu.inc");
echo $menu[count($menu)];
echo $menu[0]['link'];
выводит
Undefined offset: 3
  Ответить с цитированием
Старый 25.11.2005, 13:54   #5   
Memory test: failed
 
Аватар для DMakeev
 
Сообщений: 699
Регистрация: 21.03.2003
Возраст: 43
Записей в дневнике: 7

DMakeev вне форума Не в сети
count($menu) выдает количество элементов. В данном случае 3.
Элементы нуменуются с 0, то бишь у тебя есть элементы 0,1,2. Элемента 3 у тебя нет, о чем и сообщается.

Если хочешь вывести количество элементов, то: echo count($menu); если нужен последний элемент: echo $menu[count($menu)-1];
  Ответить с цитированием
Старый 25.11.2005, 16:42   #6   
89036541967
 
Аватар для Dim_Z
 
Сообщений: 850
Регистрация: 09.07.2004
Возраст: 35

Dim_Z вне форума Не в сети
Надо вывести массив с menunm и ссылкой на каждый menunm[x] link[x]
Цитата:
<?php
include("menu.inc");
$tab=count($menu);
do {
echo "<a href=",$menu[$n]['link'],">",$menu[$n]['menunm'],"</a><br>";
$n=$n+1;
}
while ($n=$tab-1);

?>
Он выводит Главная
Статьи
Сьатьи и т.д. до бесконечности.Как это исправить?
  Ответить с цитированием
Старый 25.11.2005, 16:51   #7   
Форумец
 
Аватар для Vital_N
 
Сообщений: 1,834
Регистрация: 04.04.2005

Vital_N вне форума Не в сети
Цитата:
Сообщение от Dim_Z
Надо вывести массив с menunm и ссылкой на каждый menunm[x] link[x]

Он выводит Главная
Статьи
Сьатьи и т.д. до бесконечности.Как это исправить?
вот здесь while ($n=$tab-1);
ты присваиваешь $n значение $tab
во вторых лучше используй foreach для прохода по массиву
  Ответить с цитированием
Старый 25.11.2005, 17:26   #8   
89036541967
 
Аватар для Dim_Z
 
Сообщений: 850
Регистрация: 09.07.2004
Возраст: 35

Dim_Z вне форума Не в сети
Цитата:
<?php
include("menu.inc");
$tab=count($menu);
for ($n=$tab;$n<=3;$n++)
{
echo "<a href=",$menu[$n]['link'],">",$menu[$n]['menunm'],"</a><br>";
};

?>
Выводит
Notice: Undefined offset: 3
  Ответить с цитированием
Старый 25.11.2005, 17:33   #9   
Форумец
 
Аватар для Vital_N
 
Сообщений: 1,834
Регистрация: 04.04.2005

Vital_N вне форума Не в сети
Цитата:
Сообщение от Dim_Z
Выводит
Notice: Undefined offset: 3
читать умеешь? - юзай foreach и будет тебе счастье ))
http://ru.php.net/manual/ru/control-...es.foreach.php
  Ответить с цитированием
Старый 25.11.2005, 18:40   #10   
Форумец
 
Аватар для artman
 
Сообщений: 282
Регистрация: 09.03.2004
Возраст: 44

artman вне форума Не в сети
Решил вопрос тоже в тему, если позволите.

Есть таблица с событиями: дни рождения... и т. п.
Надо выводить события, которые будут в ближайшую неделю, месяц.
Решить с помощью своих загоных формул могу, но нету ничего случайно стандартного? Типа функций каких.
  Ответить с цитированием
Старый 25.11.2005, 22:06   #11   
Форумец
 
Сообщений: 90
Регистрация: 11.10.2005
Возраст: 91

aldic вне форума Не в сети
artman, слушай, взял бы ты справочник по пхп прочел, что ли...

http://phpclub.net/manrus/
  Ответить с цитированием
Старый 25.11.2005, 22:14   #12   
Форумец
 
Аватар для Vital_N
 
Сообщений: 1,834
Регистрация: 04.04.2005

Vital_N вне форума Не в сети
Цитата:
Сообщение от artman
Решил вопрос тоже в тему, если позволите.

Есть таблица с событиями: дни рождения... и т. п.
Надо выводить события, которые будут в ближайшую неделю, месяц.
Решить с помощью своих загоных формул могу, но нету ничего случайно стандартного? Типа функций каких.

пхп тут ни к чему - конечно если у тебя даты в базе хранятся в соответствующем формате - просто делаешь выборку типа

SELECT something FROM tbl_name
WHERE DAYOFYEAR(date_col) - DAYOFYEAR(NOW()) <= 7;

лучше почитай соотвествующий раздел мана мускула плюс немного логики
  Ответить с цитированием
Старый 26.11.2005, 08:52   #13   
error #65535
 
Аватар для maximn
 
Сообщений: 5,225
Регистрация: 16.11.2003
Возраст: 26

maximn вне форума Не в сети
Цитата:
Сообщение от Vital_N
пхп тут ни к чему - конечно если у тебя даты в базе хранятся в соответствующем формате - просто делаешь выборку типа

SELECT something FROM tbl_name
WHERE DAYOFYEAR(date_col) - DAYOFYEAR(NOW()) <= 7;

лучше почитай соотвествующий раздел мана мускула плюс немного логики
здароф виталик, спасиб тебе за нусферу исчо раз, кстати она с месяц назад отвалилась, сказала "expired" - я новую скачал, ну да фик с ним

но код выше не катит =)

ошибка в том, что не учитывается год, те попадут события и следующих и прошлых годов с числами в пределах 7 дней.

я бы сделал что-то типа

"SELECT * FROM tbl_name WHERE date_col => CUR_DATE() AND date_col <= ".strtotime("+7 day")

добавил
артман, дим_з - RTFM
  Ответить с цитированием
Старый 26.11.2005, 11:01   #14   
Форумец
 
Аватар для artman
 
Сообщений: 282
Регистрация: 09.03.2004
Возраст: 44

artman вне форума Не в сети
aldic Дорогой, читал и не раз Там таких конкретно функций нет, я спрашиваю про дополнительные модули. Или действительно через функции MySQL.

Цитата:
Сообщение от maximn
добавил
артман, дим_з - RTFM
Это ты типа ругнулся что-ли.
  Ответить с цитированием
Старый 26.11.2005, 11:45   #15   
error #65535
 
Аватар для maximn
 
Сообщений: 5,225
Регистрация: 16.11.2003
Возраст: 26

maximn вне форума Не в сети
Цитата:
Сообщение от artman
aldic Дорогой, читал и не раз Там таких конкретно функций нет, я спрашиваю про дополнительные модули.
йа ару. там должны быть функции get_events_for_1_week(), get_events_for_2_week(), get_events_for_3_week()?
Цитата:
Сообщение от artman
Это ты типа ругнулся что-ли.
это типа [R]EAD [T]HE [F]UCKING [M]ANUAL
  Ответить с цитированием
Старый 26.11.2005, 12:41   #16   
89036541967
 
Аватар для Dim_Z
 
Сообщений: 850
Регистрация: 09.07.2004
Возраст: 35

Dim_Z вне форума Не в сети
Vital_N и как ты предлагаешь мне с помощью foreach использовать.Намного сложнее будет.
  Ответить с цитированием
Старый 26.11.2005, 12:54   #17   
89036541967
 
Аватар для Dim_Z
 
Сообщений: 850
Регистрация: 09.07.2004
Возраст: 35

Dim_Z вне форума Не в сети
Лучше скажите как
Цитата:
include("menu.inc");
$tab=count($menu);
$n=0;
for ($n=0;$n=$tab;$n++)
{
echo "<a href=",$menu[$n]['link'],">",$menu[$n]['menunm'],"</a><br>";
};
Исправить
  Ответить с цитированием
Старый 26.11.2005, 13:16   #18   
Форумец
 
Аватар для artman
 
Сообщений: 282
Регистрация: 09.03.2004
Возраст: 44

artman вне форума Не в сети
Цитата:
Сообщение от maximn
йа ару. там должны быть функции get_events_for_1_week(), get_events_for_2_week(), get_events_for_3_week()?
это типа [R]EAD [T]HE [F]UCKING [M]ANUAL
В самом PHP встречаются и забавнее функции. Которые можно было и самому реализовать, тем не менее они есть. Так почему же не существовать предположим функциям сложения, вычитания дат или таким, которые Вы написали .

Про мануалы: читал, читаю и буду читать. Просто вдруг не захотелось парится, думаю, вдруг кто сталкивался с такой проблемой.
  Ответить с цитированием
Старый 26.11.2005, 13:41   #19   
error #65535
 
Аватар для maximn
 
Сообщений: 5,225
Регистрация: 16.11.2003
Возраст: 26

maximn вне форума Не в сети
Цитата:
Сообщение от Dim_Z
Лучше скажите как

Исправить
лучше скажи, ты в танке?
  Ответить с цитированием
Старый 26.11.2005, 13:59   #20   
фотограф
 
Аватар для ilyaerin
 
Сообщений: 2,738
Регистрация: 20.10.2004

ilyaerin вне форума Не в сети
include_once $_SERVER['DOCUMENT_ROOT'].'/menu.inc';
foreach( $menu as $v )
echo '<a href='.$v['link'].'>'.$v['menunm'].'</a><br>';
  Ответить с цитированием
Старый 26.11.2005, 16:25   #21   
89036541967
 
Аватар для Dim_Z
 
Сообщений: 850
Регистрация: 09.07.2004
Возраст: 35

Dim_Z вне форума Не в сети
loshadka Спасибо.
  Ответить с цитированием
Старый 26.11.2005, 16:28   #22   
89036541967
 
Аватар для Dim_Z
 
Сообщений: 850
Регистрация: 09.07.2004
Возраст: 35

Dim_Z вне форума Не в сети
maximn Отличный ответ :"Читай мануал".
  Ответить с цитированием
Старый 26.11.2005, 18:36   #23   
Форумец
 
Аватар для Vital_N
 
Сообщений: 1,834
Регистрация: 04.04.2005

Vital_N вне форума Не в сети
Цитата:
Сообщение от maximn
здароф виталик, спасиб тебе за нусферу исчо раз, кстати она с месяц назад отвалилась, сказала "expired" - я новую скачал, ну да фик с ним
артман, дим_з - RTFM
привет, я все же юзаю Zend - дело привычки ))

год - это понятно - но насколько я понял - надо дни рождения - а они каждый год ))
  Ответить с цитированием
Старый 26.11.2005, 18:41   #24   
Форумец
 
Аватар для Vital_N
 
Сообщений: 1,834
Регистрация: 04.04.2005

Vital_N вне форума Не в сети
Цитата:
Сообщение от Dim_Z
maximn Отличный ответ :"Читай мануал".
Просто надо учиться думать и самому познавать истину - если просто подсказать решение - это неинтересно - ты его просто тупо будешь юзать не понимая - надо самому дойти - тебе сказали - foreach - а ты поленился полезть в мануал и посмотреть что это такое - подсказать готовое решение для простого вопроса это подложит ьтебе свинью - лишить тебя радости постижения ))) Фанат по тебе плачет
  Ответить с цитированием
Старый 27.11.2005, 21:00   #25   
89036541967
 
Аватар для Dim_Z
 
Сообщений: 850
Регистрация: 09.07.2004
Возраст: 35

Dim_Z вне форума Не в сети
Vital_N я смотрел мануал.Но кое чё не понял.Написано было про другой вид вывода многомерных массивов.
  Ответить с цитированием
Старый 27.11.2005, 21:47   #26   
error #65535
 
Аватар для maximn
 
Сообщений: 5,225
Регистрация: 16.11.2003
Возраст: 26

maximn вне форума Не в сети
гы. ну давайте немного оживим форум =)

дим_з, ну скажи нам пожалуйста:

1. про какой такой "другой вид вывода многомерных массивов" было написано в мануале?

2. приведи нам пожалуйста те слова которые в мануале написаны про "foreach"

3. что ты имел в виду сказав что "через foreach намного сложнее будет"?
  Ответить с цитированием
Старый 27.11.2005, 22:25   #27   
Форумец
 
Аватар для CC
 
Сообщений: 220
Регистрация: 17.04.2003
Записей в дневнике: 1

CC вне форума Не в сети
Цитата:
Сообщение от loshadka
include_once $_SERVER['DOCUMENT_ROOT'].'/menu.inc';
foreach( $menu as $v )
echo '<a href='.$v['link'].'>'.$v['menunm'].'</a><br>';
Кстати с версии php 4.3 можно забыть про гемморой с кавычками , ну и мой совет, перед foreach ВСЕГДА делать проверку

if ( is_array($menu) ) {
foreach( $menu as $v ){
echo "<a href={$v['link']}>{$v['menunm']}</a><br>";
}
}
  Ответить с цитированием
Старый 27.11.2005, 23:11   #28   
фотограф
 
Аватар для ilyaerin
 
Сообщений: 2,738
Регистрация: 20.10.2004

ilyaerin вне форума Не в сети
CC если уж говорить на чистоту, то

echo 'bla-bla'.$str;

будет работать быстрее, чем

echo "bla-bla{$str}";

з.ы. да и подсвечиваться такой код будет прекрасно, практически любым редактором )
  Ответить с цитированием
Старый 27.11.2005, 23:24   #29   
error #65535
 
Аватар для maximn
 
Сообщений: 5,225
Регистрация: 16.11.2003
Возраст: 26

maximn вне форума Не в сети
модеры закройте тему, дальнейший диалог будет таким:
-давайте заоптимизируем!
-это экономия на спичках!
-я тестил!
-я тоже!
-а в классах быстрее/медленнее!
-нифига!
-я тестил!
-я тоже!
итд
  Ответить с цитированием
Старый 28.11.2005, 00:03   #30   
Форумец
 
Аватар для fire-dragon
 
Сообщений: 286
Регистрация: 17.08.2005
Возраст: 49

fire-dragon вне форума Не в сети
имно есть мнение использовать SQL синтаксис он ведь "структурированный язык запросов", и загрузка веб сервера будет меньше и логика очевидней
  Ответить с цитированием
Поиск в теме: 


Опции темы

Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind