[php]+[mysql] auto_i, "'", i BLOBek

0
  1. mam tabele z polem id (auto_increment) i czasami jest tak,ze jak usune rekord ze srodka i dodam nowy (INSERT INTO tabela SET pole2='dd', pole3='dd') to nowy rekord zajmuje miejsce w srodku czyli wartosc juz nowego ale przed chwula usunietego pola id

  2. nie chce mi puszczac w formularzu znaku ' czy to kwestia typy danych pola tablicy bazy czy musze siegac po jakies funkcje filtrujace. jesli tak to jakie

  3. prosze mnie oswiecic jakie wady ma typ pola w sql BLOB, bo tak mi sie wydaje, ale pewnie tylko wydaje, ze w zasadzie wszystko tam powinno isc oprocz jakis malych 1-50 znakowych wpisow

dzieki :-)

0

ad.2
addslashes()

0

ad. 1
Hmm... wydaje mi się, że tak nie jest. dodany rekord otrzymuje zawsze id o jeden większe od ostatniego dodanego. Wartośc ta jest rejestrowana w tabeli, właśnie po to, aby się nie powtórzyła.

ad. 3.
Pole BLOB jest polem dla danych binarnych, jakieś texty czy coś spokojnie możesz przechowywać w polach typu TEXT czy CHAR.

0

ad. 1
Hmm... wydaje mi się, że tak nie jest. dodany rekord otrzymuje zawsze id o jeden większe od ostatniego dodanego. Wartośc ta jest rejestrowana w tabeli, właśnie po to, aby się nie powtórzyła.

tak sie jednak dzieje, ponoc rozwiazaniem jest zaopatrzenie omawianego pola atrubutem unique

0

czy id ma znacznik primary key ?

0

nie ma - a to TO?

0

no jeżeli dobrze myślę to powinien być akurat primary key :) w końcu to ma być wartość unikalna w skali całej tabeli (żaden inny rekord nie powinien mieć takiego samego ID) :)

0

ale jest taki moment (kiedy usuniesz cos ze srodka) ze wartosc id ktora byla wlasnoscia przezd chwila usunietego rekordu z takim ID staje sie wolna i NASTEPNY staje sie w rzeczywistosci pierwszym wolnym od poczatku a nie pierwszym za ostatnim

0

Jeżeli użyjesz primary key wtedy wartość pola auto_increment nie zostanie powtórzona :)

0

a jednak rekordy przybieraja id jakie im sie zywcem podoba - jak maja cos wolnego w srodku to wskakuja do srodka?

jednym sposobem jaki przychodzi mi do glowy to dodatkowa kolumna ze statusem dla kazdej tabeli gdzie usuwanie byloby tylko ''gaszeniem' i puste pola w srodku bylyby caly czas zajmowane przez spiacych rezydentow - ale to przeciez chore i smieszne

0
  1. definicja klucza z numerem
    id int(8) primary key auto_increment

i wszystko cacy działa
btw: http://dev.mysql.com/doc/mysql/en/example-AUTO_INCREMENT.html

  1. nie używaj blob, to jest do danych binarnych. używaj text.
0

w takim razie ja zadalem zle pytanie,

auto_increment przypisuje mi do 'id' (primary key) rzeczywiscie kolejne cyfry, ALE!

kolejnosc rekordow jest taka ze idzie 1,2,3,4,5,6,10,7,8,9
zaczyna sie to jak wspomnialem po usunieciu czegos ze srodka i wstawieniu kolejnego

nie chodzi mi to o ladne selektowanie typu:

SELECT * FROM tabela ORDER BY 'id'

tylko o to w jakiej kolejnosci funkcja np. mysql_fetch_array zczytuje rekordy z bazy

0

no to chyba normalne? przecież auto_increment nie służy do ustawiania rekordów w odpowiedniej kolejności, tylko odpowiedniego ich numerowania (btw: podałeś zły przykład; powinno być coś w stylu 1,2,3,4,5,6,10,8,9). do ustawiania w kolejności masz - jak sam zauważyłeś - order by.

0

no to co decyduje o tym w jakiej kolejnosci leza w bazie - czyli jaki bedzie porzadek kiedy bede BROWSEowal w phpmyadmin badz wysysal mysql_fetch_array w php?

czy moge cos zrobic zeby nowe rekordy nie wskakiwaly na miejsce starych usunietych?

0

nie rozumiem problemu. po to masz order, żebyś sobie mógł zapodać taką kolejność na jaką masz ochotę. ale może czegoś nie rozumiem - wytłumacz mi po co Ci zachowanie kolejności i dlaczego nie możesz tego zrobić sortem???
i nic nie poradzisz na to, że mysql usiłuje minimalizować rozmiar plików z bazą danych.

0

no tak....
głupi ja

strasznie sie tym zaplatalem, poniewaz robilem sortowanie rekordow typu przesun o jeden wyzej, o jeden nizej przepisujac wartosci

nie wpadlo mi do lba, ze to przeciez mysql_fetch_array jest uzaleznione jak wySELECTuje :/

w sumie -> kilka debilnych postow z mojej strony

ale juz zrobilem i dziala jak nalezy

dzieki za patronat ŁF

1 użytkowników online, w tym zalogowanych: 0, gości: 1