• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

wyszukiwarka nie wyszukuje

Object Storage Arubacloud
0 głosów
178 wizyt
pytanie zadane 23 marca 2019 w PHP przez podgorowicz Początkujący (340 p.)

Hej. Próbuję stworzyć wyszukiwarkę profili, jednak po wcisnięciu submita strona jest pusta i jedynie 

www.localhost/index.php zmienia się na www.localhost/index.php?familyMember=wpisaneimie&search=wizytowka

Mam kod:

			<form action="index.php" method="get">
                      <input type="text"  name="familyMember">
                       <input type="submit" name="search" value="wizytowka">
			</form>



 <?php
    
               $connection = new mysqli($host, $db_user, $db_password, $db_name);
               if(isset($_GET['familyMember']))
               {
                   $familyMember = $_GET['familyMember'];
                  
                    
                   $sql = "select * FROM rodzina where name='$familyMember'";
                    if($result->num_rows === 0)
                    {
                        $_SESSION['e_name'] = "Nie ma takiego członka";
                    }
                   
                    if(!$result) throw new Exception($connection->error);

                   
                    if($result->num_rows>0)
                    {
                        while ($row = mysqli_fetch_array($result)) 
                        { 
                            $nameDb = $row['name'];
                            
                            echo $nameDb;
              
                            if($familyMember != $nameDb)
                            {
                                $_SESSION['e_name'] = "Fatal error";
                            }

                        }}
               }
               ?>
                
<div><?php
              
                    if(isset($_SESSION['e_name']))
                    {
                        echo '<div class="error">'.$_SESSION['e_uname'].'</div>';
                        unset($_SESSION['e_name']);
                    }
                    
                   ?></div>

 

Na podstronie działa mi wgrywanie danych z form POST, ale tutaj z GET już nie reaguje, echo nic nie wyświetla, a kod prawie identyczny. Proszę o podpowiedź, co tu robię źle :/

1 odpowiedź

+3 głosów
odpowiedź 24 marca 2019 przez darek_kce Gaduła (3,180 p.)
wybrane 24 marca 2019 przez podgorowicz
 
Najlepsza

Hej,

Ten kod nie ma prawa działać bo jak widać używasz zmiennej $result, która nie istnieje.

Powinieneś dodać przed drugim if-em a po $sql, jeszcze linię w której rzeczywiście wykona się to zapytanie:

...
$sql = "select * FROM rodzina where name='$familyMember'";
    
$result = $connection->query($sql); // o tę linię chodzi
    
if($result->num_rows === 0)
...

BTW, jeżeli też robisz wyszukiwanie przez pole tekstowe formularza, to można by się zastanowić nad modyfikacją tego zapytania SQL na:

select * FROM rodzina where name like '%$familyMember%'

tak aby wyszukiwało też podobne frazy a nie dokładne (ale to taka sugestia, nie musi tego być)

2
komentarz 24 marca 2019 przez Ehlert Ekspert (212,670 p.)
Wypadałoby też ogarnąć mysql injection.
komentarz 24 marca 2019 przez podgorowicz Początkujący (340 p.)

@darek_kce, O Boże, nie wiem jak mi ten result umknął, wszędzie indziej mam, rzeczywiście to rozwiązało problem, dziękuję;)  użyję tej modyfikacji

Podobne pytania

0 głosów
2 odpowiedzi 701 wizyt
pytanie zadane 9 grudnia 2018 w PHP przez jared Gaduła (3,600 p.)
0 głosów
1 odpowiedź 324 wizyt
–3 głosów
0 odpowiedzi 143 wizyt

92,565 zapytań

141,416 odpowiedzi

319,597 komentarzy

61,948 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...