Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] table autonumerowanie
Forum PHP.pl > Forum > Przedszkole
uroczy
witam mam mały problem z autonumerowaniem tabeli w której jest unikalna wartość indeksowana jesli usune jakis rekodr (wykasuje post) np numer 4 i nawet jesli jest ostatni to kolejny nie będzie miał numeru 4 tylko odrazu 5 czyli będę miał wartośći 1 2 3 5 co trzba ustawić aby wartośc indeksowana wstawiał tą 4 -ke
Kuziu
Pytanie tylko po co ?

auto numerowania używawsz do teog by każdy z rekordów miał unikalny numer... co jeśli np. dodasz news'a o ID = 4 wstawisz gdzieś do niego linka potem go skasujesz i dodasz innego i on znów będzie miał ID = 4 i stary link zamiast wskazać na nieistniejący rekord wskaże na błędny.
uroczy
to jak dokonać zlicznia wszystkich obecnych postów w bazie ? czy mozna utwozyć kolumne w ktorej będzie o 1 więkrzy od poprzedniego ? kolumna by sie nazywała ilość i kąza kolejan awroś była by o 1 więkrza.
Kuziu
  1. SELECT COUNT(id) AS ilosc
  2. FROM tabela


Zwróci Ci komórkę o nazwie ilosc z łączną ilością rekordów w tej tabeli.
uroczy
fajnie działa smile.gif a gyby tak utwozć całkiem nową kolumne id by były sobie na poczatku a nowa kolumna to niczym w pętli for i++ gdzie i=1 ? tylko zeby poprawiało zmiany danych w zaleznosci od usuniętego rekordu np usune rekord 8 ro wszystkie rorody od 9 do 49 zmienią swoje numerki smile.gif
zeby liczyło w bazie smile.gif
Kuziu
Ale po co to robić skoro jest do tego funkcja COUNT ?

Pomyśl co by było przy 10000 rekoród i kasujesz ten z numerem 1. Zmiana 9999 rekordów ... troche to nielogiczne. A taka zmiana trochę też trwa i w miedzy czasie ktoś kasuje jeszcze 5 i cała baza się wywala.
uroczy
nie nie chodzi o to che miec komórke która przedstawia faktyczny numer tylko do przedstawiania wynków smile.gif nie che ruszać idntyfikara według ktorego licze ale niczym w zapise ksiegówy musze miec kolejne liczby a nie che ich pobierac z id bo wychodzi ze skasowano jakieś rordy rolleyes.gif
Kuziu
Naprawde nie rozumie o co Ci chodzi i po co Ci to.

Jak chcesz pokazać tylko kolejne numerki to wpisz w php $i++ i echo($i); i masz kolejne numerki tylko pobierz sobie startowy.

Przecież przy większej bazie Twoje rozwiązanie bedzie bez sensu zamiana kilku tysięcy rekordów co 1 kasowanie jest .....
uroczy
no własnie nie wiem jak to wpechną w skrypt bazy smile.gif do pętli która wyciągania z dane i powtaza , jesli wstawie w while to zwsze będzie mial numer 1 ?

while ( $aRow =mysql_fetch_array( $aQResult ) ) {

--
w smumie masz racje d

dziki za pomoc winksmiley.jpg

a o to sposób

  1. <?php
  2. $aSQL = "select * from ksiega order by 'id' desc";
  3. $aostatnia = "SELECT COUNT(id) AS id
  4. FROM ksiega";
  5. //wykonaie select cokolwiek to znaczy
  6. $aQResult = mysql_query( $aSQL, $aDBLink );
  7. $aQResult2 = mysql_query( $aostatnia, $aDBLink );
  8. if ( $aQResult == True ) {
  9. // i wkocu pobieranie wierszy danych i wypisywani pól
  10. $s = mysql_fetch_array($aQResult2);
  11. $sa = $s["id"];
  12. while ( $aRow =mysql_fetch_array( $aQResult ) ) {
  13. $aId = $sa--;
  14. ?>
wyviągam z bazy liczbę id i zwracam go jako id za pomaovą tablicy jest wyciągana
  1. <?php
  2. $s = mysql_fetch_array($aQResult2);
  3. $sa = $s["id"];
  4. ?>
no i potem odejmuje jeden i zwracam dzięki taemu mam idealną numeracje do ksiegi gosci i nie widac ze ktos skasował wpsiy a w bazie jes pożądek smile.gif
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.