Forum Webscript.Ru

Программирование => PHP => Тема начата: Художник от 10 Октября 2003, 15:33:44

Название: PHP+MySQL
Отправлено: Художник от 10 Октября 2003, 15:33:44
Допишите если не трудно...
Не могу закончить уже месяц...

 function out_news_sc()
 {
  $this->sql_query="SELECT n_id, n_name, n_lead, n_sc, n_com FROM tbl_news WHERE n_id=$id";
  $this->sql_execute();

  if($this->sql_err) return(11);

  while(list($id, $name, $lead, $sc, $com )=mysql_fetch_row($this->sql_res))
  {
  $this->out_news_sc.="
$name
\\n
$lead\\n
 $sc
\\n
$com
\\n";
  }

 return(0);
 }


А вот и сообщение об ошибке:

Notice: Undefined variable: id in z:\\home\\localhost\\module\\out.class on line 47

Буду очень признателен
Название: PHP+MySQL
Отправлено: MadDog от 10 Октября 2003, 15:43:30
[OFF]угу, сейчас все бросят свои дела и будут дописывать неизвестно что, неизвестно кому, да ещё "дадом" (с) Сова[/OFF]
Название: PHP+MySQL
Отправлено: Художник от 10 Октября 2003, 16:33:23
хмм... интересно что ты понял из того что я написал ?

я же не прошу тебя дописать весь проект =)
я лиш прошу помочь...

я просто не знаю как сделать чтоб он не выдовал ошибку...

вот и все...

ну если все таки тебе не трудно будет помочь мне...
при помощи этой функции я выбираю новость по id и выставляю его на сайт...
Название: PHP+MySQL
Отправлено: Меняздесьдавнонет от 10 Октября 2003, 16:36:51
Зря ты стал учить РНР по курепинскому курсу.
Он ужасен.
и копаться в его ошибках - противное занятие.

вместо $id" напиши ".intval($_REQUEST[\'id\'])
в точности так, как написано!
Название: PHP+MySQL
Отправлено: Художник от 10 Октября 2003, 17:07:54
RomikChef

Спасибо что откликнулся...



теперь выводит мне :

Notice: Undefined index: id in z:\\home\\localhost\\module\\out.class on line 49

хотя незнаю правильно я тебя понял я написал твою строчку как ты просил меня... может мне теперь придется менять все мои $id на твою строчку ?

разъясни..

зарание благодарен...
Название: PHP+MySQL
Отправлено: Меняздесьдавнонет от 10 Октября 2003, 17:11:55
Да, меняем все взад :)
$id" возвращаешь на место, а в начале скрипта пишешь
if (isset($_REQUEST[\'id\'])) $id=intval($_REQUEST[\'id\']); else $id=0;
Название: PHP+MySQL
Отправлено: Художник от 10 Октября 2003, 17:34:25
Так, уже становится интересней...
теперь у меня пустой экран... но все же это больше радует.. чем когда он ругается на меня =)

я отладил наш скрипт и он мне показал что наш $id=0 при любом исходе =)

или может я не так понял ?
Название: PHP+MySQL
Отправлено: Меняздесьдавнонет от 10 Октября 2003, 17:54:18
что отладил - это молодец.

при любом - это при каком? ты передаешь ему id?

я не очень знаю, что такое этот курепинскрий скрипт, и как там передаются переменные, но учти, что внутри функций переменные остального скрипта не видны.
так что, если $id не видно внутри функции, надо ее как-то туда передать.
а если невидна, то ты ее просто не передаешь.

Да, а id - это чило или нет?!
Название: PHP+MySQL
Отправлено: Художник от 10 Октября 2003, 18:02:36
Странно до меня дошло то что ты мне сказал... =) правдо не спервого раза... =)

ты прав эта переменная находится в другом скрипте(функции)...

как я понял у нас 2 пути...

1) Передать переменную как ты мне сказал..
2) По моим рассуждениям "чайника" объявить переменную $id глобальной..

только вот незнаю как это на деле сделать... =)(чайник)

а на счет $id да это число... (int) - если не ошибаюсь
Название: PHP+MySQL
Отправлено: Меняздесьдавнонет от 10 Октября 2003, 18:14:47
сделай глобальной - так будет проще.
Название: PHP+MySQL
Отправлено: Художник от 10 Октября 2003, 18:20:28
Для полного поянения:

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


 function out_news_list()
  {
  $this->sql_query="SELECT n_id, n_name, n_lead FROM tbl_news ORDER BY n_id DESC LIMIT 10";
  $this->sql_execute();
  if($this->sql_err) return(11);

  while(list($id, $name, $lead)=mysql_fetch_row($this->sql_res))
  {

  $this->out_news_list.="$name
$lead
\\n
";
  }

 return(0);

=) может теперь тебе будет легче разобратся
Название: PHP+MySQL
Отправлено: Художник от 10 Октября 2003, 18:22:55
Пасибо ! если что буду знать к кому оброщатся...
удачи !!
Название: PHP+MySQL
Отправлено: Художник от 10 Октября 2003, 19:53:37
Что то у меня ввобще не клеется может посмотриш мой исходник ?
Название: PHP+MySQL
Отправлено: Меняздесьдавнонет от 10 Октября 2003, 20:40:37
усталя очень за сегодня.
Только с работы пришел.
Может быть, ты не будешь хвататься целиком за сайт, а удешь делать постепенно?
Название: PHP+MySQL
Отправлено: Художник от 11 Октября 2003, 12:57:03
Доброе время суток...

так что мое предложение остается в силе ?
или ты занят ?

