W sprawie wstawiania danych do tabeli w bazie danych.

0

Szanowni Państwo,

W jaki sposób wyegzekwować wykonanie wstawienia do tabeli danych ?

$zapytanie =  "INSERT INTO `Zamowienia`(`Id`, `tytuł`,`ilość`,`cena`,`data_realizacji`) VALUES ('$Id','$tytuł','$ilość','$cena','$data_realizacji')";

Cały czas pisze mi, że jest błąd. Jak to mysqli_query($zapytanie) powinno wyglądać ? Połączenie z bazą danych wcześniej nawiązałem. Dziękuję za pomoc

mysqli_query($zapytanie);

3

Tajemnicą jest ten otrzymany błąd?
Po co wpisujesz id, raczej używaj inkrementacji na tej kolumnie. Takie samo zapytanie w SQL wykonuje się poprawnie?
Mini masz pdo to korzystaj z prepaere statmets to będziesz miał od razu zabezpieczenie przeciw SQL Injection.

0
Ten błąd to: 

udało się jesteś połączony z bazą danych
Warning: mysqli_query() expects parameter 1 to be mysqli, string given in /pierwsza.php on line 19
1

https://www.php.net/manual/en/mysqli.query.php
Pierwszy parametr to połączenie.

0

Sprawdź sobie gdzie powinieneś mieć cudzysłowy/apostrofy a gdzie nie powinieneś.

0

To jak to mysqli_query($zapytanie); powinienem zapisać ? Połączenie
nawiązałem przy pomocy polecenia:

$link = mysqli_connect("serwer9887689.home.pl","3308988989_baza","kosmonauta");

Sprawdziłem to w ten sposób:

if (!$link)
{
echo 'Błąd: : Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
exit;

}

Dziękuję za pomoc.

1

mysqli_query($link, $zapytanie);

Zachęcam do czytania dokumentacji

0

A jak wybrać bazę danych, bo coś nie dodaje informacji do tabeli ?

0

@jurek1980: Tak, jak poniżej:

$link = mysqli_connect("serwer9887689.home.pl","3308988989_baza","kosmonauta");

0

A odwiedziłeś stronę z dokumentacją?
mysqli("localhost","my_user","my_password","my_db")
Jeszcze jeden parametr...

0

Jak mam $link = mysqli_connect("serwer9887689.home.pl","3308988989_baza","kosmonauta"); to co ja powinienem dopisać, bo naprawdę już teraz nie rozumiem i nie wiem ?

0

A patrzyłeś do dokumentacji? Jak patrzyłeś i nie rozumiesz co tam jest no to odpocznij od programowania. Może idź na spacer?
Masz przykład nawet:
mysqli("localhost","my_user","my_password","my_db")
W przykładzie masz 4 parametry, Ty podajesz 3.
Pierwszy to adres serwera, drugi uzytkownik, trzeci hasło, czwarty nazwa bazy do jakiej się podłączasz.
Dokumntacja mówi jeszcze o możliwość podania kolejnych dwóch opcjonalnych parametrów czyli portu i socketu.

0
Wszystko podałem w połączeniu i bardzo pięknie jest, tylko po wypełnieniu formularza html danymi,  i naciśnięciu dodaj okazuje się, że php nie podaje żadnego błędu,  natomiast w bazie danych sql dodają się puste rekordy bez żadnych danych w kolumnach. `Id`, `tytuł`,`ilość`, Czym to jest spowodowane ? 
0

Formularz HTML poniżej:

<html> <body>

<font size="20," align="center">Formularz do składania zamówień </font>

Id tytuł ilość_zamówionych_sztuk </tr> <input type="text" name="Id" size="30" maxlength="100"> <input type="text" name="tytuł" size="30" maxlength="100"> <input type="text" name="ilość" size="30" maxlength="100"> <input type="submit" value="wyślij _zamówienie"> </form> </body> </html>
0

Nie wiem dlaczego nie dodaje danych do tabeli w SQL ?

0

Chodzi o to polecenie:

$zapytanie = "INSERT INTO Zamowienia(Id, tytuł,ilość) VALUES ('$Id','$tytuł','$ilość')"; Dodaje puste rekordy bez danych wpisanych w formularzu.

1

Używasz polskich znaków do oznaczania nazw pól formularza,zmiennych i kolumn?
Co masz w tych zamiennych przed wykonaniem zapytania?
Takie samo zapytanie napisane ręcznie się wykonuje?

0

Na serwerze home.pl w sekcji SQL zapytanie postaci INSERT INTO Zamowienia(Id, tytuł,ilość) VALUES ('12','Dwie_wieże','55');

się wykonało.

2

Nie używaj polskich znaków w nazwach zmiennych i kolumn tabeli.

Wyświetl sobie, jak wyglądają te przesłane dane: $Id, $tytuł, $ilość.

Sprawdź, czy wystąpił jakiś błąd: $link -> error.

0

To nic nie daje

0

Czy ten plik php masz na tym samym serwerze co bazę?

0

Przesyłam FTP na serwer, gdzie jest baza danych SQL.

1

Weź to zaoraj i napisz po bożemu. Bez polskich znaków i jak jakieś tutoriale wskazują. Tak kręcisz się w kółko X godzin.
Mam wrażenie, że bardziej zaszkodziłem niż pomagam więc pozwolę sobie na zamilknięcie w tym wątku.

1

Zamieniłem w tabeli Id, tytuł,ilość na Id tytul ilosc i w zapytaniu php $zapytanie = "INSERT INTO Zamowienia(Id, tytul,ilosc) VALUES ('$Id','$tytul','$ilosc')" nawet w formularzu HTML, niestety dalej jest to samo.

1

Ostawiam, że zmienne $Id,$tytul,$ilosc są puste...

0

Jeszcze raz zamieszczam kod formularza:

<html>
<body>

<table border=0>
<tr bgcolor=#cccccc>
<body bgcolor=green>

<form action="pierwsza.php" method=post>

<font size=20, align="center"><b>Formularz do składania zamówień </b></font>

<th width=60>Id</th>
<th width=60>tytul </th>
<th width=60>ilosc_zamówionych_sztuk </th>


</tr>

<tr>

<td align="center" ><input type="text" name="Id" size="30" maxlength="100"></td> 
<td align="center" ><input type="text" name="tytul" size="30" maxlength="100"></td>   
<td align="center" ><input type="text" name="ilosc" size="30" maxlength="100"></td>

</table>


<br/>
<td colspan="2" align="left"  ><input type="submit" value="wyślij _zamówienie" ></td>
</tr>
</form>

</body>
</html>

0

Co znaczy, że są puste ? Podaję kod formularza.

2

W podanym przez Ciebie kodzie masz form action="pierwsza.php" method=post - czyli wysyłka będzie zrobiona do skryptu nazwanego pierwsza.php. Pomijam nawet to, że ta nazwa jest zupełnie bezsensowna i nic nie mówiąca - bo teraz nie ma to znaczenia.

To, o czym pisał @Marcin.Miga to sprawdzenie, czy z poziomu skryptu o nazwie pierwsza.php te zmienne mają jakieś wartości, czy są puste. Najprościej możesz to zrobić poprzez skorzystanie z echo i wyplucie ich wartości na ekran.

0

Czy tak ?
echo $Id;
echo $tytul;
echo $ilosc;

Próbowałem, ale nic nie pokazują. Tak jakby ich nie było.

nic nie wyświetlają. Kod ten zamieściłem w pliku pierwsza.php, który wywołuje polecenie Insert wpisywania danych do tabeli.

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