Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przenumerowanie pola, Funkcja przenumerowywujaca
stach
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 15.02.2003
Skąd: Ziemia

Ostrzeżenie: (0%)
-----


Dzindybry, pisze wlasnie koszyk produktow w ktorym jedna z waznych rzeczy jest Liczba porzadkowa, innymi slowy pozycja. Moj problem jest w tym w jaki sposob przenumerowac pozycje wpisow gdy jeden z nich zostal skasowany (oczywiscie z poziomu sql, z poziomu php nie ma z tym wiekszego problemu). Innymi slowy funkcja przenumerowywujaca wszytskie wpisy kolumny w momencie skasowania jednego rekordu.

Jesli podalem zamalo informacji, napiszcie a opisze dokladniej strukture, jak i problem. Narazie nie bede sie rozpisywal bo wydaje mi sie ze jesli ktos mial z tym problem zalapie o co mi chodzi.

Ten post edytował stach 6.10.2004, 13:20:15


--------------------
Warsztat: IIS 6.0 | PHP 4.3.10 && 5.0.3 | MySQL 4.1.9 | Smarty 2.6.7 | PEAR | EditPlus 2
Produkcja: FlipTiM
Go to the top of the page
+Quote Post
kszychu
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


Jak rozumiem, jednym z pól tej tabeli jest jakieś id, które to właśnie chcesz przenumerować? A że tak spytam: po co Ci to pole? Pomiń je i nie będziesz musiał nic przenumerowywać.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
stach
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 15.02.2003
Skąd: Ziemia

Ostrzeżenie: (0%)
-----


Nie, id nie jest ruszane (zreszta jest autoincrement), przenumerowac chce tylko wpis pola pozycja, jako ze produkty maja byc przesuwane w koszyku gora dol (dlaczego tak ? Bo pracodawca tak chce smile.gif ). Jesli mam przesunac w gore badz w dol, problemu nie ma, ale skasowanie produkty zalozmy z pozycja 4 z 10, powoduje dziure 1,2,3,5,6,7,8,9,10. Wiec szukam sposobu na to by wzial wszystkie wpisy z tabeli z koszyka numer jakistam i przeliczyl jeszcze raz by uwzglednic skasowany wpis (1,2,3,4,5,6,7,8,9).

Jesli nadal niezobrazowalem tego dobrze, jak tylko wroce do domu opisze to jeszcze dokladniej.

Ten post edytował stach 7.10.2004, 17:21:29


--------------------
Warsztat: IIS 6.0 | PHP 4.3.10 && 5.0.3 | MySQL 4.1.9 | Smarty 2.6.7 | PEAR | EditPlus 2
Produkcja: FlipTiM
Go to the top of the page
+Quote Post
jol.us_
post
Post #4





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 10.12.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Po co wyswietlac id? Nie prosciej tak:
1. przed petla while wyswietlania rekordow tworzysz zmienna $poz=0;
2. w petli while robisz $poz=$poz+1;
i wyswietlasz przy kazdej pozycji


--------------------
run Forest run ...
Go to the top of the page
+Quote Post
stach
post
Post #5





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 15.02.2003
Skąd: Ziemia

Ostrzeżenie: (0%)
-----


Jak pisalem ja wiem jak to zrobic w php, mnie jest potrzebny sposob czysto mysql-owy...


--------------------
Warsztat: IIS 6.0 | PHP 4.3.10 && 5.0.3 | MySQL 4.1.9 | Smarty 2.6.7 | PEAR | EditPlus 2
Produkcja: FlipTiM
Go to the top of the page
+Quote Post
jol.us_
post
Post #6





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 10.12.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Sory, nie doczytalem.

Sproboj moze tak, pisane "na kolanie" ale powinno dzialac.

  1. <?php
  2.  
  3. $query= &#092;"DELETE FROM tabela WHERE id='$id'\";
  4. $wynik= mysql_query($query);
  5.  
  6. $query2 = &#092;"SELECT id FROM tabela WHERE id>'$id'\";
  7. $wynik2 = mysql_query($query2);
  8. while ($rekord=mysql_fetch_array($wynik2)) {
  9. $id=$rekord[0];
  10. $nowe_id=$id-1, 
  11. $query3= &#092;"UPDATE tabela SET id='$nowe_id' WHERE id='$id'\";
  12. $wynik3 = mysql_query($query3);
  13. }
  14.  
  15. ?>


--------------------
run Forest run ...
Go to the top of the page
+Quote Post
misterLu
post
Post #7





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 27.08.2004

Ostrzeżenie: (0%)
-----


sposób czysto SQLowy jest taki: niech ta kolumna będzie też typu auto_increment, a po każdym usunięciu rekordu usuwaj te kolumne i dodawaj ponownie, numery w odpowiedniej kolejności utworzą się automatycznie. (Tylko niech ta kolumna nie będzie żadnym kluczem obcym dla inenj tabeli).
Go to the top of the page
+Quote Post
stach
post
Post #8





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 15.02.2003
Skąd: Ziemia

Ostrzeżenie: (0%)
-----


Cytat(jol.us_ @ 2004-10-08 13:35:40)
Sory, nie doczytalem.

Sproboj moze tak, pisane "na kolanie" ale powinno dzialac.

smile.gif Dzieki za pomoc jol.us_, ale jak mowilem zero php smile.gif. misterLu zaraz sprawdze, ale wyglada na to ze dokladnie tego szukalem. Dzieki .


--------------------
Warsztat: IIS 6.0 | PHP 4.3.10 && 5.0.3 | MySQL 4.1.9 | Smarty 2.6.7 | PEAR | EditPlus 2
Produkcja: FlipTiM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 08:14