Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] [SQL] Zerowanie pola autoincrement
Forum PHP.pl > Forum > Przedszkole
magier123
Witam!
Hmmm taki mam problem... chcialbym wyzerowac pole autoincrement (zeby zaczelo sie znow numerowac od poczatku) jesli jego wartosc bedzie rowna badz wieksza np od 15. Ktos ma moze jakis pomysl bo juz szukalem rozwiazan do tego i nic na ten temat nie znalazlem. questionmark.gif
webdice
Do ustawiania wartości pola auto_increment służy zapytanie:

  1. ALTER TABLE `table` AUTO_INCREMENT = X


gdzie X to wartość na jaką chcemy ustawić to pole. Resztę myślę ze dopiszesz sobie sam.
b_chmura
chyba słabo szukałeś...
  1. AUTO_INCREMENT = 0;
magier123
hmmm....

  1. <?php
  2. $query22 = "SELECT * FROM kategorie ORDER BY kolejnosc ";
  3. $result22 = mysql_query($query22);
  4. while($row22 = mysql_fetch_array($result22)) {
  5. if ($row22[id]>15){
  6. echo $row22[id];
  7. $zapytanie22 = "ALTER TABLE kategorie AUTO_INCREMENT = 0 ";
  8. $wykonaj22 = mysql_query ($zapytanie22);
  9. }
  10. ?>

wedlug mnie ten kawalek kodu sprawdza czy w tabeli jest wartosc soutoincrement wieksza od 15 a jesli tak to zeby wyzerowalo.... czy tak? .... a jednak nie dziala
webdice
Wartość pola AUTO_INCREMENT nie może być mniejsza niż największa wartość pola incrementowanego. Powiedz lepiej co chcesz osiągnąć.
b_chmura
  1. <?php
  2. $q = mysql_query("SELECT * FROM kategorie ORDER BY `id` DESC LIMIT 0 , 1");
  3.  
  4. while($dana = mysql_fetch_array($q))
  5. {
  6. if($dana['id'] >=)
  7. {
  8. mysql_query("ALTER TABLE kategorie AUTO_INCREMENT = 0");
  9. }
  10. else
  11. {
  12. echo $dana['id'];
  13. }
  14. }
  15. ?>
magier123
Chcialbym osiagnac to aby pole aoutoincrement mialo np maksymalna wartosc 15 i gdy np usune jakis rekord ... dajmy na to 11 to jesli znow dodam rekord to zeby mial wlasnie ten numer 11..
webdice
Jeśli masz przykładowo 15 rekordów w bazie i usuniesz 11, a na dodatek zostaną rekordy 12, 13, 14 oraz 15 to nie dasz rady ustawić wartości auto_increment na 11.

Nie wiem po co Ci zapełniać wszystkie ID w bazie, jest to bez sensu, ale jeśli już chcesz coś takiego osiągnąć musisz gdzieś zapisywać usunięte rekordy, a przy dodawaniu uzupełniać pole ID o te wcześniej zapisane wartości.
b_chmura
w takim razie musisz sam policzyć ile jest rekordów w bazie (mysql_num_rows" title="Zobacz w manualu PHP" target="_manual)
jeśli liczba pól równa sie 15 to nic nie robisz:D
ale jeśli mniej jak 15 to w pętli sprawdzasz w którym momencie poprzednia wartość mniejsza o więcej jak jeden i zapisujesz sobie jakoś ten numerek do zmiennej którą potem wykorzystasz do Twojego numeru ID.

swoją drogą nie wiem czy można podać własną wartość jeśli pole jest auto_increment
webdice
Cytat(b_chmura @ 9.12.2007, 21:35:50 ) *
swoją drogą nie wiem czy można podać własną wartość jeśli pole jest auto_increment


Można 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.