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 :).
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.
- Rejestracja:prawie 8 lat
- Ostatnio:4 miesiące
- Postów:110
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.
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ą. :).
- Rejestracja:prawie 8 lat
- Ostatnio:4 miesiące
- Postów:110
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.