Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie nowych danych do tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
Gerbil
Witam,

Mam problem z którym nie mogę sobie poradzić.
W czym rzecz:
Przykładowo.
Mam tabelę magazyn o polach ID_P, NAZWA, INDEKS, WAGA, ILOSC.
W tabeli mam 9 rekordów.

Teraz poprzez formularz chciałbym dodać nowy produkt do magazynu.
Chcę aby ten nowy produkt znalazł się na pozycji nr 3 (ID_P),
czyli pomiędzy rekordem 2 a 4,
bez usuwania aktualnego rekordu nr 3,
istniejący rekord nr 3 powinien zostać przeniesiony do rekordu nr 4,
tak samo kolejne, czyli 4 -> 5, 5 -> 6, itd.
Zaznaczam że pole ID_P nie jest typu auto_increment!

Podsumowując, chodzi o dodawanie nowego produktu w wybranym rekordzie w bazie
bez nadpisywania, czy usuwania istniejącego rekordu.

Proszę o propozycje rozwiązania tego problemu.
Nie jestem ekspertem w php ale będę wdzięczny za wszelką pomoc.
Cienki1980
A masz jakieś pole ID które jest auto_increment questionmark.gif
Gerbil
Nie, nie mam żadnego pola które by było auto_increment.

Pole ID_P jest typu INT(3) sad.gif
Cienki1980
A czy w istniejących rekordach są jakieś przerwy questionmark.gif czyli rekord o ID_P=4 i ID_P=6 ... a nie ma rekordu o ID_P=5 questionmark.gif
Czy zawsze jest ciągłość questionmark.gif
Gerbil
Cytat
A czy w istniejących rekordach są jakieś przerwy questionmark.gif czyli rekord o ID_P=4 i ID_P=6 ... a nie ma rekordu o ID_P=5 questionmark.gif
Czy zawsze jest ciągłość questionmark.gif


Jest zachowana ciągłość, nie ma żadnych przerw. sadsmiley02.gif
Cienki1980
No to jeszcze nie tak źle biggrin.gif

Skoro nie masz żadnego pola jednoznacznie wskazującego na wiersz ( takiego jak auto_increment ) musisz aktualizować wiersze na podstawie ich całej zawartości.
Ja bym zrobił to jakoś tak:

  1. <?php
  2. $pyt=mysql_query("SELECT * FROM magazyn WHERE ID_P>='".$wartosc_wstaiwanego_id_p."' ORDER BY ID_P DESC");
  3. $ile=mysql_num_rows($pyt);
  4. for($i=0;$i<$ile;$i++)
  5. {
  6.  $wiersz=mysql_fetch_array($pyt);
  7.  $new_idp=$wiersz['ID_P']+1;
  8.  mysql_query("UPDATE magazyn SET ID_P='".$new_idp."' WHERE nazwa='".$wiersz['nazwa']."' AND  waga='".$wiersz['waga']."' AND indeks='".$wiersz['indeks']."' AND ilosc='".$wiersz['ilosc']."'");
  9.  $new_idp=0;
  10. }
  11. mysql_query("insert into magazyn (id_p,nazwa,waga,indeks,ilosc) values ('".$wartosc_wstawianego_id_p."','".$new_nazwa."','".$new_waga."','".$new_indeks."','".$new_ilosc."')");
  12. ?>


Pisane w ciemno bez sprawdzenia .. ale mniej wiecej powinnnieneś załapać koncepcje.
Gerbil
Jest, załapałem laugh.gif HURA!!!

Wielkie dzięki Cienki1980 jesteś Rkingsmiley.png hyhy

Małe poprawki w kodzie i wszystko działa guitar.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.