Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Skrypt gwarancji, Zrobiłem prosty skrypt gwarancyjny
parasite
post 13.01.2015, 19:46:43
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 15.03.2007

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


Cześć Panowie (i Panie),

mam kolejny problem w mojej pracy, a jednocześnie nauce PHP. Otóż zrobiłem prosty skrypt gwarancyjny dla siebie (admin) i wszystko działa ok ale nie do końca. Otóż o ile listing, dodawanie i zmiana statusu zgłoszenia działa poprawnie o tyle samo ID - przy dodawaniu już nie. Zamieszczam pliki (cała paczka rar) pod adresem:

Chodzi o to, że dodaje sobie jakąś "gwarancję" dla własnych potrzeb jak mi klient wysyła i wszystko jest ok, jednak po usunięciu jakiejś - próbując dodać nową - ID (z automatu) kolejnej gwarancji zatrzymuje się na jakimś numerze. Podejrzewam, że to kwestia ustawienia bazy mysql ale dłubię i dłubię i nie mogę dojść do konkretnych wniosków co robię nie tak. Bardzo proszę o pomoc, jest to skrypt dla mnie i pode mnie i firmę i strasznie ułatwił by mi pracę. Nie znam się zbytnio na tym, coś tam napisać potrafię (dodawanie, odejmowanie, liczenie itp w bazie) ale tutaj się wystopowałem. Specjalnie udostępniam wszystkie pliki, bo to raczej nie tajemnica i poziom dla początkujących ale nie umiem sobie poradzić z tymi ID poszczególnych wpisów.

W skrócie. Dodaję wpis z automatu ma ID 1
Dodaję kolejne i jest OK
Mam wpisów 10 i jeden (10 usuwam)
Mam teraz wpisów 9
Dodając następny - otrzymuje on z automatu numer 11.

Tak samo jeśli usunę wpis z przedziału 1-10, np. 5
Zamiast przy dodawaniu następnego wskoczyć mi 11, otrzymuję 6. Ogólnie strasznie się te ID mieszają... lub na stronie dodającej - dodają te same.

Bardzo proszę o pomoc lub ukierunkowanie na co powinienem zwrócić uwagę by rozwiązać swój problem. Screeny załączone.
link już usunięty

Skrypt działa tutaj:
link już usunięty

Serdecznie dziękuję za jakąkolwiek pomoc.
Pozdrawiam.

Ten post edytował parasite 14.01.2015, 11:12:55
Go to the top of the page
+Quote Post
Rysh
post 13.01.2015, 19:50:16
Post #2





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Nie usuwaj rekordu z bazy tylko go ukrywaj. Dodaj pole, zrobione i ustawiaj true, przy listingu pobieraj tylko ID gdzie masz false. Kiedyś historia gwarancji Ci się może przydać.


--------------------
Go to the top of the page
+Quote Post
parasite
post 13.01.2015, 20:05:49
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 15.03.2007

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


Tak, masz rację - nie pomyślałem o tym wcześniej.
Co prawda nurtuje mnie bardziej co robię nie tak ... ale Ty właściwie rozwiązałeś mój problem - NIE usuwać tylko dodawać i zmieniać status na active, inactive. To rozwiązuje całość i tak zrobię. Ale gdyby ktoś miał ochotę jeszcze przeglądąć te skrawki nieumiejętnego kodu, to bardzo proszę. Ślę piwko DHLem za rozwiązanie smile.gif

Ten post edytował parasite 13.01.2015, 20:09:00
Go to the top of the page
+Quote Post
Rysh
post 13.01.2015, 20:09:19
Post #4





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Cytat(parasite @ 13.01.2015, 20:05:49 ) *
Tak, masz rację - nie pomyślałem o tym wcześniej.
Co prawda nurtuje mnie bardziej co robię nie tak ... ale Ty właściwie rozwiązałeś mój problem - NIE usuwać tylko dodawać i zmieniać status na active, inactive. To rozwiązuje całość i tak zrobię. Ale gdyby ktoś miał ochotę jeszcze przeglądąć te skrawki nieumiejętnego kodu, to bardzo proszę. Ślę piwko za rozwiązanie.

Napisałem 3 razy posta z kilkoma błędami, niestety backspace i wykasowałem całe wypociny smile.gif


--------------------
Go to the top of the page
+Quote Post
trueblue
post 13.01.2015, 20:12:17
Post #5





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Niepotrzebnie przy INSERT wstawiasz 'warranty_id' pochodzące z jakiegoś $_POSTa, nie wstawiaj wartości dla tej kolumny.

Ten post edytował trueblue 13.01.2015, 20:12:53


--------------------
Go to the top of the page
+Quote Post
Rysh
post 13.01.2015, 20:12:49
Post #6





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Twój problem jest taki, że w bazie danych masz auto_increment podczas dodawania wpisu, dodaje się ID kolejne, a nie ilość wpisów+1. Tak ma być i się z tym nie dyskutuje wink.gif


--------------------
Go to the top of the page
+Quote Post
parasite
post 13.01.2015, 20:32:28
Post #7





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 15.03.2007

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


Podaj adres na PW, leci piwko smile.gif i jeden i drugi Pan.

Ten post edytował parasite 13.01.2015, 20:34:53
Go to the top of the page
+Quote Post
Rysh
post 14.01.2015, 11:09:38
Post #8





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Jeśli chodzi o piwo, to wystarczy że naciśniesz przycisk pomógł pod naszymi postami.

Kilka spostrzeżeń:
1. używaj albo polskich albo angielskich nazw zmiennych i plików
2. ustawienia trzymaj w jednym pliku
3. po co łączysz się do drugiej bazy danych?
4. zrób porządek w plikach, bo masz straszny chaos
5. nie wiem w czym piszesz, ale tyle tabulatorów nie jest potrzebnych wink.gif
6. tak się kodu nie pisze:
  1. $query = "SELECT * FROM _warranty";
  2. $result = mysql_query($query);
  3. $num = mysql_numrows($result);
  4. $i=0;
  5. while ($i < $num) {
  6. $warranty_id = mysql_result($result,$i,"warranty_id");
  7. $warranty_numer = mysql_result($result,$i,"warranty_numer");
  8. $warranty_active= mysql_result($result,$i,"warranty_active");
  9. $warranty_link = mysql_result($result,$i,"warranty_link");
  10. $warranty_klient= mysql_result($result,$i,"warranty_klient");
  11. $warranty_nazwa = mysql_result($result,$i,"warranty_nazwa");
  12. $warranty_adres = mysql_result($result,$i,"warranty_adres");
  13. $warranty_telefon=mysql_result($result,$i,"warranty_telefon");
  14. $warranty_email = mysql_result($result,$i,"warranty_email");
  15. $warranty_data = mysql_result($result,$i,"warranty_data");
  16.  
  17. if ($warranty_active == 1) $status = "<font color=\"green\">atywny </font><a href=\"warranty_deactivate.php?id=$warranty_id\">(deaktywuj)</a>";
  18. // elseif ($warranty_active == 0) $status = "<font color=\"red\">nieaktywny </font><a href=\"warranty_activate.php?id=$warranty_id\">(aktywuj)</a>";
  19. $i++;
  20. }
  21. $oczko_wyzej = $warranty_id + 1;

możesz to zamienić na:
  1. $query = mysql_query('SELECT * FROM _warranty');
  2. $result = mysql_fetch_assoc($query);
  3. foreach($result as $row) {
  4. // wszystko masz w $row jako tablica
  5. }

7. nie mutuj błędów przez stawianie @ na początku funkcji

Ten post edytował Rysh 14.01.2015, 13:08:42


--------------------
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:43