Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Nie działające wyszukiwanie
#1
Witam
Otóż mam funkcje wyszukiwania użytkowników, ale jest problem bo np mam w bazie dwóch użytkowników michal i tomek. Gdy wyszukuje użytkownika michal wyświetla się użytkownik michal ale jak już chce wyszukać użytkownika tomek to znów wyświetla się michal. Dodatkowo po wyświetleniu tych pseudo wyników wyświetla się Jeszce komunika Notice: Undefined index: wyrazenie in C:\xampp\htdocs\mi\search.php on line 4.
funkcja wyszukiwania
Kod PHP:
function wyszukaj($wyrazenie)
{
    
$lacz lacz_bd();
    
$warunki=" (nazwa_uz LIKE '%$wyrazenie%')";     
    if(
$wynik $lacz->query("select * from uzytkownik where $warunki")) {
    
$znalezieni $wynik->fetch_assoc();;
    echo 
$znalezieni['nazwa_uz']; }
    else {
        
printf("Error: %s\n"$lacz->error);


tutaj kod skryptu search.php
Kod PHP:
pobierzplaintext 
<?php
session_start
();
require_once(
'funkcje_all.php');
$wyrazenie=$_POST['wyrazenie'];
$wyrazenie trim($wyrazenie);
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 
<meta name="keywords" content="" />
<meta name="Performance" content="" />
<link href="glowny.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<?php  
        tworz_naglowek_html
('Wyszukaj');
    
menu_top();
    
tworz_header();
?>
    <div id="content1">
       <?php
          tworz_menu
();?>
       </div>
        <div id="content2">
        <?php
            wyszukaj
($wyrazenie); ?>
            </div>
    <?php tworz_stopke(); ?>
<body>
</body>
</html> 
Odpowiedz
#2
Ten komunikat informuje, że w tablicy $_POST nie istnieje index 'wyrazenie' - sprawdz czy w POST jest na pewno 'wyrazenie' czy nie ma tam literówki Smile

Skrypt działa prawidłowo. Wyrazenie jest puste wiec LIKE '%%' wyciagnie wszystkie rekordy nazwa_uz z bazy danych, a że wyświetlasz tylko pierwszy (a nie wszystkie możliwe - Twój błąd) to masz 'miachal'.

Dowód: weź polecenie echo $znalezieni['nazwa_uz']; w pętle i dostaniesz Michała i Tomka.

pozdrawiam Tongue
Jak pomogłem daj '+'. To nie boli, a ja mam satysfakcję Smile

Any sufficiently advanced technology is indistinguishable from magic.
Odpowiedz
#3
No dobra a jak to zrobić żeby jak wyszukam michała to wyświetli się tylko michał a jak tomka to tylko tomek a nie wszystko
Odpowiedz
#4
zobacz czy w formularzu wyszukiwania pole wyszukiwania ma wartość name=wyrazenie.

albo wyswietl sobie print_r($_POST) i zobacz co przekazujesz
Jak pomogłem daj '+'. To nie boli, a ja mam satysfakcję Smile

Any sufficiently advanced technology is indistinguishable from magic.
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Wyszukiwanie obiektów w "pobliżu" w php i googlemaps northwest 1 2,955 05-08-2014, 00:02
Ostatni post: k3rmitt
  Dynamiczne wyszukiwanie sztyvny 3 3,482 08-07-2011, 13:25
Ostatni post: sztyvny

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl