Problem z wyszukiwaniem danych

0

Hej wszystkim, mój problem jest dokładnie taki jak w tytule.

Nie jestem biegł w PHP i prawdopodobnie nie będę, bo nie jest to kierunek w którym chcę iść.
Jednak muszę zaliczyć przedmiot.

Miałem stworzyć formularz logowania/rejestracji (łącznie z sql) w którym po zalogowniu mogę wyszukać samochód który chcę kupić, lub dodać do bazy ten który chcę sprzedać.

Problem pojawia się przy wyszukiwaniu. Wujek google nie pomaga, tylko miesza mi bardziej w głowie.Podejrzewam, że błąd jest banalny, jednak siedzę nad kodem już 2 godziny i nie wiem co zrobiłem nie tak. Tutaj wklejam kod wyniku szukania:

<?php

	session_start();
	
	if (!isset($_SESSION['zalogowany']))
	{
		header('Location: index.php');
		exit();
	}
	
?>
<!DOCTYPE HTML>
<html lang="pl">
<head>
	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
	<title>Kup/sprzedaj samochód</title>
</head>

<body>
	
<?php

	echo "<p>Witaj ".$_SESSION['user'].'! [ <a href="logout.php">Wyloguj się!</a> ]</p>';
	echo "<p><b>E-mail</b>: ".$_SESSION['email'];
?>

<?php
$metoda=$_POST['metoda'];
$metoda1=$_POST['metoda1'];
$metoda2=$_POST['metoda2'];
$metoda3=$_POST['metoda3'];
$szukanehaslo=$_POST['szukanehaslo'];
$szukanehaslo1=$_POST['szukanehaslo1'];
$szukanehaslo2=$_POST['szukanehaslo2'];
$szukanehaslo3=$_POST['szukanehaslo3'];
$szukanehaslo=trim($szukanehaslo);
$szukanehaslo1=trim($szukanehaslo1);
$szukanehaslo2=trim($szukanehaslo2);
$szukanehaslo3=trim($szukanehaslo3);
if (!$metoda || !$metoda1 || !$metoda2 || !$metoda3)
{
	echo 'Brak parametrów wyszukiwania, wróć do poprzedniej strony i spróbuj ponownie!';
	exit;
}
if(!get_magic_quotes_gpc())
{
	$metoda=addslashes($metoda);
	$metoda1=addslashes($metoda1);
	$metoda2=addslashes($metoda2);
	$metoda3=addslashes($metoda3);
	$szukanehaslo=addslashes($szukanehaslo);
	$szukanehaslo1=addslashes($szukanehaslo1);
	$szukanehaslo2=addslashes($szukanehaslo2);
	$szukanehaslo3=addslashes($szukanehaslo3);
}
@$polaczenie = new mysqli('localhost', 'root', '', 'fury');
if(mysqli_connect_errno())
{
	echo 'Połączenie nie powiodło się!';
	exit;
}
$polaczenie->query('SET NAMES utf8');
$polaczenie->query('SET CHARACTER_SET utf8_unicode_ci');
$zapytanie = "SELECT * FROM dane where ".$metoda. " like '%".$metoda1."%' OR ".$metoda. " like '%".$metoda2."%' OR ".$metoda." like '%".$metoda3."%'";
$wynik=$polaczenie->query($zapytanie);
$ile_znaleziono=$wynik->num_rows;
echo'<p> Liczba znalezionych samochodów: '.$ile_znaleziono. '</p>';
for($i=0;$i<$ile_znaleziono;$i++)
{
	$wiersz=$wynik->fetch_assoc();
	echo'<p><b>'.($i+1).'.Tytuł: '.stripcslashes($wiersz['tytul']).'</b><br />';
	echo'Marka: '.stripcslashes($wiersz['Marka']).'<br />';
	echo'Model: '.stripcslashes($wiersz['Model']).'<br />';
	echo'Pojemnosc: '.stripcslashes($wiersz['Pojemnosc']).'<br />';
	echo'Rocznik: '.stripcslashes($wiersz['Rocznik']).'<br />';
}
	$wynik->free();
	$polaczenie->close();
	
?>
</body>
</html>

kod szukania

<?php

	session_start();
	
	if (!isset($_SESSION['zalogowany']))
	{
		header('Location: index.php');
		exit();
	}
	
?>
<!DOCTYPE HTML>
<html lang="pl">
<head>
	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
	<title>Kup/sprzedaj samochód</title>
</head>

<body>
	
<?php

	echo "<p>Witaj ".$_SESSION['user'].'! [ <a href="logout.php">Wyloguj się!</a> ]</p>';
	echo "<p><b>E-mail</b>: ".$_SESSION['email'];
?>

	<form action="wyniksprzedaj.php" method="post">
		Wyszukaj według:
	<select name="metoda">
		<option value="Marka" /> Marka

	</select>
		<select name="metoda1">
		<option value="Model" /> Model
		</select>
		<select name="metoda2">
		<option value="Pojemnosc" /> Pojemnosc
		</select>
		<select name="metoda3">
		<option value="Rocznik" />	Rocznik
		</select>
		<br />
		<input type ="text" name="szukanehaslo">
		<input type ="text" name="szukanehaslo1">
		<input type ="text" name="szukanehaslo2">
		<input type ="text" name="szukanehaslo3">
		<input type="submit" value="szukaj">
		</form>
	<br /><br />
	

</body>
</html>

Proszę o pomoc w znalezieniu problemu, pozdrawiam!

0

1.Umieść w "wyniksprzedaj.php"

echo '<pre>';
print_r($_POST);
echo '</pre>';

Jak na dłoni zobaczysz co formularz przekazuje do zapytania, a następnie sprawdź jakie konkretnie zapytanie leci do bazy.

  1. <option> ma też tag zamykający </option>
0

Dzięki, zapomniałem o zamknięciu option.

Array
(
    [metoda] => Marka
    [metoda1] => Model
    [metoda2] => Pojemnosc
    [metoda3] => Rocznik
    [szukanehaslo] => Audi
    [szukanehaslo1] => a6
    [szukanehaslo2] => 3.0
    [szukanehaslo3] => 2006
)

To mi wyskakuje, czyli w zasadzie to co chcę osiągnąć, tylko z jakiegoś powodu mi nie działa

0

Powtórzę

a następnie sprawdź jakie konkretnie zapytanie leci do bazy

Konkretnie:

$zapytanie = "SELECT * FROM dane where ".$metoda. " like '%".$metoda1."%' OR ".$metoda. " like '%".$metoda2."%' OR ".$metoda." like '%".$metoda3."%'";

Po podstawieniu

$zapytanie = "SELECT * FROM dane where Marka like '%Audi%' OR Marka like '%Pojemnosc%' OR Marka like '%Rocznik%'";

Widzisz do czego zmierzam?

1 użytkowników online, w tym zalogowanych: 0, gości: 1