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 :: Не передаётся значение $_GET переменной

 PHP.SU

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


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

> Без описания
sys
Отправлено: 07 Июня, 2012 - 16:40:17
Post Id


Новичок


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


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




Вообщем следующая задача

Есть файл admin_panel.php
PHP:
скопировать код в буфер обмена
  1.  
  2.  <td valign="top">
  3.                     <a href="?what=tovar1">Товар1</a>
  4.                     <a href="?what=tovar2">Товар2</a>
  5.                     <a href="?what=tovar3">Товар3</a>
  6.                     <a href="?what=tovar4">Товар4</a>
  7.                     <a href="?what=tovar5">Товар5</a>
  8.                     <a href="?what=tovar6">Товар6</a>
  9.  
  10. <?PHP
  11.  
  12.     $what = $_GET['what'];
  13.        if(isset($_GET['delete_catalogue'])) {
  14.            $account->deleteCatalogue($_GET['delete_catalogue'], $what);
  15.        } else { $account->showListCatagoue($what); }
  16.  
  17. ?>
  18. </td>
  19.  


И есть файл класс со след. методами

PHP:
скопировать код в буфер обмена
  1.  
  2. function deleteCatalogue($id, $what) {
  3.            
  4.             mysql_query("DELETE FROM ".$what." WHERE id='$id'") or die (mysql_error());
  5.            
  6.         }
  7.        
  8.        
  9.         function showListCatagoue ($what) {
  10.            
  11.             $result = mysql_query("SELECT id, img, graphic, descr, title FROM ".$what."");
  12.            
  13.             echo "<form name='delete_catalogue' method='get'>";
  14.             echo "<table width='400' border='1' cellspacing='1' cellpadding='0'>";
  15.            
  16.             while($row = mysql_fetch_array($result)) {
  17.                
  18.                 echo "<tr>
  19.                        <td>
  20.                            <input name='delete_catalogue' type='checkbox' id='checkbox' value='".$row['id']."' />
  21.                        </td>
  22.                        <td>
  23.                            <img src='../upload/".$row['img']."' alt='' width='100' height='80'/>
  24.                        </td>
  25.                        <td>
  26.                            <img src='../upload/".$row['graphic']."' alt='' width='100' height='80'/>
  27.                        </td>
  28.                        <td>
  29.                            <p>".$row['title']."</p>
  30.                        </td>
  31.                        <td>
  32.                            <p>".$row['descr']."</p>
  33.                        </td>
  34.                      </tr>";
  35.             }
  36.  


На первой странице, с помощью $_GET я выбираю ту таблицу из которой необходимо просмотреть данные, при клике по ссылке <a href="?what=tovar1">Товар1</a>, значение переменной what а именно tovar1, передается методу showListCatagoue, выполняется запрос и я получаю необходимый мне контент. Это хорошо! Так и нужно! Теперь я хочу реализовать таким же способом удаление, по логике, мне нужно добавить новый аттрибут в метод deleteCatalogue(). Так и сделал, добавил переменную $what, следовательно выражение выглядит
PHP:
скопировать код в буфер обмена
  1. $account->deleteCatalogue($_GET['delete_catalogue'], $what);

, Т.е. При нажатии на ссылку
PHP:
скопировать код в буфер обмена
  1.  
  2.                     <a href="?what=tovar1">Товар1</a>
  3.                     <a href="?what=tovar2">Товар2</a>
  4.                     <a href="?what=tovar3">Товар3</a>
  5.                     <a href="?what=tovar4">Товар4</a>
  6.                     <a href="?what=tovar5">Товар5</a>
  7.                     <a href="?what=tovar6">Товар6</a>
  8.  


В what - подставляется значение, это срабатывает в showCategory(), но с удалением - нет.
Ошибка при удалении записи
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id='8'' at line 1
Мои действия, попробовал заменить кавычки на одинарные, надеялся ошибка синтаксиса в этом, - не помогло. Мне остается предположить, что не передается значение. Если так, почему тогда оно передается в другой метод?
Могли бы подсказать, что делаю не правильно, и как решить этот вопрос.
Заранее спасибо за ответ!

(Отредактировано автором: 07 Июня, 2012 - 17:00:47)

 
 Top
Alho
Отправлено: 07 Июня, 2012 - 17:49:35
Post Id



Посетитель


Покинул форум
Сообщений всего: 322
Дата рег-ции: Апр. 2012  


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




Перед mysql_query выведи значение "DELETE FROM ".$what." WHERE id='$id'" и покажи его, ну или сам догадайся, что в нем не так.
 
 Top
sys
Отправлено: 07 Июня, 2012 - 18:00:50
Post Id


Новичок


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


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




Alho пишет:
Перед mysql_query выведи значение "DELETE FROM ".$what." WHERE id='$id'" и покажи его, ну или сам догадайся, что в нем не так.

Да, значение переменной $what - пустое, в таком случае как его передать методу?
 
 Top
tato
Отправлено: 07 Июня, 2012 - 18:18:38
Post Id



Посетитель


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


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




sys пишет:
DELETE FROM ".$what." WHERE id='$id'"

У Вас на каждый товар таблица?

DELETE FROM table_name WHERE id=1...


-----
просто ?: сложно
 
 Top
sys
Отправлено: 07 Июня, 2012 - 18:27:12
Post Id


Новичок


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


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




tato пишет:
sys пишет:
DELETE FROM ".$what." WHERE id='$id'"

У Вас на каждый товар таблица?

DELETE FROM table_name WHERE id=1...

Да, каждый вид товара(коньки, велосипеды, лыжи) - отдельная таблица.

(Отредактировано автором: 07 Июня, 2012 - 18:29:16)

 
 Top
Alho
Отправлено: 07 Июня, 2012 - 18:29:59
Post Id



Посетитель


Покинул форум
Сообщений всего: 322
Дата рег-ции: Апр. 2012  


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




Мб $_GET['what']?
 
 Top
sys
Отправлено: 07 Июня, 2012 - 18:34:42
Post Id


Новичок


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


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




Alho пишет:
Мб $_GET['what']?

Пробовал, не работает
 
 Top
tato
Отправлено: 07 Июня, 2012 - 18:50:59
Post Id



Посетитель


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


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




CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  <td valign="top">
  3.                     <a href="?what=tovar1">Товар1</a>
  4.                     <a href="?what=tovar2">Товар2</a>
  5.                     <a href="?what=tovar3">Товар3</a>
  6.                     <a href="?what=tovar4">Товар4</a>
  7.                     <a href="?what=tovar5">Товар5</a>
  8.                     <a href="?what=tovar6">Товар6</a>
  9.  
  10. <?PHP
  11.  
  12. // Добавте этот код, покажите, что выводит.
  13. echo '<b style="color:red">***********************</b>';
  14. echo $_SERVER['REQUEST_URI'] . '<br>';
  15. var_dump( $_GET );
  16. echo '<b style="color:red">***********************</b>';
  17.  
  18.    $what = $_GET['what'];
  19.  
  20.       if(isset($_GET['delete_catalogue'])) {
  21.  
  22.           $account->deleteCatalogue($_GET['delete_catalogue'], $what);
  23.  
  24.       } else { $account->showListCatagoue($what); }
  25. ?>
  26.  
  27. </td>
  28.  
  29.  

(Отредактировано автором: 07 Июня, 2012 - 18:51:43)



-----
просто ?: сложно
 
 Top
sys
Отправлено: 07 Июня, 2012 - 18:55:38
Post Id


Новичок


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


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




До запроса

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. ***********************/~user/dev-mysite/adminka/admin_panel.php
  3. array(0) { } ***********************
  4.  


После

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. ***********************/~user/dev-mysite/adminka/admin_panel.php?delete_catalogue=9
  3. array(1) { ["delete_catalogue"]=> string(1) "9" } ***********************You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id='9'' at line 1
  4.  

(Отредактировано автором: 07 Июня, 2012 - 19:02:11)

 
 Top
tato
Отправлено: 07 Июня, 2012 - 19:01:11
Post Id



Посетитель


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


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




sys пишет:
/admin_panel.php?delete_catalogue=9


1) Как Я собственно и предпологал, Вы не передаете what в GET, линк должен выглядеть так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. /admin_panel.php?delete_catalogue=9&what=tovar1
  3.  

