Плохой результат сравнения - PHP - PullRequest
0 голосов
/ 17 сентября 2010

У меня есть функция, которая подключается к базе данных и возвращает число, и вторая функция, которая возвращает размер файла.Если я использую функцию эха для просмотра результатов функции: переменная1 = 1345064 и переменная2 = 135

, но когда я использую сравнение, вы получите неправильный результат:

if($variable1 < $variable2)

{

   echo 'This code is displayed';

}

else

{

   echo 'This code should display';

}

что не так?


Мой исходный код:

<?php
include 'funkcje.inc';
    $login = $_GET['login'];
            $fsize = WielkoscPliku2($file);

    $tmp = $fsize / 1000000;

$zmienna1 = SprTransfer($login);
$zmienna2 = floor($tmp);

      if($zmienna1 < $zmienna2)
    {
        echo "This code is displayed";  
    }
    else
    {
            echo "This code should be displayed";
         }
    ?>

Функция SprTransfer:

<?php
require "connection.php";
connection(); 

...

function SprTransfer($login)
{
$zapytanie = "SELECT `transfer` FROM `uzytkownicy` WHERE `nick`='$login'";
    $idzapytania = mysql_query($zapytanie);
    $sprwaznosc = mysql_fetch_row($idzapytania);
    return $sprwaznosc[0];
}
?>

Основной файл:

include 'funkcje.inc';

    $login = $_GET['login'];

            $fsize = WielkoscPliku2($file);


    $tmp = $fsize / 1000000;


$zmienna1 = SprTransfer($login);

$zmienna2 = floor($tmp);


      if($zmienna1 < $zmienna2)

    {

        echo "This code is displayed";



    }

    else

    {

            echo "This code should be displayed";

         }




function.inc file:


require "connection.php";

connection(); 



function SprTransfer($login)

{

$zapytanie = "SELECT `transfer` FROM `uzytkownicy` WHERE `nick`='$login'";

    $idzapytania = mysql_query($zapytanie);

    $sprwaznosc = mysql_fetch_row($idzapytania);

    return $sprwaznosc[0];


}

Ответы [ 4 ]

4 голосов
/ 17 сентября 2010

Вы используете неправильные имена переменных.Переменной должен предшествовать $.

$variable1 = 4;
$variable2 = 5; 

if ($variable1 < $variable2) {
    echo 'Yep';
}else {
    echo 'Nope';
}

Вы должны ознакомиться с базовым синтаксисом PHP *1006*, а именно с разделом Variables .

2 голосов
/ 17 сентября 2010

возможно переменная $ before:

if($variable1 < $variable2)
1 голос
/ 18 сентября 2010

Я не уверен как, но похоже, что вы интерпретируете свои числа как строки.

Например, здесь будет отображаться This code is displayed:

<?php

    $variable1 = "1345064a";
    $variable2 = "135a";
    if ($variable1 < $variable2) {
        echo "This code is displayed";
    }
    else {
        echo "This code should be displayed";
    }

    // Output: This code is displayed
?> 

exmple


Приведите ваши переменные к int

<?php

    $variable1 = "1345064a";
    $variable2 = "135a";
    if ((int) $variable1 < (int) $variable2) {
        echo "This code is displayed";
    }
    else {
        echo "This code should be displayed";
    }

    // Output: This code should be displayed
?>  

пример

1025 *
*

Отладка:

Вы можете проверить тип переменных, используя gettype(). Никогда не следует использовать вывод gettype() для проверки одного конкретного типа, поскольку выходная строка может измениться с одной версии PHP на другую.

1 голос
/ 18 сентября 2010

при условии, что пропустить $ - это просто опечатка ...

когда вы сталкиваетесь с такой проблемой, лучше всего опубликовать полный пример рабочего кода. Например, приведенный ниже код работает как следует. отображается «Этот код должен отображаться». что происходит, когда вы запускаете это? В чем разница между этим кодом и вашим? ответьте на эти два вопроса, и вы по крайней мере будете указывать на свой ответ:

<?php

    $variable1 = 1345064;
    $variable2 = 135;
    if ($variable1 < $variable2) {
        echo "This code is displayed";
    }
    else {
        echo "This code should be displayed";
    }
?>    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...