Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Problem z wyszukiwanie w bazie [php], Wyszukiwanie inf w bazie po dowolnym polu
gallardo83
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 5.11.2007

Ostrzeżenie: (0%)
-----


Witam serdecznie
Mam oto taki problem - mam baze danych i chciałbym w niej wyszukać informacje po dowolnym polu - mój skrypt jest juz prawie - gotowy ale cos w nim jest źle - bardzo prosze o pomoc

Oto mój formularz wyszukiwania:
Kod
<html>
<head>
<title> Wyszukaj </title>
</head>

<body>
<h1> Wyszukiwanie Samochodów </h1>
<form id="form1" name="form1" method="post" action="index.php?page=rezultat_wyszukania_po_polu">
Wybierz metodę wyszukiwania:<br />
<select name="metoda szukania">
<option value="id">ID
<option value="nazwa">Nazwa
<option value="cena">Cena
</select>
<br />
Wprowadz poszukiwane wyrażenie:<br />
<input name="wyrazenie" type="text">
<br />
<input type="submit" value="Szukaj">
</form>
</body>
</html>


i plik rezultat_wyszukania_po_polu.php
Kod
<body>
Rezultaty wyszukiwania po zadanym polu:

<?php
// utworzenie krótkich nazw zmiennych
$metoda_szukania=$_POST['metoda szukania'];
$wyrazenie=$_POST['wyrazenie'];

$wyrazenie=trim($wyrazenie);

if (!$metoda_szukania || !$wyrazenie)
{
   echo 'Brak parametrów wyszukiwania';
   exit;
   }
  
if (!get_magic_quotes_gpc())
{
   $metoda_szukania=addslashes($metoda_szukania);
   $wyrazenie=addslashes($wyrazenie);
   }
  
@ $db=new mysqli('stud.........'. 'użytkownik '. 'tu jest hasło '. 'baza danych');

if(mysqli_connect_errno())
{
   echo 'Połączenie z bazą danych nie powiodło się - spróbój jeszcze raz';
   exit;
   }
  
$zapytanie= "select * from samochody where ".$metoda_szukania." like '%".$wyrazenie."%'";
$wynik=$db->query($zapytanie);
$ile_znalezionych=$wynik->num_rows;
echo '<p> Ilość znalezionych pozycji: '.$ile_znalezionych.'</p>';

for ($i=0; $1<$ile_znalezionych; $i++)
{
   $wiersz=$wynik->fetch_assoc();
   echo '<p><strong>'.($i+1).'.ID: ';
   echo stripslashes($wiersz['id']);
   echo '<p><strong>'.($i+1).'.Nazwa: ';
   echo stripslashes($wiersz['nazwa']);
   echo '<p><strong>'.($i+1).'.Cena: ';
   echo stripslashes($wiersz['cena']);
}

$wynik->free();
$db->close();

?>

</body>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Darti
post
Post #2





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

Ostrzeżenie: (0%)
-----


może to ? :
  1. <?php
  2. for ($i=0; $i<$ile_znalezionych; $i++)
  3. ?>


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
DawidF
post
Post #3





Grupa: Zablokowani
Postów: 120
Pomógł: 2
Dołączył: 4.11.2004

Ostrzeżenie: (10%)
X----


We wszystkich miejscach, w których masz "metoda szukania" - zmień to na "metoda_szukania".

I znacznie ładniej wyglądałyby domknięte optiony...
Go to the top of the page
+Quote Post
gallardo83
post
Post #4





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 5.11.2007

Ostrzeżenie: (0%)
-----


Jeśli chodzi o metody szukania to wszędzie sa dobrze wpisane i nic nie poprawiałem - no chyba że cos przoczyłem ?
Poprawiłem tą pętlę for ale nadal jest gdzieś błąd bo jak podaje metodę szukania (to czy ma szukać po id, nazwie czy cenie) i jak wspisuje np nazwę to wyskakuje ze brak parametrów wyszukiwania - pomimo ze taka nazwa jest w mojej tabeli .
Co może być przyczyną ?
Pozdrawiam i z góry dziękuję za wskazówki
Go to the top of the page
+Quote Post
Darti
post
Post #5





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

Ostrzeżenie: (0%)
-----


Tak jak pisał DawidF - nazwy zmiennych nie lubią mieć spacji ...

Ten post edytował Darti 19.11.2007, 23:30:29


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
gallardo83
post
Post #6





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 5.11.2007

Ostrzeżenie: (0%)
-----


Ok - wszędzie poprawiłem na metoda_szukania i nadal nic - teraz nic nie pokazuje z skryptu
Go to the top of the page
+Quote Post
DawidF
post
Post #7





Grupa: Zablokowani
Postów: 120
Pomógł: 2
Dołączył: 4.11.2004

