Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Jaka skuteczna modyfikacja UPDATE aby zamienić miejscami rekordy.
Forum PHP.pl > Forum > Przedszkole
darney
Mam następującą baze

nazwy kolumn to [id] [a_name] [category] [subject] [link_yt]

1 1297857747 1 1 Omówienie pulpitu. http://www.youtube.com/watch
2 1297859247 1 1 Pasek zadań http://www.youtube.com/watch
3 1297860185 1 1 Dostosowywanie paska zadań http://www.youtube.com/watch
4 1297860677 1 1 Zamykanie systemu windows http://www.youtube.com/watch

Napisałem skrypt który modyfikuje id tyle że jak za mienie ID 1 na 99 żeby później zamienić ID 4 na 1 a następnie 99 na 4 to później autoincrementacja zaczyna się od 100 a ja chciał bym od 5. Wydaje mi się że trzeba zastosować inne rozwiązanie.

Jeżeli chciał bym zamienić pozycje 4 z 1 to jak najlepiej napisać modyfikacje. Czy stworzyć drugie id ? Jeśli tak to jak napisać dodawanie tego drugiego id. Słyszałem że robi się to za pomocą pętli for tyle że nie mam zielonego pojęcia jak zastosować takie rozwiązanie i w jaki sposób później zamieniać skryptem pozycje ze sobą.
grzeee
Zamien id na 0 lub skorzystaj z zapytania do bazy
ALTER TABLE table_name AUTO_INCREMENT = xx

darney
co dokładnie robi ostatnie zapytanie ? zamienia id zachowując auto inkrementacje ?

Niestety zamiana na zero nie działa. Wpis bez zmian.
nospor
Zacznijmy od tego ze pole ID (autoincrement) nie sluzy do określania kolejnosc rekordów. ID to ID - identyfikuje jednoznacznie rekord.
Jak chcesz sobie określać kolejnosc rekordów to dodaj nowe pole i na tym polu rób jakiekolwiek zmiany
darney
No to wtedy tak jak myślałem musi być 2 ID pole bez auto inkrementacji. Zatem w jaki sposób napisać skrypt który dodaje po kolei numery bez auto inkrementacji ?
nospor
Dodajac nowy rekord po poprostu sprawdzasz jakie jest aktualne max i dajesz o jeden większe.
Do wyliczenia max sluzy MAX w mysql
darney
Próbuje napisać wyświetlanie maksymalną ilość ID aby sprawdzić czy to działa niestety bez rezultatu. Bez błędu, nić nie wyświetla.

  1. $query = "SELECT max(id) FROM nazwa_tabeli";
  2.  
  3. $result = mysqli_query($dbc, $query);
  4. while ($row = mysqli_fetch_array($result)) {
  5. $id = $row['id'];
  6. $title_movie = $row['title_movie'];
  7. $link_yt = $row['link_yt'];
  8.  
  9. echo $id;
  10.  
  11. }
nospor
while ($row = mysqli_fetch_array($result)) {
print_r($row);
}

Juz lepiej?
A na przyszlosc wlac wyswietlanie wszytkich bledow. Tu masz napisane jak:
Temat: Jak poprawnie zada pytanie
darney
Zdecydowanie smile.gif tyle że wyświetla mi to w formie Array ( [0] => 11 [max(id)] => 11 ) Jak wydobyć samo 11 ? smile.gif
nospor
Pomysl..... ja ci pokazalem co siedzi w tablicy. Ty teraz to musisz wydobyc z tej tablicy. Przeciez juz w kodzie wczesniej wydobywales z tablicy, z tymże ze zlego indeksu :/
darney
ok echo $row(0) ; ) Dzięki wielkie za pomoc : )
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.