(Добавление)
Вообщем, простой пример:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. ...
  4. if( isset( $_GET['what'] ) )
  5. {
  6.     if( isset( $_GET['delete'] ) )
  7.     {
  8.         $account->deleteCatalogue( $_GET['delete'], $_GET['what'] );
  9.     }
  10.     else
  11.     {
  12.         $account->showListCatagoue( $_GET['what'] );
  13.     }
  14. }
  15.  
  16.     ?>
  17.     <a href="?what=tovar1">tovar1</a>
  18.     <a href="?delete=1&what=tovar1">delete </a>
  19.     <br>
  20.     <a href="?what=tovar2">tovar2</a>
  21.     <a href="?delete=2&what=tovar2">delete </a>
  22.     <br>
  23.     <a href="?what=tovar2">tovar2</a>
  24.     <a href="?delete=2&what=tovar2">delete </a>
  25.     <?PHP
  26.  
  27. ...
  28. ?>
  29.  

(Отредактировано автором: 07 Июня, 2012 - 19:08:54)



-----
просто ?: сложно
 
 Top
sys
Отправлено: 07 Июня, 2012 - 19:12:36
Post Id


Новичок


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


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




Спасибо! А могли бы привести пожалуйста пример того, как подставить эти идентификаторы таким образом, чтобы при отправке в url подставлялся необходимый недостоющий &what=tovar1.

(Отредактировано автором: 07 Июня, 2012 - 19:17:53)

 
 Top
tato
Отправлено: 07 Июня, 2012 - 19:18:04
Post Id



Посетитель


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


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




Значения в GET передаются так (без пробелов):
CODE (htmlphp):
скопировать код в буфер обмена
  1. ? var1=value1 & var2=value2 & varN=valueN


в таком виде добавляем в атрибут href:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <a href="?var1=value1&var2=value2&varN=valueN"> ссылка </a>

(Отредактировано автором: 07 Июня, 2012 - 19:19:20)



-----
просто ?: сложно
 
 Top
sys
Отправлено: 07 Июня, 2012 - 19:36:57
Post Id


Новичок


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


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




Не пойму как реализовать это конкретно на своем примере.
delete_catalogue - передается из формы
a what как образом подключить сюда?

(Отредактировано автором: 07 Июня, 2012 - 19:37:50)

 
 Top
tato
Отправлено: 07 Июня, 2012 - 19:41:57
Post Id



Посетитель


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


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




код покажите, полностью. Только под спойлер.


-----
просто ?: сложно
 
 Top
sys
Отправлено: 07 Июня, 2012 - 19:46:35
Post Id


Новичок


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


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




Спойлер (Отобразить)
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB