Witam,
Mam następujący problem. Pewnym programem czytam plik i zapisuje dane do bazy. Aby pozbyć się
zbędnych spacji używam funkcji trim(). Następnie porównuje wczytane do bazy wartości [ programem który zamiściłem poniżej] i okazuje się, że varchar-y, które na pierwszy rzut oka wyglądają identycznie przez program uznawane są za różne.Niektóre interpretowane są za identyczne. Czy problem ten jest wynikiem złego działania funkcji trim()? tzn. nie zawsze wycina ona wszystkie zbędne spacje i varchar-y uznawane są za różne pomimo, że są "identyczne ". I jak rozwiązać ten problem?
?>
<html>
<head>
<title> rezultat wyszukiwania </title>
</head>
<body>
<h1>Rezultat wyszukiwania</h1>
<?php
//------parametry przekazywane z formularza z programu [5]--------
$metoda_szukania=$_POST['metoda_szukania'];
$wyrazenie=$_POST['wyrazenie'];
if(!$metoda_szukania || !$wyrazenie)
{
echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony ispróbuj ponownie';
exit;
}
//-----------konwersja parametrów z formularza-----------------------------
if(!get_magic_quotes_gpc())
{
$metoda_szukania = addslashes($metoda_szukania);
$wyrazenie = addslashes($wyrazenie);
}
//------otwarcie bazy i poszukieanie wartości z formularza-----------
@ $db = new mysqli('localhost', 'damian', 'haslo', 'ligandsbase'); //tu może być źle
if(mysqli_connect_errno())
{
echo 'Błąd: Połączenie z bazą danych nie powiodło się.';
exit;
}
$zapytanie = "select * from peptyds3 where ".$metoda_szukania." like '%".$wyrazenie."%'";//pozwala wyszukiwać wyrazy podobne (może być jeszcze coś z przodu lub z tyłu wyrazu)a nie tylko identyczne
$wynik = $db->query($zapytanie);
$ile_znalezionych = $wynik->num_rows;//zwraca wartość znalezionych wyników
//-------------------------------WYŚWIETLANIE INFORMACJI W ODPOWIEDNI SPOSÓB--------------------------
$b=0;
$l=0;
$t=0;
for ($i=0; $i<$ile_znalezionych;$i++)
{
$wiersz = $wynik->fetch_assoc();
if($metoda_szukania=="p_name")
{
$bialko=trim($wiersz['p_name']); //<<----------------podejżewam że tutaj tkwi problem
if($first_bialko!=$bialko) // używam na wszelki wypadek funkcji trim() przy
// wstawianiu do bazy i przy wybieraniu z bazy
{
//coś tam robi
}
$wynik->free();
$db->close();
?>
</body>
</html>