![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 0 Dołączył: 7.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam pewien problem z usuwaniem rekordów w MySql przez PHP. Robię to w ten sposób: Po wykonaniu tego zapytania, gdy ktoś pisze nowy post - to te posty lecą do tabeli nie na sam koniec, tylko w losowym miejscu w danej tabeli, np. rekord wlatuje do środka gdzie są wszystkie rekordy zamiast na koniec, ID jest najnowsze z autoincreement - tylko tak jak mówię jest ten problem że rekord wlatuje gdzie chce.. Proszę o pomoc! Pozdrawiam. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 79 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
A po czym to stwierdzasz? W phpmyadminie? No to posortuj tam wg. id i będziesz miał na końcu.
Poza tym raczej: (Dołożyłem {} wokół zmiennej, bo musi być skoro to tabelka) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 0 Dołączył: 7.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
A po czym to stwierdzasz? W phpmyadminie? No to posortuj tam wg. id i będziesz miał na końcu. Poza tym raczej: (Dołożyłem {} wokół zmiennej, bo musi być skoro to tabelka) @Stwierdzam to po tym, że nowe posty napisane w danym temacie nie są na końcu wątku tylko np. w środku się post wsadza teraz, więc pomyślałem żeby sprawdzić to w programie "Navicat" (program taki jak phpmyadmin) i się okazało że teraz rekordy wlatują w losowe miejsca i przez to mam taki problem.. Nie chcę używać ORDER by ID bo wszystko było normalnie dobrze, tylko usuwając przez PHP się dzieje taki problem nie wiem czemu.. A co do tego {} to już ktoś mi kiedyś pisał o tym i sprawdzałem i nie działało bo wybijało błąd serwera, a tak jak ja piszę zawsze '$dall[id]' zawsze mi działało bezproblemowo. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 79 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie no musisz jakoś sortować, możesz by id a możesz wg. daty dodania posta (nowe pole byś musiał dodać).
Cytat A co do tego {} to już ktoś mi kiedyś pisał o tym i sprawdzałem i nie działało bo wybijało błąd serwera, a tak jak ja piszę zawsze '$dall[id]' zawsze mi działało bezproblemowo. A jesteś pewien, że to działa (i.e. usuwa dany post)? Bo albo mam jakieś zaćmienie umysłu, albo to zwyczajnie nie może działać... Może się kto inny wypowie. Ten post edytował konrados 27.05.2012, 12:56:15 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 0 Dołączył: 7.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Nie no musisz jakoś sortować, możesz by id a możesz wg. daty dodania posta (nowe pole byś musiał dodać). A jesteś pewien, że to działa (i.e. usuwa dany post)? Bo albo mam jakieś zaćmienie umysłu, albo to zwyczajnie nie może działać... Może się kto inny wypowie. Tak, działa na 100% bo przecież znikają z forum te posty i nie ma ich w bazie danych, i odkąd piszę strony kilka lat to zawsze tak usuwam rekordy i zawsze działa. @Dodam że jeśli skopiuję tą tabelkę, usunę pierwotną i zmienię nazwę skopiowanej na normalną to rekordy lecą już normalnie na koniec (...) ale takie wyjście to nie wyjście, przecież nie będę kopiował za każdym usunięciem posta tabeli... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 79 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Tak, działa na 100% bo przecież znikają z forum te posty i nie ma ich w bazie danych A, faktycznie, {} byłyby potrzebne gdyby w zmiennej $dall[id] id było w apostrofach. A co do błędnego sortowania to myślę jednak, że powinieneś dołożyć po prostu ORDER BY id, no spróbuj i zobacz czy zadziała. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
O ile się nie mylę ani standard SQL, ani sam MySQL nie gwarantuje żadnego konkretnego porządku zwracanych wierszy w przypadku braku klauzuli ORDER BY.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 0 Dołączył: 7.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
A, faktycznie, {} byłyby potrzebne gdyby w zmiennej $dall[id] id było w apostrofach. A co do błędnego sortowania to myślę jednak, że powinieneś dołożyć po prostu ORDER BY id, no spróbuj i zobacz czy zadziała. Tak działa, sprawdzałem przed napisaniem tego wątku. Mi chodzi ogółem że w tabeli robi się 'burdel' po wykonaniu zapytania DELETE w PHP. Dziwne jest to że usuwając rekord ręcznie w np. Navicat, wszystko działa w porządku, ale gdy to samo zapytanie wykonam przez PHP to nowe rekordy wlatują gdzie chcą. Chodzi mi o sam fakt tego, wchodząc przez jakiś program czy phpmyadmin trzeba dodatkowo klikać sortowanie za każdym razem, dodawać w każdych zapytaniach ORDER'y itd. Zależało by mi na tym aby wszystko było tak jak teraz po kasowaniu rekordów, może coś trzeba dodać w zapytaniu DELETE czy coś? @EDIT, @UP: Sprawdzałem w MyBB i IP.BOARD i po kasowaniu postów i innych różnych czynnościach rekordy zapisują się nadal po kolei, i o takie wyjście mi chodzi. @EDIT2: A jednak nie, w tych forach rozrzucają się pomiędzy rekordami które się kasowało nowe rekordy więc tego nie zauważyłem, no trudno, więc dodam to sortowanie chodź nie chcę. Ten post edytował Weles 27.05.2012, 13:21:50 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.07.2025 - 19:51 |