Matys 20 Marca 2015 20 Marca 2015 Witam, potrzebuję pomocy z bazą danych. Napisałem skrypt do odbioru zgłoszeń. Ktoś wysyła zgłoszenie w formularzu kontaktowym i mi się pojawia w panelu zgłoszeń po zalogowaniu. Mam jednak problem z dwoma rzeczami. 1. Jak zrobić, abym mógł obok zgłoszenia wybrać Przeczytane/Nieprzeczytane. (wybór z listy, wybieram i akceptuje). 2. Jak usunąć rekord z bazy? Kiedy dodaje komendę usunięcia odświeża mi stronę i muszę ponownie się zalogować. Tak jakby nie zapamiętuje logowania. Logowanie mam najprostsze w pliku, bez żadnego kodowania MD5. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość 20 Marca 2015 20 Marca 2015 2. Nie znam sie zbytnio na mysql ale jak byk wydaje mi sie ze to dlatego bo Ci restartuje sesje co powoduje wylogowaniem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matys 20 Marca 2015 Autor 20 Marca 2015 Najprawdopodobniej tak, ale jak temu zaradzić Usuwać usuwa, ale wylogowuje mnie tak jakby Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cuan 20 Marca 2015 20 Marca 2015 1. Stwórz sobie kolumnę "read" dla niej typ BOOLEAN i domyślnie daj 0, a przy pobieraniu rekordu zmieniaj wartość kolumny "read" na 1 (wartości logiczne: prawda: +,1,true; fałsz: -,0,false), czyli 1 będzie oznaczać przeczytane, a 0 nieprzeczytane. 2. Może to być problem z sesją... upewnij się czy na początku skryptu używasz session_start(), a następnie cz nie używasz gdzieś session_destroy(). Sprawdź też czy dobrze napisałeś sprawdzanie czy użytkownik jest zalogowany. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matys 21 Marca 2015 Autor 21 Marca 2015 Zrobiłem przez mysqli wszystko pod baze. Teraz tylko mam problem z usuwaniem. Tzn. wyskakuje mi błąd. Fatal error: Call to a member function close() on a non-object in /home/marus/domains/zpuhmarus.pl/public_html/formularz/formularz.php on line 51 A to końcówka kodu: $id = $_GET['usun']; $wynik2 = @$polaczenie -> query("DELETE FROM baza WHERE id = '$id'"); if ($wynik2 === false){ echo ' ERROR'; $polaczenie -> close(); } else { echo "Usunięto poprawnie"; } $wynik -> close(); $wynik2 -> close(); $polaczenie -> close(); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SeNioR 21 Marca 2015 21 Marca 2015 $wynik, $wynik2, $polaczenie nie jest obiektem.. na podstawie tego krótkiego kodu nie jestem w stanie stwierdzić co jest nie tak.. musiałbyś do funkcji zmienną globalną np. global $wynik, $wynik2, $poloczenie; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matys 21 Marca 2015 Autor 21 Marca 2015 Po dodaniu błędu nie ma, ale nic się nie wyświetla Zaczął on się wyświetlać jak dodałem właśnie nowe "query" (dawne query, nie wiem jak to nowe się dodaje, może dlatego). Czyli ten moment musi być nie tak. Może coś jest źle, albo je się z czymś $wynik2 = @$polaczenie -> query("DELETE FROM baza WHERE id = '$id'"); if ($wynik2 === false){ echo ' ERROR'; $polaczenie -> close(); } else { echo "Kliknij po usunięciu rekordu, aby zniknął on z ekranu"; } $wynik -> close(); $wynik2 -> close(); [/code] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cuan 22 Marca 2015 22 Marca 2015 Jak na początku skryptu dajesz: $baza = new mysqli(...); to na końcu skryptu dajesz: $baza->close(); Tyle. Nie zamyka się wykonanych zapytań itp. jeżeli chcesz usunąć np. "$wynik1", aby zmniejszyć zużycie RAM-u, to: unset($wynik1); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matys 22 Marca 2015 Autor 22 Marca 2015 Działa, dzięki. Wywaliłem to: $wynik -> close(); $wynik2 -> close(); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kontynuuj dyskusję
Dołącz do Pecetowicza, aby kontynuować dyskusję w tym wątku.