Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: PHP не видит переменную внутри цикла

Сообщения:  [1-10]   [11-14] 

 
 автор: bronenos   (24.01.2007 в 11:59)   письмо автору
 
   для: lomach   (24.01.2007 в 10:34)
 

Ну тогда мой пост 23.01.2007 23:58

   
 
 автор: lomach   (24.01.2007 в 10:34)   письмо автору
 
   для: bronenos   (24.01.2007 в 09:16)
 

Спасибо, но это не подходит по определению.
Переменная $edit (в Вашем примере $lnk) меняется в зависимости от прав доступа. Если нет прав, то она равна пробелу.

   
 
 автор: lomach   (24.01.2007 в 10:31)   письмо автору
 
   для: Trianon   (24.01.2007 в 00:43)
 

> А первый почему не устроил?
> Вроде как и переменная одна и ссылка меняется.

Почему-то не сработал. Сегодня посмотрю еще на свежую голову. Может я где-то ошибся.

   
 
 автор: bronenos   (24.01.2007 в 09:16)   письмо автору
 
   для: Trianon   (24.01.2007 в 00:43)
 

Ну можно попробоват извращение вроде
$lnk[0] = "<a href='edit.php?action_id=";
$lnk[1] = "list[id]";
$lnk[2] = "'>Редактировать</a>";

for ($i=0; $i<$num; $i++) {
 $list = mysql_fetch_assoc ($result);
 print $lnk[0].$$lnk[1].$lnk[2];
}


Именно $$ !

   
 
 автор: Trianon   (24.01.2007 в 00:43)   письмо автору
 
   для: lomach   (24.01.2007 в 00:31)
 

>Помогает только втрой вариант,
А первый почему не устроил?
Вроде как и переменная одна и ссылка меняется.

   
 
 автор: lomach   (24.01.2007 в 00:37)   письмо автору
 
   для: Trianon   (24.01.2007 в 00:12)
 

Сама по себе переменная $i - это параметр цикла. Согласен.
Имел в виду $list['id'] во всех случаях. Это ничто иное как элемент массива и в данном случае идентификатор строки, так как этим мы передаем, какую строку будем редактировать этим скриптом.

   
 
 автор: lomach   (24.01.2007 в 00:31)   письмо автору
 
   для: bronenos   (23.01.2007 в 23:58)
 

Помогает только втрой вариант, то есть каждый раз проверять права перед выводом переменной, но хотелось бы этого избежать и определить переменную изначально. Спасибо.
Если у кого-то есть еще идеи, поделитесь, пожалуйста ими.

   
 
 автор: Trianon   (24.01.2007 в 00:12)   письмо автору
 
   для: lomach   (23.01.2007 в 22:21)
 


for( $i = 0; $i < $num; $i++ ){  
...// $i['id'] - это идентификатор строки в таблице MySQL 

$i - никакой не идентификатор строки. $i - параметр цикла, и ничто более. Всяко - не массив.

   
 
 автор: bronenos   (23.01.2007 в 23:58)   письмо автору
 
   для: lomach   (23.01.2007 в 23:46)
 

Тогда может быть так

$edit = "<a href='edit.php?action_id=AID'>Редактировать</a>";

for ($i=0; $i<$num; $i++) {
 $list = mysql_fetch_assoc ($result);
 print str_replace ('AID', $list[id], $edit);
}


Хотя можно и вообще так

for ($i=0; $i<$num; $i++) {
 $list = mysql_fetch_assoc ($result);
 if ($gid) // права есть?
  print "<a href='edit.php?action_id={$list[id]}'>Редактировать</a>";
}

   
 
 автор: lomach   (23.01.2007 в 23:46)   письмо автору
 
   для: Trianon   (23.01.2007 в 23:32)
 

В том то и вопрос - Как ее менять?

   

Сообщения:  [1-10]   [11-14] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования