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
Форумы портала PHP.SU :: Версия для печати :: частино не работают ссылки.
Форумы портала PHP.SU » » Вопросы новичков » частино не работают ссылки.

Страниц (1): [1]
 

1. SofiaKit - 01 Августа, 2011 - 20:59:38 - перейти к сообщению
имеется страница all.php
PHP:
скопировать код в буфер обмена
  1. <?
  2. include("bd.php");
  3. $result = mysql_query('SELECT categories_name FROM categories');
  4. $row_cat = mysql_fetch_array($result);
  5. $video = isset($_GET['video'])?$_GET['video']:'index';
  6. switch($video){
  7. case 'index':
  8.         $result_cat = mysql_query("SELECT * FROM categories");
  9.         $row_cat = mysql_fetch_array($result_cat);
  10.                 do
  11.                         {
  12.                         $_GET['cat'] = $row_cat['categories_name'];
  13.                         echo"<a href=\"all.php?video=".$row_cat['categories_name']."\">".$row_cat['categories_name']."</a><br>";
  14.                         }
  15.                         while($row_cat = mysql_fetch_array($result_cat));        
  16.                  
  17. break;   
  18. case $row_cat['categories_name']:
  19. echo "Удалось отобразить";    
  20. default:
  21. die('Не найдено');
  22. }
  23. ?>

выводит сразу в цикле значения categories_name, они же так-же имеют ссылки этих же значений. Так вот, работает только самая первая ссылка (Удалось отобразить), а остальные ссылки не работают (Не найдено), помогите пожалуйста добиться чтоб и остальные ссылки работали, не нарушая структуру кода, что надо добавить?
2. OrmaJever - 01 Августа, 2011 - 21:27:06 - перейти к сообщению
а сколько сылок должно работать если у вас только берётся 1 поле

без цыкла
(Добавление)
PHP:
скопировать код в буфер обмена
  1. <?
  2. include("bd.php");
  3. $result = mysql_query('SELECT categories_name FROM categories');
  4. $video = isset($_GET['video'])?$_GET['video']:'index';
  5. while($row_cat = mysql_fetch_array($result)) {
  6.  
  7.         if($video == 'index') {
  8.                 echo"<a href=\"all.php?video=".$row_cat['categories_name']."\">".$row_cat['categories_name']."</a><br>";
  9.         }    
  10.         if($video == $row_cat['categories_name']) {
  11.                 echo "Удалось отобразить";    
  12.         }
  13.         if($video != 'index' && $video != $row_cat['categories_name']) die('Не найдено');
  14.  
  15. }
  16. ?>
3. SofiaKit - 01 Августа, 2011 - 21:45:29 - перейти к сообщению
OrmaJever ну да, поторопилась.
PHP:
скопировать код в буфер обмена
  1. <?
  2. include("bd.php");
  3. $result = mysql_query('SELECT categories_name FROM categories');
  4. $row_cat = mysql_fetch_array($result);
  5. $video = isset($_GET['video'])?$_GET['video']:'index';
  6. switch($video){
  7. case 'index':
  8.         $result_cat = mysql_query("SELECT * FROM categories");
  9.         $row_cat = mysql_fetch_array($result_cat);
  10.                 do
  11.                         {
  12.                         $_GET['cat'] = $row_cat['categories_name'];
  13.                         echo"<a href=\"all.php?video=".$row_cat['categories_name']."\">".$row_cat['categories_name']."</a><br>";
  14.                         }
  15.                         while($row_cat = mysql_fetch_array($result_cat));        
  16.                  
  17. break;   
  18. case $row_cat['categories_name']:
  19. echo "Удалось отобразить";
  20. break;    
  21. default:
  22. die('Не найдено');
  23. }
  24. ?>

вот.. работает только первая ссылка. надо добиться чтоб работали все ссылки.
(Добавление)
OrmaJever
ваш код тоже только первую ссылку выводит, причем вот так: Удалось отобразитьНе найдено остальные так-же не работают.
4. OrmaJever - 01 Августа, 2011 - 22:36:59 - перейти к сообщению
SofiaKit что значит работает только первая сылка? вы исходный код смотрели? что там?
SofiaKit пишет:
причем вот так: Удалось отобразитьНе найдено

это противоречит коду, если выполнилось это условие
PHP:
скопировать код в буфер обмена
  1. $video == $row_cat['categories_name']

то это точно не выполнится
PHP:
скопировать код в буфер обмена
  1. ... && $video != $row_cat['categories_name']

Нужно дебажить, проблемы на разных ступенях цыкла нужо выяснить почему так ну и + посмотреть исходный код страницы
(Добавление)
SofiaKit пишет:
остальные так-же не работают.

