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

wyszukiwarka nie wyszukuje

Konkurs Mistrz Programowania
0 głosów
286 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 (215,070 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 1,011 wizyt
pytanie zadane 9 grudnia 2018 w PHP przez jared Gaduła (3,600 p.)
0 głosów
1 odpowiedź 568 wizyt
–3 głosów
0 odpowiedzi 258 wizyt

93,656 zapytań

142,577 odpowiedzi

323,100 komentarzy

63,174 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

Kursy INF.02 i INF.03
...