forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   PHP / MySQL (http://forum.boolean.name/forumdisplay.php?f=135)
-   -   Условие в условии (http://forum.boolean.name/showthread.php?t=12694)

MotoMustanger 20.06.2010 15:54

Условие в условии
 
Есть такой код:
PHP код:

if ($action == "lastmsgs")
{
    
$conn mysql_connect($host$user$pass) or die("Could not connect"); // Попытка соединиться с MySQL сервером
    
mysql_select_db($base) or die("Can't select database."); 

    
$result mysql_db_query($base"SELECT `id` FROM `scores` ORDER BY `id` DESC LIMIT 1;"); 
        while(
$row mysql_fetch_array($result)) 
    {
        
$id $row['id']; 
    }
    if (
$action2 $id)
    {
    echo 
$id."|";
    }


Посылаю на него запрос
http: //сайт/index.php?action=lastmsgs&action2=275
Но выводит пустую строку. Переменная $id равна 274, так что условие должно выполняться. Где у меня ошибка?

devolonter 21.06.2010 03:11

Ответ: Условие в условии
 
А ты не забыл определить $action2?
до условия : $action2 = $_GET['action2'];

Если переменная определена, попробуй вывести $action2 там я думаю видно будет

MotoMustanger 21.06.2010 08:54

Ответ: Условие в условии
 
Цитата:

Сообщение от devolonter (Сообщение 150762)
А ты не забыл определить $action2?
до условия : $action2 = $_GET['action2'];

Если переменная определена, попробуй вывести $action2 там я думаю видно будет

Нет, все есть вроде:
PHP код:

$action "none"
$action2 "none";

if (isset(
$_GET['action'])) $action $_GET['action']; 
if (isset(
$_GET['action2'])) $action2 $_GET['action2']; 

Но первое условие action выполняется, а второе action2 не хочет, хотя должно. Может запрос неправильный?

devolonter 21.06.2010 16:21

Ответ: Условие в условии
 
Цитата:

Сообщение от MotoMustanger (Сообщение 150774)
Но первое условие action выполняется, а второе action2 не хочет, хотя должно. Может запрос неправильный?

Ну ты вроде написал, что $id = 274, тогда с запросом все хорошо или ты имел в виду, что в базе храниться это значение? Если непосредственно переменную в скрипте не проверял тогда советую строчку:
PHP код:

$result mysql_db_query($base"SELECT `id` FROM `scores` ORDER BY `id` DESC LIMIT 1;"); 

поменять на:
PHP код:

$result mysql_db_query($base"SELECT `id` FROM `scores` ORDER BY `id` DESC LIMIT 1;") OR die(mysql_error()); 

Тогда если есть ошибка в запросе - ты сразу ее вычислишь

Nord 22.06.2010 17:13

Ответ: Условие в условии
 
Цикл тут не нужен, ты же только одну запись выбираешь (LIMIT 1).

devolonter 22.06.2010 23:23

Ответ: Условие в условии
 
Цитата:

Сообщение от Nord (Сообщение 150900)
Цикл тут не нужен, ты же только одну запись выбираешь (LIMIT 1).

Ну ошибкой это назвать нельзя в конечном итоге функция все равно вызовется один раз

Nord 22.06.2010 23:36

Ответ: Условие в условии
 
Я не говорил, что это ошибка, но усложнять код тоже не нужно, это всё равно что написать:
PHP код:

$a=1;
if(
$a==1) echo $a

Глаз мозолит :)

devolonter 22.06.2010 23:39

Ответ: Условие в условии
 
Ну если так, то мне глаз мозолит что нет ООП :) Я к тому, что как бы там ни было все равно это оффтоп. Думаю если человек молчит, скорее всего проблему решил)

Nord 22.06.2010 23:49

Ответ: Условие в условии
 
Когда я вижу такие конструкции, у меня появляются мысли, что человек сам не понимает что у него написано. Никого оффтопа тут не вижу, если человек приводит самописный листинг кода, есть смысл его прокомментировать. А оффтоп начинается после 5-го сообщения.


Часовой пояс GMT +4, время: 16:22.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot