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

Brak wyświetlania ceny przy pobraniu danych z formularza

42 Warsaw Coding Academy
0 głosów
255 wizyt
pytanie zadane 17 czerwca 2020 w Egzaminy zawodowe przez Adrian Kurowski Nowicjusz (160 p.)

Podczas pobierania danych z formularza nic się nie wyświetla natomiast jeśli wpiszę z ręki nazwę produktu to cena się pojawia.

<?php
$conn= mysqli_connect('127.0.0.1:3325', 'root', '','sklep1');
          
 			$przedmiot = $_POST['przedmiot'];
 			$sql="SELECT cena from towary where nazwa = '$przedmiot'";
 			$res= mysqli_query($conn,$sql);
			
			while ($row = mysqli_fetch_assoc($res)) {
				echo "<p>".$row['cena']."</p>";
			}
 				
 				mysqli_close($conn);
?>

 

komentarz 17 czerwca 2020 przez Tomek Sochacki Ekspert (227,490 p.)
A co zwraca query so bazy? Probowales puścić query bezposrednip na bazie?
komentarz 17 czerwca 2020 przez Adrian Kurowski Nowicjusz (160 p.)
W sensie nie bardzo rozumiem?

1 odpowiedź

+1 głos
odpowiedź 17 czerwca 2020 przez michal_php Stary wyjadacz (13,700 p.)

Kilka uwag:

1) zamiast while użyj foreach

2) gdzie i co wpisujesz z palca ?

3) co Ci wypluwa baza danych ?

weź sobie :

dump($sql);

i będziesz wiedzieć co Ci wypluwa baza danych 

4) poczytaj jak zrobić dobre połączenie a bazą danych :

https://www.cloudways.com/blog/connect-mysql-with-php/

Bo jeśli nie łączysz się z bazą danych to nawet nie wiesz gdzie występuje problem.

Proponuje zastosować coś takiego:

$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}

 

komentarz 17 czerwca 2020 przez Adrian Kurowski Nowicjusz (160 p.)
edycja 17 czerwca 2020 przez Adrian Kurowski
1) Użyłem nic się nie zmienia

2) Jeśli w tej komendzie "SELECT cena from towary where nazwa = '$przedmiot'" zamiast '$przedmiot' wpiszę np 'Cienkopis' czyli nazwę  przedmiotu który jest w bazie danych to normalnie wyświetla mi się cena tego produktu.

3) string(41) "SELECT cena from towary where nazwa = '4'"

Dodam jeszcze, że jak dam dump($row) to wyświetla się wartość NULL

4) Połączenie na pewno jest dobre ponieważ wcześniej roiłem skrypt na wyświetlanie przedmiotów z bazy danych na stronie i działa.
komentarz 17 czerwca 2020 przez michal_php Stary wyjadacz (13,700 p.)

1) chodzi o dobre praktyki. Dzięki temu kod jest nieco czystszy

2) to znaczy, że wartość którą otrzymujesz nie jest zgodna. 

zrób:

dump($przedmiot);

i zobacz co Ci wypluje.

3) jeśli wartość $przedmiot nie będzie pasować do zapytania sql to wypluje Ci null bo nic nie znajdzie.

4) chodzi o dobre praktyki. O zabezpieczanie kodu

Podobne pytania

0 głosów
1 odpowiedź 985 wizyt
0 głosów
1 odpowiedź 442 wizyt
pytanie zadane 11 września 2022 w HTML i CSS przez Jerzy Użytkownik (950 p.)
0 głosów
1 odpowiedź 337 wizyt
pytanie zadane 16 stycznia 2018 w PHP przez Adrian86452 Użytkownik (690 p.)

93,382 zapytań

142,382 odpowiedzi

322,539 komentarzy

62,740 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...