Потому что если пишет "Не найдено" значит сработал die() и скрипт умер Огорчение
5. SofiaKit - 01 Августа, 2011 - 22:50:47 - перейти к сообщению
OrmaJeverну полный код страницы вот:
PHP:
скопировать код в буфер обмена
  1. <?
  2. include("bd.php");
  3. $result = mysql_query('SELECT categories_name FROM categories');
  4. $video = isset($_GET['video'])?$_GET['video']:'index';
  5. while($row_cat = mysql_fetch_array($result)) {
  6.  
  7.         if($video == 'index') {
  8.                 echo"<a href=\"all.php?video=".$row_cat['categories_name']."\">".$row_cat['categories_name']."</a><br>";
  9.         }    
  10.         if($video == $row_cat['categories_name']) {
  11.                 echo "Удалось отобразить";    
  12.         }
  13.         if($video != 'index' && $video != $row_cat['categories_name']) die('Не найдено');
  14.  
  15. }
  16. ?>


по прежнему пишет по первой ссылке: Удалось отобразитьНе найдено по остальным: Не найдено
(Добавление)
если хочешь посмотреть результат, вотУлыбка удивись
6. OrmaJever - 02 Августа, 2011 - 00:40:29 - перейти к сообщению
аа я не верно понял суть скрипта. Вот то что нужно.
PHP:
скопировать код в буфер обмена
  1. <?
  2. include("bd.php");
  3. $video = isset($_GET['video']) ? mysql_escape_string($_GET['video']) : 'index';
  4. $r = mysql_query("SELECT categories_name FROM categories WHERE categories_name = '$video' LIMIT 1");
  5. if($video == 'index') {
  6.                 $result = mysql_query('SELECT categories_name FROM categories');
  7.                 while($row_cat = mysql_fetch_array($result)) {
  8.                         echo"<a href=\"all.php?video=".$row_cat['categories_name']."\">".$row_cat['categories_name']."</a><br>";
  9.                 }
  10. } elseif(mysql_num_rows($r) == 1) {
  11.         echo "Удалось отобразить";
  12. } else {
  13.         die('Не найдено');
  14. }
  15. ?>

Кстате приятная музычка на видео Улыбка
(Добавление)
ещё вопрос, в бд
CODE (htmlphp):
скопировать код в буфер обмена
  1. categories_name = '$video'

будет только один результат?
7. SofiaKit - 02 Августа, 2011 - 01:49:01 - перейти к сообщению
OrmaJever ну сейчас та именно как надо, единственное не сохраняется содержимое по выборке: $row_cat['categories_name']. т.е. смотри:
PHP:
скопировать код в буфер обмена
  1. ...elseif(mysql_num_rows($r) == 1) {
  2.         echo "Выбранна категория: ".$row_cat['categories_name']."";
  3. } else {
  4.         die('Не найдено');
  5. }


Не пишет какая категория выбранна.
8. OrmaJever - 02 Августа, 2011 - 01:56:04 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. ...elseif(mysql_num_rows($r) == 1) {
  2.         echo "Выбранна категория: ".mysql_fetch_object($r)->categories_name;
  3. } else {
  4.         die('Не найдено');
  5. }
9. SofiaKit - 02 Августа, 2011 - 03:06:48 - перейти к сообщению
ура, то что надо! премного благодарна Улыбка +1 Радость ммм... теперь спать перехотелось, столько всего сделать надо еще.
10. SofiaKit - 02 Августа, 2011 - 14:47:36 - перейти к сообщению
немного переделала код, хочется разделить некоторые значения:
Содержимое all.php
PHP:
скопировать код в буфер обмена
  1. <?
  2. include("bd.php");
  3.  
  4. $video = isset($_GET['video'])?$_GET['video']:'view';
  5.   switch($video){
  6.   case 'view':
  7.         $cat = isset($_GET['cat']) ? mysql_escape_string($_GET['cat']) : 'index';
  8.         $r = mysql_query("SELECT categories_name FROM categories WHERE categories_name = '$video' LIMIT 1");
  9.         if($cat == 'index') {
  10.     $result = mysql_query('SELECT categories_name FROM categories');
  11.     while($row_cat = mysql_fetch_array($result)) {
  12.     echo"<a href=\"all.php?video=view&cat=".$row_cat['categories_name']."\">".$row_cat['categories_name']."</a><br>";
  13.     }
  14.         } elseif(mysql_num_rows($r) == 1) {
  15.         $c = mysql_fetch_object($r)->categories_name;
  16.     echo "Выбранна категория: ".$c;
  17.         } else {
  18.     die('Не найдено');
  19.         }
  20.         break;
  21.         case 'add':
  22.         echo "добавление в all";
  23.         break;
  24.   }
  25. ?>


теперь при открытии: all.php?video=view появляются категории, а при открытии all.php?video=add будет код по добавлению категорий.

Так вот, по идее должны открываться ссылки по all.php?video=view&cat=и категория, а пишет не найденно, странно, почему?
11. OrmaJever - 02 Августа, 2011 - 14:56:53 - перейти к сообщению
в 8 строке в запросе поменять $video на $cat
12. SofiaKit - 02 Августа, 2011 - 15:04:17 - перейти к сообщению
OrmaJever а, действительно, спасибо Улыбка

 

Powered by ExBB FM 1.0 RC1