![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 31.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Na razie krótko bo do pracy się spieszę:
to dziala, ale jeżeli ktoś nie poda numeru listu (bo taka jest możliwość!) to dla danej wysyłki numerem listu przewozowego będzie 0 a to oanacza, że pole z numerem 0 zawsze bedzie aktualizowało sobie datę i typ. Czy da się zapytaniem mysqlowym zrobić, żeby w przypadku braku listu nie przypisywał on nic, a jeżeli nr będzie to robił co powyżej? Jak pisałem lecę do pacy, później postaram się trochę rozszerzhyć mój problem jak to dokładnie wygląda... -- edit -- Jak obiecałem troche wiecej kodu:
$_GET['ch'] - to zmienna przesyłająca ID listu podczas wprowadzania danych. Teraz sprawa ma sie tak. Chciałbym, ażeby: - w pierwszym zapytaniu jeżeli nie ma listu to żeby dodał się z wartością 0 (tak się robi), ale jeżeli jak później doda ktoś numer listu z identyczną datą i identycznym adresatem (adresatów jest tylko dwóch), to żeby wtedy numer się zaktualizował do wybranego - reszta kodu w sumie nie jest konieczna , żeby mi pomóc, ale może ktoś wyłapie jakieś moje błędy składniowe ![]() kombinowałem z jakimiś CASE WHEN ... THEN ... END, ale coś chyba składnia mi nie wychodzi, albo nie wiem w którym miejscu to walnąć, a z IF'ami też mi nie idzie. Jakaś mała podpowiedź? Struktury koniecznych tabel raczej wynikają z zapytań (w każdej tabeli jest jeszcze extra pole ID, które ma ustawiony auto_incediment, który wiadomo sam się zwiększa o jeden jeżeli nie podaje się wartości) BTW jest jakaś komenda multi_query w MySQL? Jak kombinowałem z mysqli_multi_query wywalało mi polecenia, że nieznana komenda (w MySQL 4 jak i 5.0.6)... Pozdrawiam, -- edit -- ok może powiem o co by mi chodziło i ktoś bedzie w stanie pomóc mi. jest tabelka listy | id_l | adresat | numer | data I teraz z formularza przychodzą dane jak wyżej jest adresat, jest numer, jest data, ale czasem numer może być pusty! Zadaniem zapytania mysql miałoby być dodanie rekordu z adresatem, datą i ewentualnym numerem (jeżeli nie ma niech zostawi puste), i teraz założenia: - jeżeli nie ma jeszcze listu z danego dnia i/lub do konkretnego adresata - dodaje wpis INSERT INTO VALUES ('adresat','nr_listu','data'); - jeżeli jest wpis z danego dnia i/lub konkretnego adresata ale NIE ma nr_listu - UPDATE SET numer > nr_listu - jeżeli jest wpis i jest uzupełniony o wszystko niech nie robi nic Jakieś sugestie? Bo nie ma problemu o wykonanie tego zapytaniami przez PHP, ale po co jak mysql sam może to zrobić ![]() Ten post edytował exseerius 27.10.2008, 12:24:56 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 4 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Podejrzewam, że samym MYSQL tego nie zrobisz. Będziesz musiał sprawdzać, czy $_GET['ch'] jest równe coś tam. A po za tym, jeżeli GET bierzesz z adresu, to musisz je filtrować, bo ktoś ci może wpisać DROP TABLE i po całej bazie.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 10:23 |