Problem z ratingiem

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

ShookTea
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 6 lat
  • Lokalizacja:Wrocław
  • Postów:629
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.

ME
  • Rejestracja:prawie 8 lat
  • Ostatnio:5 miesięcy
  • Postów:110
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

Kopiuj
$stars1 = $_POST['stars1'];

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

Kopiuj
$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.

edytowany 3x, ostatnio: mefsh
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ą. :).

ME
  • Rejestracja:prawie 8 lat
  • Ostatnio:5 miesięcy
  • Postów:110
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.

edytowany 1x, ostatnio: mefsh

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.