[PHP] Sprawdzanie jednakowości

Witam,

otóż chcę sprawdzić jednakowość zmiennych (czy są takie same) no i dostaje wynik negatywny. Oto wynik:

12

string

12

string

Niezgodne

A oto kod, który podaje mi typy oraz sprawdza dokładność:

$query = "ZAPYTANIE'";

		$result = mysql_query($query);

		$row = mysql_fetch_row($result);

		$dTestowe = (string) str_replace(" ","", $row[0]);

		echo "".$dTestowe."
";

		echo gettype($dTestowe)."
";


		$query = "ZAPYTANIE'";

		$result = mysql_query($query);

		$row = mysql_fetch_row($result);

		$solWyj = (string) str_replace(" ","", $row[0]);

		echo "".$solWyj."
";

		echo gettype($solWyj)."
";


		if($solWyj === $dTestowe){

			echo "Zgodne";

		} else {

			echo "Niezgodne";

		}

[/code]

Zapytania są sprawne bo wywołują poprawne dane. Tylko kwestia ich porównania. Próbowałem też z strcmp() ale wynik jest również negatywny.

Aż sam musiałem sprawdzić:)

1

string

1

string

Zgodne

Tak więc albo masz coś nieświadomie zataiłeś w powyższym kodzie albo ta wersja PHP jest z bugiem.

Wydaje mi się, że problem leży w MySQL. Bo gdy wpiszę te zmienne ręcznie to działa jak najbardziej. Jednak, gdy ich wartość jest wyciągana z bazy danych to wtedy się dzieją takie rzeczy. Oto cały kod:

$query = "SELECT `exeWtestowe` FROM `exercises` WHERE `exeId` = '".$zid."'";

		$result = mysql_query($query);

		$row = mysql_fetch_row($result);

		$dTestowe = (string) str_replace(" ","", $row[0]);

		echo "".$dTestowe."
";

		echo gettype($dTestowe)."
";


		$query = "SELECT `solutionWyjscie` FROM `solutions` WHERE `solutionStudent` = '".$student."' AND `solutionKind` = '".$kind."' AND `solutionExerciseId` = '".$zid."'";

		$result = mysql_query($query);

		$row = mysql_fetch_row($result);

		$solWyj = (string) str_replace(" ","", $row[0]);

		echo "".$solWyj."
";

		echo gettype($solWyj)."
";


		/*echo strcmp($solWyj, $dTestowe)."
";


		if(strcmp($solWyj, $dTestowe) == 0){

			echo "Zgodne";

		} else {

			echo "Niezgodne";

		}

		*/


		//$solWyj = "20";

		//$dTestowe = "20";


		if($solWyj === $dTestowe){

			echo "Zgodne";

		} else {

			echo "Niezgodne";

		}

[/code]

W bazie pola te są zgodne. Oby dwa text i kodowanie utf8_polish_ci

A tak?

$dTestowe = (string) trim(str_replace(" ","", $row[0]));


...


$solWyj = (string) trim(str_replace(" ","", $row[0]));

Dzięki. Jak dodałem ten trim() to uzyskałem zgodność.