- Резултати при $_GET
WT форуми -> PHP MySQL ASP.NET -> Резултати при $_GET
Създайте нова тема Напишете отговор 
Автор Съобщение
kini
Нов
Нов

Регистриран на: 01/05/2010 12:36 pm

Support: 2
Bonus: 4
Мнения: 136
Мнение 02/05/2018 12:35 pm     Резултати при $_GET Отговорете с цитат


Здравейте,

Очевидно имам някакъв проблем с $_GET...

Имам модул, който има повече от една $_GET заявка, но не знам, как точно да избегна това, да виждам и другите заявки, като извикан резултат. (Не знам дали го описах правилно)...


Пример:
kategoriq.php?id=1 - функционира и си изважда резултатите от даденото $id


Проблема идва, когато:

kategoriq.php?id=1&sub=5 - извикаш под-категория от дадената главна директория.
В този случай виждам резултата два пъти - показва и единичната заявка.


if (!$_GET['sub']) {


Така изобразявам меню с под-категории, което се вижда само след като е избрана главна категория:
if (!$_GET['sub'] && $_GET['i']) {


Къде ми е грешката?
Mad
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 350
Bonus: 698
Мнения: 2645
Мнение 02/05/2018 2:03 pm      Отговорете с цитат


Пусни си SQL заявките и структурата на дб. Мисля, че не си я направил правилно Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 119
Bonus: 231
Мнения: 3068
Мнение 02/05/2018 6:22 pm      Отговорете с цитат


PHP code:
if (!$_GET['sub']) {

Тук се казва следното: Ако няма $_GET['sub'] изпълни това. Много интересно правиш проверката. Защо не използваш isset(), тоест ако не е сетната променливата изпълни нещо си. В случая, който използваш ти по дефаут $_GET['sub'] = false, и когато му подадеш стойност става true. До тук е ясно но в следващият момент при подадено условие следва казус:
PHP code:

<?php
$_GET['sub'] = false;
if (!$_GET['sub']) {
print "In if";
}

Кода ще принтира, че е в if условието.
PHP code:

<?php
$_GET['sub'] = 5;
if (!$_GET['sub']) {
print "In if";
}

Така не влиза в if условието.

Промени си логиката на условието за вход. Ако очакваш цяло число може и така да проверяваш:
PHP code:

<?php
$_GET['sub'] = 5;
if (is_int($_GET['sub'])) {
print "In if";
}




Тук не трябва ли да е id не i?
if (!$_GET['sub'] && $_GET['i']) {
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
kini
Нов
Нов

Регистриран на: 01/05/2010 12:36 pm

Support: 2
Bonus: 4
Мнения: 136
Мнение 04/05/2018 11:55 am      Отговорете с цитат


dakata__92 написа:
PHP code:
if (!$_GET['sub']) {

Тук се казва следното: Ако няма $_GET['sub'] изпълни това. Много интересно правиш проверката. Защо не използваш isset(), тоест ако не е сетната променливата изпълни нещо си. В случая, който използваш ти по дефаут $_GET['sub'] = false, и когато му подадеш стойност става true. До тук е ясно но в следващият момент при подадено условие следва казус:
PHP code:

<?php
$_GET['sub'] = false;
if (!$_GET['sub']) {
print "In if";
}

Кода ще принтира, че е в if условието.
PHP code:

<?php
$_GET['sub'] = 5;
if (!$_GET['sub']) {
print "In if";
}

Така не влиза в if условието.

Промени си логиката на условието за вход. Ако очакваш цяло число може и така да проверяваш:
PHP code:

<?php
$_GET['sub'] = 5;
if (is_int($_GET['sub'])) {
print "In if";
}




Тук не трябва ли да е id не i?
if (!$_GET['sub'] && $_GET['i']) {


Здравей,

не е id, променил съм го на i

Също така забелязах, че трябва да започна кода с двете заявки и да завърша с едната. т.е първо започвам с i & sub и след дадения код слагам единичната i Така функционира, но все още тествам.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 119
Bonus: 231
Мнения: 3068
Мнение 04/05/2018 6:55 pm      Отговорете с цитат


Прати ни целият код за да видим къде може да грешиш.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
Страница 1 от 1


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети