Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Zapytanie Mysql PHP zmienna
CherryOp
post 10.08.2019, 17:22:39
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 7.08.2019

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


Cześć chciałem uzyskać taki efekt by użytkownik ( gość ) na stronie mógł wpisać dowolna zawartość ''klucz'' w pole text wskazane
po czym baza zwróci mu odpowiedź adekwatna do klucza z tabeli

np tabela:

klucz wartosc

bla bla bla bla2


wpisanie poprawnie klucza = odpowiedź w przypadku nieprawidłowego zapytania tj braku takiego klucza -odpowiedź negatywna.

Coś na zasadzie sprawdzania statusu zamówienia


  1. <?php include('db_connect.php');
  2. function getValue($id) {
  3. $result = $mysqli->query("SELECT login FROM `tabela` WHERE `id` = $id");
  4. print_r($result);
  5. }
  6.  
  7. ?>
  8. <!DOCTYPE html>
  9. <html lang="en">
  10. <head>
  11. <meta charset="UTF-8">
  12. <title>test</title>
  13. <link rel="stylesheet" href="semantic.min.css">
  14. <link rel="stylesheet" href="custom.css">
  15. </head>
  16. <body>
  17. <div class="ui container content">
  18. <div class="top">
  19. <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" class="ui form">
  20. <div class="field">
  21. <label for="">Tekst</label>
  22. <input type="text" name="id">
  23. <input type="submit" class="ui primary button" name="id" value="Wyślij">
  24. </div>
  25. </form>
  26. </div>
  27. </div>
  28. </body>
  29. </html


Jestem totalnym noobem w tym temacie wiem jak wyprowadzic sama zawartość z tabeli ale tylko w taki sposob by wyswietlalo sie wszystko bez zapytania, mi glownie chodzi o to by uzytkownik sam musial zapytac by uzyskac odpowiedz na konkretny temat.


Czy możecie pokierować ?

Ten post edytował CherryOp 10.08.2019, 23:09:26
Go to the top of the page
+Quote Post
dublinka
post 11.08.2019, 09:39:04
Post #2





Grupa: Zarejestrowani
Postów: 200
Pomógł: 23
Dołączył: 22.02.2008

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


  1. $szukana = 12345;
  2. SELECT id, klucz, wartosc FROM tabela WHERE klucz='$szukana'

W tym momencie wyszuka konkretnie identyczny ciag znakow wystepujacy w kolumnie "klucz"
Zakladam jednoczesnie ze te klucze sa unukalne i nie powielaja sie.
Teraz musisz tylko to wyswietlic.

EDIT.

  1.  
  2. <?php
  3.  
  4.  
  5. function GetValue($server, $username, $password, $database, $table, $szukana)
  6. {
  7.  
  8. $mysqli = new mysqli($server, $username, $password, $database);
  9.  
  10. if ($mysqli->connect_error)
  11. {
  12. die("Błąd połączenia z MySQL: " . $mysqli->connect_error);
  13. }
  14. $stmt = $mysqli->prepare("SELECT klucz, wartosc FROM $table WHERE klucz = ?");
  15. $stmt->bind_param("s", $_POST['szukana']);
  16. $stmt->execute();
  17. $stmt->store_result();
  18. if($stmt->num_rows === 0) echo('Brak wyników');
  19. $stmt->bind_result($klucz, $wartosc);
  20. $stmt->fetch();
  21. echo $content;
  22. $stmt->close();
  23.  
  24. }
  25.  
  26. GetValue('localhost', 'root', 'pass', 'nazwabazy', 'nazwatabeli', @$szukana);
  27.  
  28. ?>
  29.  
  30. <form action="" method=post>
  31. <input type=text name=szukana>
  32. <input type=submit value=szukaj>
  33. </form>
  34.  


Ps. Jesli szukana jest liczbą zmien te linie:
  1. $stmt->bind_param("i", $_POST['szukana']);


Ten post edytował dublinka 11.08.2019, 15:16:09
Go to the top of the page
+Quote Post
CherryOp
post 11.08.2019, 14:56:41
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 7.08.2019

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


Dzięki wielkie, nareszcie wysyła poprawnie zapytanie. Teraz właśnie robie by wyświetlało odpowiedź

powiedź mi tylko czy dane w tym samym pliku tj pass/login do mysql jest bezpieczne? czy mam include zrobić do pliku database ?


oraz czy uzytkownik utworzony w tej bazie powinien miec jakeis specjalne uprawnienia tak by wszystko bylo bezpiecznie?

jeszcze raz dzięki wielkie, szukałem rozwiązania przez kilka dni nawet w płatnych poradnikach ale mi ta wiedza przychodzi gorzej haha.gif
Go to the top of the page
+Quote Post
dublinka
post 12.08.2019, 06:33:17
Post #4





Grupa: Zarejestrowani
Postów: 200
Pomógł: 23
Dołączył: 22.02.2008

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


Piszesz na samym poczatku ze to ma byc 'gosc' wiec osoba anonimowa/bez zadnej rejestracji. I tak jest. Teraz sie pytasz cxy ma miec jakies dodatkowe uprawnienia.

Jesli chodzi o login i pass nie ma znaczenia ale jesli chcesz mozesz zawsze trzymac w osobnym pliku.
Go to the top of the page
+Quote Post
CherryOp
post 12.08.2019, 13:01:07
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 7.08.2019

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


Nie nie, chodziło mi o te dane do hosta biggrin.gif te które są do logowania msq

ale jak niema znaczenia to ok.

W wyswietlaniu dodałem takie coś

  1. while ($stmt->fetch()) {
  2. echo '<h5> TRESC2: '.$zmienna1.'</h5>';
  3. echo '<h5> TRESC2: '.$zmienna2.'</h5>';


wszystko śmiga

tylko jak w przypadku if

  1. if($stmt->num_rows === 0) echo('Niepoprawny kod');


mogę zrobić by komunikat o ''niepoprawny kod'' wyświetlał się dopiero po wpisaniu jakiejkolwiek zawartosci? bo on nawet wyswietla się po wejściu pierwszy raz na strone.
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 Wersja Lo-Fi Aktualny czas: 20.08.2019 - 02:29