если что напиши мне на мыло... demu@bk.ru
или еще проще.. Icq: 277565876
Название: PHP+MySQL
Отправлено: Меняздесьдавнонет от 11 Октября 2003, 16:08:50
Мое предложение тоже остается в силе - чтобы ты попробовал разбираться сам и задавать конкретные вопросы :-))))))
И вообще.
с какой стати я далжен копаться в курепинском коде?
иди к нему на сайт и там спрашивай.
Название: PHP+MySQL
Отправлено: Художник от 11 Октября 2003, 17:48:31
не плохо получаятся =))

с какой стати я далжен копаться в курепинском коде?
иди к нему на сайт и там спрашивай...
_________________________________________________________

Хорошо вот тебе конкретный вопрос я ее объявляю глобальной в начле скрипта...

а она мне все равно выдает $id=0 =))

тут надеюсь ты мне поможеш ?
Название: PHP+MySQL
Отправлено: Mog. от 11 Октября 2003, 18:05:45
RomikChef, а

 if (isset($_REQUEST[\'id\'])) $id=intval($_REQUEST[\'id\']); else $id=0;

это не есть переливание из пустого в порожнее?
Я так понял, что как не было id так и нету до сих пор, хоть её и глобальной сделали, а она ни хрена не isset.
Название: PHP+MySQL
Отправлено: Художник от 11 Октября 2003, 19:29:52
Вот теперь я окончательно запутался =)

может сейчас все и прояснится...

if (isset($_REQUEST[\'id\'])) $id=intval($_REQUEST[\'id\']); else $id=0;

Почему у меня сра,атывает левая часть.... вернее else $id=0;
от сюды вывод что оператор If не срабатывает...

что теперь скажите господа асы PHP =)
Название: PHP+MySQL
Отправлено: Yukko от 11 Октября 2003, 20:19:01
RomikChef
поправишь, если я где-то неправ...
Mog.
Художник
Курепинский курс не читал и читать не собираюсь... но все таки:
попробуйте вот это написать русскими словами:

if (isset($_REQUEST[\'id\'])) $id=intval($_REQUEST[\'id\']); else $id=0;
 
Если элемент массива $_REQUEST с именем id определен (имеет значение), то тогда значение переменной $id равно  целочисленному значению ячейки массива $_REQUEST с именем val
иначе
значение переменной $id равно нулю.

Художник
А теперь попробуй своему скрипту передать значение id. И пойми для чего предназначен массив $_REQUEST.

Для того чтобы ты не сильно напрягался это делать со своим скриптом, создай файл phpinfo.php
phpinfo();
?>
И вызови его вот так:
http://myserver/phpinfo.php
и вот так:
http://myserver/phpinfo.php?id=1234567890
В том, что тебе выведет твой скрипт в обоих случаях попробуй найти строчку:
_REQUEST["id"]
и почувствуй разницу.

Откуда ему взяться $_REQUEST[\'id\'], если ты его никак не передаешь?
Название: PHP+MySQL
Отправлено: Художник от 11 Октября 2003, 21:00:49
Всем огромное спасибо за уаствие в моем долгом и нудном для меня раледования...

Еслиб я мог я бы щ всех собрал бы и занялся бы любовь с каждым из вас =))) (От радости)

наконец то до меня дошло как передовать переменные !!!

и извените если я что то лишнее сказал....
Название: PHP+MySQL
Отправлено: Художник от 11 Октября 2003, 21:04:55
К стати ключевым моментом для меня было вот это строчка из

http://faq.phpclub.net/register_globals

Во всех руководствах по РНР написано, что даные, полученные из формы, или переданные по ссылке, вот так: script.php?peremennaya=znachenie&variable=value
автоматически становятся переменными PHP.
$znachenie и $variable

это для таких чайников как я !!!
Название: PHP+MySQL
Отправлено: Художник от 11 Октября 2003, 21:19:44
К стати Ребята у меня возник вопрос как думаете не совершаю ли я ошибку сохраняя данные(текст) в самой базе... а не в файлах...
Название: PHP+MySQL
Отправлено: Yukko от 11 Октября 2003, 21:54:07
Цитировать
Художник:
всех собрал бы и занялся бы любовь с каждым

Эстет... лучше не надо....
Цитировать
Художник:
сохраняя данные(текст) в самой базе... а не в файлах

В некоторых рассылках, кажется даже в рассылке на php.net есть хорошие слова:
do not spoof anyone\'s topics, что по-русски означает, что-то типа:
не угоняйте чью-то тему.

Для непонятливых объясняю, ты в начале задал вопрос, тебе на него ответили (помогли решить проблему, пытались ответить). Теперь у тебя есть еще вопрос, так вот хорошей практикой для тебя будет не задавать все свои вопросы в одной ветке, ибо новым вопросом ты меняешь тему ветки (треда) и сам у себя угоняешь тему (spoof topic). Второе, что следует сделать перед тем как задать вопрос, подумать, а что если эту проблему уже кто-то решал и поискать решения других людей самому!!! форум предназначен не для того чтобы задавать ВСЕ свои вопросы, он предназначен для того, чтобы после многих часов попыток решить свою проблему, после прочтения многих статей и публикаций, после ночной отладки кода в случае, если ты все таки не нашел решения, задать нормальный осмысленный вопрос...
Если ты чего-то не знаешь, обратись к поиску по форуму, поиску в яндексе, поиску в гугле, поиску в phpfaq. Пойми что ты хочешь, если ты стоишь на пороге выбора, то попробуй найти все за и против обоих альтернатив!!! и ИМХО, прежде чем лезть в дебри, изучи основы. А то про базы данных начинаешь разговаривать, не зная, как скрипту данные передать. В конце концов, если все таки решил задать вопрос, то научись это правильно делать, для этого начать новый топик тебе не повредит.
[off]Извините за оффтопик...[/off]
Название: PHP+MySQL
Отправлено: Художник от 11 Октября 2003, 22:24:40
Знаееш...я стобой полностью согласен... !