Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Skąd się bierze dodatkowy rekord?
kopek
post
Post #1





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 24.02.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam, oto mój problem. Po zaznaczeniu rekordu i wciśnięciu EDYTUJ zadany rekord wyświetla się i jest gotowy do edycji. Po wprowadzeniu zmian i kliknięciu ZAPISZ, zmiany zostają zachowane w zadanym rekordzie jednak tworzy się kolejny z tymi samymi danymi. Jak temu zapobiec? Kod w linku ponieważ ograniczenia długości/wielkości postów nie pozwoliły wkleić go tutaj.

[PHP][MySQL]Skąd się bierze dodatkowy rekord?
Go to the top of the page
+Quote Post
luki100011
post
Post #2





Grupa: Zarejestrowani
Postów: 243
Pomógł: 20
Dołączył: 20.04.2004
Skąd: Wielkopolska

Ostrzeżenie: (0%)
-----


nie wykonujesz podczas edycji zarówno UPDATE jak i INSERT na bazie danych ?



--------------------
Go to the top of the page
+Quote Post
aras785
post
Post #3





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Trochę bardziej czytelne: http://wklej.org/hash/c0555ed23a5/
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


w 172 linii dodaj warunek :
  1. && !isset($_POST['edytuj'])
Go to the top of the page
+Quote Post
kopek
post
Post #5





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 24.02.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Wkleiłem w 171 aby w ogóle nie wchodzić do sekcji dodawania nowego wpisu. Sądzę, że rozwiązało problem ale przetestuję jeszcze.

Okazało się, że podczas kiedy użytkownik wciska EDIT dodaje mu automatycznie nowy pusty rekord (wyświetlając też ten do edycji) ale dzieje się to tylko w Operze. Jak temu zaradzić?
Go to the top of the page
+Quote Post
Michasko
post
Post #6





Grupa: Zarejestrowani
Postów: 283
Pomógł: 31
Dołączył: 10.01.2006
Skąd: Działoszyn

Ostrzeżenie: (0%)
-----


Nie bardzo potrafie się w tym kodzie odnaleźć, być może dlatego, że już późno. Niemniej jednak spróbuj zamiast kolejnych if-ów dawać elseif, na zasadzie:
  1. if(isset($POST['edytuj'])) {
  2. //cośtam
  3. }
  4. elseif(isset($_POST['edit'])) {
  5. //cośtam cośtam
  6. }
  7. else {
  8. //cośtam cośtam cośtam
  9. }


Tym sposobem wykona się tylko jeden warunek, w przeciwnym razie wykonasz jeden i przejdziesz do następnego - i wykonasz go, jeśli będzie prawdziwy, a chyba nie to było Twoim zamierzeniem (jeśli się mylę, to sorki).

Ten post edytował Michasko 18.01.2013, 01:18:55


--------------------
Po prawie 3-letniej przerwie w programowaniu, znowu raczkuję :)
Go to the top of the page
+Quote Post
mortus
post
Post #7





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Nie obraź się kolego, ale ten Twój kod to zabójstwo dla serwera baz danych. Co chwila otwierasz nowe połączenia i ustawiasz kodowanie:
  1. connection();
  2. $ins = mysql_query("SET NAMES 'utf8'");
  3. $ins = mysql_query("SET CHARACTER SET 'utf8_general_ci'");

podczas gdy powinieneś to zrobić tylko raz, na samym początku skryptu. Poza tym w kilku miejscach dwukrotnie wykonujesz takie same zapytania niemal jedno pod drugim, jak np.:
  1. $sql = "SELECT * FROM delegacja WHERE id='$opcja'";
  2. $sql = "SELECT DISTINCT nazwa FROM miasta";


Gubisz niektóre tagi HTML, co powoduje, że nie można kodu prawidłowo sformatować w edytorze z podświetlaniem składni.

Kod zdecydowanie wymaga reorganizacji, głównie ze względu na to, że otwartych połączeń z serwerem baz danych masz w optymalnym ustawieniu chyba 5, a niepotrzebnych zapytań chyba jeszcze więcej (choć tego nie liczę).

Ten post edytował mortus 18.01.2013, 09:02:39
Go to the top of the page
+Quote Post
kopek
post
Post #8





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 24.02.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Dzięki za konstruktywną krytykę, usunąłem już zbędne linie z połączeniem i kodowaniem ale jeżeli chodzi o takie same zapytania... to nie bardzo rozumiem. Te dwa, które podałeś jako przykład pobierają dane z dwóch różnych tabel. Co do tagów HTML to raczej wszystkie są i mój edytor podświetla mi bez zarzutu. Może kwestia nie przeklejenia tam całego kodu spowodowała problem z tagami. Jeżeli mógłbyś jeszcze coś doradzić to chętnie się zastosuję, jeżeli miało by to skrócić mój kod lub zoptymalizować go w jakimś sensie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 10:27