Problem z komendą SELECT. FROM

0

Szanowni Państwo,

Dodałem na serwer dane pochodzące z formularza html następującym polecenie, które zadziałało:

$zapytanie =  "INSERT INTO `Zamowienia`(id, tytul, ilosc) VALUES ('".$_POST["Id"]."','".$_POST["tytul"]."','".$_POST["ilosc"]."' )";

Teraz chciałbym te dane pobrać z serwera, tylko nie wiem w jaki sposób zapisać komendę SELECT, aby zadziałała

chodzi o SELECT FROM .......
Zwracam się z uprzejmą prośbą o napisanie składni jak ta komenda powinna wyglądać w tym przypadku, aby pobrać dane z serwera ? Dziękuję za szczegółowe odpowiedzi.

4

To zależy co chcesz pobrać, w czym konkretnie jest problem? Gorzej, że jest tu koncertowe SQL injection :/

0

Chcę, Aby komenda mi wyświetliła wszystkie dodane do zewnętrznego serwera wiersze w tabeli na stronie www, jak również pojedyńczego wiersza z tabeli np. o id 1. Na razie działa tylko dodawanie rekordów w postaci jak wyżej.

1

Nadal nie napisałeś z czym masz problem...
Tworzysz zapytanie:
SELECT [nawy kolumn] FROM [nazwa tabeli] i jeżeli jest potrzeba (chcesz np jeden wiersz o konkretnym id) dodajesz warunek WHERE [nazwa pola]=[wartosc]
np. SELECT name, age, rate FROM users WHERE id = 1

0

Tylko proszę spojrzeć na komendę INSERT, jaki tam jest dziwny napis. Więc komenda Select w sposób tradycyjny również nie będzie działać.

$zapytanie =  "INSERT INTO `Zamowienia`(id, tytul, ilosc) VALUES ('".$_POST["Id"]."','".$_POST["tytul"]."','".$_POST["ilosc"]."' )"
4

A co widzisz tu dziwnego?
W 15 pewnie innych wątkach, miałeś podane X sposobów i bibliotek do obsługi MySql.
Jeśli chcesz się czegoś nauczyć, czytaj dokumentację sam i zadawaj konkretne pytania.
Opisz co tu jest dziwnego. Czego próbowałeś i jakie problemy napotkałeś przy próbie wykonania zapytania z select. Oczywiście kod który stworzyłeś powinien być do postu dołączony.

0

@hipekk: Jeżeli wykonuję to zapytanie:

Chodzi o tą poradę:

Nadal nie napisałeś z czym masz problem...
Tworzysz zapytanie:
SELECT [nawy kolumn] FROM [nazwa tabeli] i jeżeli jest potrzeba (chcesz np jeden wiersz o konkretnym id) dodajesz warunek WHERE [nazwa pola]=[wartosc]
np. SELECT name, age, rate FROM users WHERE id = 1

**Jeżeli wykonuję polecenie tak jak w poradzie poniżej

$sql = SELECT id, tytul, ilosc FROM Zamowienia;

mysqli_query($link, $sql);

to otrzymuję następującą odpowiedz:

Parse error: syntax error, unexpected 'tytul' (T_STRING) in /pokaz.php on line 20**

0

W przypadku drugiej porady https://www.w3schools.com/php/php_mysql_select.asp
To pisząc kod:

$sql = "SELECT id, tytul, ilosc FROM Zamowienia";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - tytul: " . $row["tytul"]. " " . $row["ilosc"]. "<br>";
  }
} else {
  echo "0 results";
}
$conn->close();

W ostatecznym efekcie otrzymuję następującą odpowiedz komputera:

udało się jesteś połączony z bazą danych

Fatal error: Uncaught Error: Call to a member function query() on null in /pokaz.php:24 Stack trace: #0 {main} thrown in /pokaz.php on line 24

0

Więc pobranie wiersza, lub wierszy z bazy danych nie zadziałało. Co dalej zrobić ?

0

Moim zdaniem masz błąd w złożeniach, nie będę mówił od strony php bo już dawno w nim nie programowałem ale od storny sql.

INSERT INTO Zamowienia(id, tytul, ilosc) VALUES ('".$_POST["Id"]."','".$_POST["tytul"]."','".$_POST["ilosc"]."' )

Nie powinieneś wpisywac do bazy id z posta!, a jeżeli już musisz to powinieneś wyciągnąć ostatnie dodane id do zamówienia i wtedy dopiero dodawać nastepne.

id powinno być kluczem podstawowym
https://www.w3bai.com/pl/sql/sql_primarykey.html

oraz powinno być automatycznie numerowane
https://www.w3schools.com/sql/sql_autoincrement.asp

i sql powinnien wyglądać tak
INSERT INTO Zamowienia(tytul, ilosc) VALUES ('".$_POST["tytul"]."','".$_POST["ilosc"]."' )

być może działasz na stworzonej już przez kogoś tabeli i dlatego nie pozwala Ci dołożyć zamówienia bo chcesz na siłę dodać id zamówienia a to pole jest ustawione na autoincrement?

0

** Przecież ja napisałem, że polecenie $zapytanie = "INSERT INTO Zamowienia(id, tytul, ilosc) VALUES ('".$_POST["Id"]."','".$_POST["tytul"]."','".$_POST["ilosc"]."' )";
działa idealnie. Mam natomiast tylko problem z wyciągnięciem i wyświetleniem danych z tabeli za pomocą polecenia Select from. Nie wiem jaką komendą to zrobić ? Dlatego proszę o pomoc**

1

Zainwestuj 2-3 godziny w kurs SQL, to będziesz wiedział. W wyszukiwarce znajdziesz ich setki, także po polsku.

Aha i sposób w jaki robisz INSERT oznacza podatność na atak typu SQL Injection, czyli każdy bez problemu może odczytać zawartość Twojej bazy danych. Powinieneś w PHP korzystać z PDO.

1 użytkowników online, w tym zalogowanych: 0, gości: 1