Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 13 odgovora
  • 15.800 pregleda

Najnovija ↓

Promena vrednosti indexa u tabeli 08.11.2016. u 18:05 · pre 121 mesec #1
Prvo moram naglasiti da sam apsolutni pocetnik kada je u pitanju msql.
Napravio sam jednostavan cms. Kada u cms-u npr. izbrisem 16 red iz tabele u kojoj mi je id primarni kljuc sa AUTO_INCREMENT kako da mi se automatski promene vrednosti id-a tako da u tabeli ne bude nepravilnosti u redosledu id-a. U konkretnom primeru ako izbrisem id 16 u tabeli ce mi redosled biti bez id-a 16 (...12,13,14,15,17,18.......). Ja hocu da mi id 17 uzme vrednos 16,a id 18 vrednost 17 tako da bude pravilan redosled bez "rupe".
Da li npr. u phpmyadminu moze da se podesi da se upodobljavanje vrsi automatski. Ako ne moze onda vas molim za link ka nekom tutorijalu koji bi mi pomogao da resim problem.
Hvala unappred.
Pozzz
Re: Promena vrednosti indexa u tabeli 08.11.2016. u 18:34 · pre 121 mesec #2
Nikako. Ako je autoincrement onda ne pipaš nista.

Ne opterćuj se sa ID i redosledom. sVe dok je ID jednistven toej dobro. a da li ima "rupa" ili ne, nebitno je.

Ako ti je bitno onda dodaj posebno polje koje će ti služiti za redne brojeve a koje neće biti PK.



Potpis
http://pedja.supurovic.net - http://wireless.uzice.net - Besplatni .RS domeni - Mikrotik uputstva - YT9TP - OpenStreetMap Srbija
Sviđa mi se1
Re: Promena vrednosti indexa u tabeli 08.11.2016. u 19:04 · pre 121 mesec #4
Hvala na odgovorima.

Code:


    $index = $_GET['index'];
    $table = $_GET['table'];

    include 'dbconfig.php' ;
    
    $sql = "DELETE FROM $table WHERE id = '".$index."'" ; 

    $count = mysqli_query($conn,"SELECT * FROM $table");
    $sum = mysqli_num_rows($count);
    for($i=$index;$i<=$sum;$i++) {
        $newId = $i - 1;
        $fin = mysqli_query($conn,"UPDATE $table SET id='$newId' WHERE id > '$index'");
    }


Ja sam probao ovako u PHP-u ali nesto ne funkcionise.Sigurno ima greska.
Re: Promena vrednosti indexa u tabeli 08.11.2016. u 19:34 · pre 121 mesec #5
nemoj to da radis, ako ti nije jasno zasto razmisli i ako posle 2 dana
ozbiljnog razmisljanja o tome zasto to ne treba da radis i dalje ne
razumes zasto, vrati se osnovama i kreni da ucis oko baza podataka od
pocetka
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Sviđa mi se1
Re: Promena vrednosti indexa u tabeli 09.11.2016. u 10:57 · pre 121 mesec #7
Postoje JAKO dobri razlozi zasto BAS TREBA da predvidis da ce mozda da budu rupe. Autoincrement treba da se inkrementira i da ti garantuje da ce da raste, to za koliko ce da raste (auto_increment_offset i auto_increment_increment) mogu da se postave na vrednosti vece od 1 da bi garantovale integritet podataka npr. u slozenim replikacionim semama, i ni ukom slucaju ne mozes (i ne smes) da pretpostavis da ce biti tacno 1. Ti MOZES da upucas rucno sta god zelis u to polje, ali onda mozes da razvalis sve i svasta. Koristi automatiku i pusti je da radi svoj posao. :)
Potpis
Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
Re: Promena vrednosti indexa u tabeli 09.11.2016. u 13:44 · pre 121 mesec #8
Hvala svima.

Smetaju mi rupe jer imam ispis iz baze u php-u baziran na BETWEEN npr(SELECT * FROM Products
WHERE id BETWEEN 10 AND 20) . ako se stavka obrise onda imam rupu u ispisu.Znam da sam trebao da idem sa Limit umesto between ali sada ne mogu da menjam.
Siguran sam da nista necu upropastiti ako "naslino" upotobljama indexe. Ovo mi treba za fax,nije nista ozbiljno.
Snacicu se nekako da ovo zavrsim....
Re: Promena vrednosti indexa u tabeli 09.11.2016. u 14:30 · pre 121 mesec
izmenjeno 1 put, poslednji put 1boki1 09.11.2016. u 14:42
  1. 1boki109.11.2016. u 14:42zapis iz teksta poruke
#10
Resio sam problem samostalno. Logika i koncept nije dobar,ali funkcionise.
Hvala na savetima.
pozzzzzzzz
Re: Promena vrednosti indexa u tabeli 09.11.2016. u 15:03 · pre 121 mesec #11
pa upucavas sebe u nogu i trazis pomoc, osim toga da ne treba da pucas
sebi u nogu tesko ces da dobijes bolji odgovor ... pucaj izmedju
kostiju, u meko tkivo, zaobidji tetive ... to su sve glupavi odgovori,
jedini pravi odgovor ti je nemoj to da radis .. a sad ako bas oces da se
upucas u nogu, slobodno al tesko da ce ti neko ovde pomoci ..


da ponovim jos jednom - NEMOJ DA MENJAS VREDNOST ZA ID, PK je stvar koja
NE TREBA NIKAD DA SE MENJA osim u izrazito retkim izuzetcima ... kada
umes da razlucis da li je nesto taj izuzetak neces postavljati pitanje
kako to da izvedes, imaces debelo visegodisnje iskustvo iza sebe. Dokle
god imas potrebu da pitas kako - NE TREBA TO DA RADIS!

mozes da postavis pitanje - kako da resim problem, navedes koji ti je
problem, i ljudi ce ti savetovati kako taj problem da resis (bez da
menjas vrednost PK polja) ...

ako nisi u stanju da prihvatis jedan tako jednostavan savet, veruj mi,
nije IT oblast u kojoj zelis da budes
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Promena vrednosti indexa u tabeli 09.11.2016. u 22:35 · pre 121 mesec #12
@1boki1 Bogdan ti je dao dobar savet.
U realnim sistemima se najcesce neka druga tabela oslanja na taj PK kroz FK. Tada neces moci da promenis vrednost PKa.

Ako radis to za fax i ne zelis da promenis, neces se dobro provesti na poslu kada ti to postane profesija.

Verujem da ce svako ovde da ti kaze da je u realnosti neverovatno veci pritisak da se stvari odrade sto brze i velike greske skupo kostaju.
Ovo ti je idealna prilika da vidis kako pravi razvoj ide kada usled neke bilo greske ili odluke deo sistema mora da se refaktorise.
Re: Promena vrednosti indexa u tabeli 09.11.2016. u 22:43 · pre 121 mesec #13
ako to radi za fax i profanu pokaze app koji updateuje pk vrednosti na
delete rekorda i profa ga ne istera sa polaganja ispita i taj profa
treba da preispita svoju poziciju
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Sviđa mi se1
Re: Promena vrednosti indexa u tabeli 11.11.2016. u 13:18 · pre 121 mesec #14
Zašto ne dodaš u tabelu polje "Sifra", a ID ostaviš kakav jeste i koristiš ga za povezivanje sa drugim tabelama, a kada obrišeš neki slog u bazi i hoćeš baš da ti sve ide redosledom napravi logiku koja će da pretaba polje "Sifra" po toj tvojoj logici..
A takođe možeš da napraviš logiku koja će da ti izbacuje prvu slobodnu rupu u Siframa i da nju koristi..
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme