Problem z ratingiem

0

Hej, mam do Was gorącą prośbę. Jestem zupełnie początkująca w php i nie mogę poradzić sobie z moim problemem. Siedzę już nad tym drugi dzień, szukam jak sobie z tym poradzić, ale nie udaje mi się. Nie wiem co robię nie tak, że wynik nie trafia do bazy danych. Jeżeli ktoś byłby tak życzliwy i mi pomógł rozwiązać mój problem, będę mega wdzięczna. Dodatkowo, czy da się jakoś to co napisałam uprościć? W wersji finalnej chciałabym mieć więcej zdjęć do oceny. Wszelki wskazówki mile widziane :).

https://pastebin.com/YbAyk2nx

0

Wyświetla ci się jakiś błąd?

No i chyba zapomniałaś pokazać jednego pliku, który includujesz na początku.

0
ShookTea napisał(a):

Wyświetla ci się jakiś błąd?

No i chyba zapomniałaś pokazać jednego pliku, który includujesz na początku.

Hej, nie załączyłam połączenia z bazą danych, bo raczej błąd jego nie dotyczy, ale wygląda on tak:
https://pastebin.com/vwUthmkY

Jeżeli nie zaznaczę nic to wyświetla mi się Undefined index, też nie za bardzo wiem jak się tego pozbyć, gdy pojawia się powiadomienie o nieuzupełnionym polu. Gdy zaznaczam gwiazdki nie wyświetla się nic.

0

Może jest jakiś błąd przy dodawaniu danych do bazy, wyświetl sobie ostatni błąd za pomocą tego:
http://php.net/manual/en/mysqli.error.php
i zobacz, czy wszystko przechodzi tak jak powinno.

Jeżeli nie zaznaczę nic to wyświetla mi się Undefined index, też nie za bardzo wiem jak się tego pozbyć, gdy pojawia się powiadomienie o nieuzupełnionym polu. Gdy zaznaczam gwiazdki nie wyświetla się nic.

Użyj isset aby sprawdzić czy dana zmienna istnieje:
http://php.net/manual/en/function.isset.php

$stars1 = $_POST['stars1'];

Skąd masz pewność, że Twoja zmienna $_POST w ogóle istnieje?
Dodatkowo poczytaj o SQL Injection.

$mysqli = @new mysqli($db_host, $db_user, $db_pass, $db_name);

Nie używaj "@" małpy do ukrywania błędów. Ogółem używanie "@" jest złym nawykiem i powinno się tego unikać. Jak jest ostrzeżenie, to znak że trzeba coś zrobić w kodzie, a nie ukrywać informacje o błędach.

0

W końcu się wyspałam i chyba to pomogło mi znaleźć główny problem z wkładaniem danych do bazy. Nie wiem czemu to zadziałało, może Wy będziecie w stanie to uzasadnić, żebym to zrozumiała. Zamieniłam $sql = "INSERT INTO stars VALUES (NULL, NULL, 2, '$stars1', '$stars2')"; na $sql = "INSERT INTO stars VALUES (NULL, 2, 2, '$stars1', '$stars2')";. Drugie null wynikało z tego, ze jeszcze nie dokończyłam zadania i nie mam danych, aby włożyć coś do tej kolumny. Myślałam, że jeżeli wpisze null to po prostu tymczasowo ta kolumna pozostanie pusta, a pozostałe wyniki będą się zapisywać, a nie zapisywało się nic.

Dziękuję również za materiały. Zaraz będę się z nimi zapoznawać :). Dzięki wielkie za pomoc. Staram się uczyć sama, korzystam z różnych źródeł, ale wkład życzliwych osób na forum jest największą pomocą. :).

0

Być może masz nowszą wersję mysql która jest restrykcyjna pod względem niektórych rzeczy i nie nadałaś dopuszczalnego nulla na kolumnie przy tworzeniu tabeli. Wtedy sql zwraca błąd zapytania, bo nie może wstawić nulla w dane miejsce.

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