Ostrzeżenie: (10%)
X----


To przedstaw nam kody tych stron w obecnej postaci.
Go to the top of the page
+Quote Post
gallardo83
post
Post #8





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 5.11.2007

Ostrzeżenie: (0%)
-----


ok
Kod
<html>
<head>
  <title> Wyszukaj </title>
  </head>
  
<body>
<h1> Wyszukiwanie Samochodów </h1>
<form id="form1" name="form1" method="post" action="index.php?page=rezultat_wyszukania_po_polu">
Wybierz metode wyszukiwania:<br />
<select name="metoda_szukania">
<option value="id">ID</option>
<option value="nazwa">Nazwa</option>
<option value="cena">Cena</option>
</select>
<br />
Wprowadz poszukiwane wyrazenie:<br />
<input name="wyrazenie" type="text">
<br />
<input type="submit" value="Szukaj">
</form>
</body>
</html>


i
Kod
<?php session_start();
if(isset($_SESSION['rights']) && $_SESSION['rights']=='user')
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Wyszukanie po polu</title>
</head>

<body>
Rezultaty wyszukiwania po zadanym polu:
<?php
// utworzenie krótkich nazw zmiennych
$metoda_szukania=$_POST['metoda_szukania'];
$wyrazenie=$_POST['wyrazenie'];

$wyrazenie=trim($wyrazenie);

if (!$metoda_szukania || !$wyrazenie)
{
    echo 'Brak parametrów wyszukiwania';
    exit;
    }
    
if (!get_magic_quotes_gpc())
{
    $metoda_szukania=addslashes($metoda_szukania);
    $wyrazenie=addslashes($wyrazenie);
    }
    
  $db=new mysqli(''. ''. ''. 'audi');

if(mysqli_connect_errno())
{
    echo 'Polaczenie z baza danych nie powiodlo sie - spróbój jeszcze raz';
    exit;
    }
    
$zapytanie= "select * from samochody where ".$metoda_szukania." like '%".$wyrazenie."%'";
$wynik=$db->query($zapytanie);
$ile_znalezionych=$wynik->num_rows;
echo '<p> Ilosc znalezionych pozycji: '.$ile_znalezionych.'</p>';

for ($i=0; $i<$ile_znalezionych; $i++)
{
    $wiersz=$wynik->fetch_assoc();
    echo '<p><strong>'.($i+1).'.ID: ';
    echo stripslashes($wiersz['id']);
    echo '<p><strong>'.($i+1).'.Nazwa: ';
    echo stripslashes($wiersz['nazwa']);
    echo '<p><strong>'.($i+1).'.Cena: ';
    echo stripslashes($wiersz['cena']);
  }
  
  $wynik->free();
  $db->close();

?>
  

</body>
</html>
<?}?>


Ten post edytował gallardo83 20.11.2007, 00:02:34
Go to the top of the page
+Quote Post
Darti
post
Post #9





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

Ostrzeżenie: (0%)
-----


Jak na moje oko formularz i kod php są OK , coś może być z prawami dostępu (na początku masz $_SESSION) i może dlatego nic nie wyświetla...
włącz sobie wyświetlanie błędów, może coś php pokaże


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
gallardo83
post
Post #10





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 5.11.2007

Ostrzeżenie: (0%)
-----


Bez sesji działa podobnie

Zatrzymuj sie na Brak parametrów wyszukiwania - nawet nie wchodzi do bazy - prawa dostepu sa na bank ok
Go to the top of the page
+Quote Post
DawidF
post
Post #11





Grupa: Zablokowani
Postów: 120
Pomógł: 2
Dołączył: 4.11.2004

Ostrzeżenie: (10%)
X----


I zobacz, czy wyświetlane są zmienne, które przesyłasz: $_POST['metoda_szukania'], $_POST['wyrazenie']...

Wyświetl wszystko, co się da po drodze...

Może ja gupi jestem, ale ten fragment mi się nie podoba...

  1. <?php
  2.  {
  3. $metoda_szukania=addslashes($metoda_szukania);
  4. $wyrazenie=addslashes($wyrazenie);
  5. }
  6. ?>

smile.gif
Go to the top of the page
+Quote Post
gallardo83
post
Post #12





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 5.11.2007

Ostrzeżenie: (0%)
-----


Zmienne się wyświetlaja - a ten kawałek co Tobie się nie podoba to chyba jest ok ? smile.gif
Go to the top of the page
+Quote Post
Darti
post
Post #13





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

Ostrzeżenie: (0%)
-----


a moze tak?:
  1. <?php
  2. if ($metoda_szukania == "" || $wyrazenie == "")
  3. ?>


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
gallardo83
post
Post #14





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 5.11.2007

Ostrzeżenie: (0%)
-----


Niestety nie zadziałało
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 07:29