Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] Dodawanie nowego rekordu - drobny problem
Forum PHP.pl > Forum > Przedszkole
maly_pirat
Elo. Gdy dodaje nowy rekord, to ID rekordu to 4, zamiast 1. Wyczyściłem całą tabelę klany5 , i dodaje nowy rekord to samo. Tabela polega na zasadzie:

kto ma więcej punktów, ten wyzej w rankingu.
Powiedzmy

Uczeń X: 10 punktów (id 4)
dodaje nowego
Uczeń Y: 11 punktów (i daje mu id 4 a Uczeń X dostaje id 5)

Wszystko działa dobrze, tylko dlaczego wyskakuje ID od 4 zamiast od 1?
Błędy w wyświetlaniu, czy co?

Z dodawaniem (jako skrypt) jest ok, chyba coś jest nie tak z wyświetlaniem?
wookieb
Zmień w phpmyadmin wartość "auto_increment" w tabeli.
Wchodzisz w tabele -> Operacje
maly_pirat
Próbuje tak jak piszesz, ale nici z tego :x

1) Wchodzę i zaznaczam kolumne [ID] -> Operacje ->
2) W okienku: Opcje tabeli -> widzę pole: auto_increment -> wpisuje wartość 0 -> Wykonaj

Żadnych zmian, Wpisuje wartość 1 pisze:

Kod
Zapytanie SQL zostało wykonane pomyślnie
ALTER TABLE `klany5`  AUTO_INCREMENT =1


I patrze, a tu dalej:
auto_increment: 3 jest wpisane, zamiast 1
Hosting: webd. Spróbowałem dać nową tabelę (zamiast klany5 to klany5on5) przestawiłem wszystko w pliku .php
dodaje nowy rekord, ale dalej od 4 zaczyna się, he?
pmallek
A wczesniej nie miales jakis 'testowych' id ktore zajmowaly wartosci od 1 do 3? nie wiem na jakiej zasadzie dokladnie sa przydzielane te id ale napewno nie na zasadzie, ze w bazie jest cos o id 1,2,3,4 to kolejny bedzie 5, bo zalozmy, ze mielismy id 1,2,3 potem je skasujemy to i tak kolejny bedzie 4
maly_pirat
Cytat(pmallek @ 10.08.2008, 09:19:03 ) *
A wczesniej nie miales jakis 'testowych' id ktore zajmowaly wartosci od 1 do 3? nie wiem na jakiej zasadzie dokladnie sa przydzielane te id ale napewno nie na zasadzie, ze w bazie jest cos o id 1,2,3,4 to kolejny bedzie 5, bo zalozmy, ze mielismy id 1,2,3 potem je skasujemy to i tak kolejny bedzie 4


Tak zgadza się. Sorry że tak ważnej informacji nie napisałem, ale całego posta pisałem na szybko.
Miałem około 20 wartości (nie pamiętam dokładnie ile), później kazałem wszystkie je wywalić, i dodać nowe.
I tak powstał problem.
pmallek
Hmm a probowales recznie wbic np dane i dac im id 1,(np przez phpmyadmin'a) a potem juz poprzez skrypt dac kogos z wiekszym wynikiem? Pozatym nie mozna tego zrobic tak, ze w bazie jedynie przetrzymujesz wszystkie wyniki a potem gdy chcesz je wyswietlic to sobie je w zapytaniu sortujesz na podstawie tych punktow? Bo z tego co tlumaczysz to wynika, ze Ty to sobie w bazie ukladasz a id = miejsce, troche bezsensu bo jak np masz 100 miejsc i dodajesz nowy rekord ktory ma wyladawac na 1 miejscu to musisz kazdy rekord z osobna zwalic o 1 miejsce w dol? Chyba, ze jest jakis system/funckja dzieki ktoremu tow szystko da sie prosto zrobic i smiga... ale ja noga w bazach danych jestem wiec nie wiem... lepsze rozwiazanie to chyba sortowanie przynajmniej biorac pod uwage jak ja rozumiem dzialanie tego skryptu.
maly_pirat
Ehh, znalazłem rozwiązanie, wszystko było źle przez wyświetlanie, trzeba było dodać: $i = 0;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.