Autor | Zpráva | ||
---|---|---|---|
Anonymní Profil * |
#1 · Zasláno: 19. 11. 2006, 11:45:15
Potřebuju poradit, nebo alespoň nakopnout.
Mám číselnou řadu od 1 do x. poprvně byla zapisována postupně. Pak se nějaké věty i s těmito čísly smázly a chtěl bych nějak vylistovat tyto mezery v číselné řadě, aniž by jí musel ručně procházet. Poradíte jak na to ?? |
||
Casero Profil |
#2 · Zasláno: 19. 11. 2006, 12:03:37
Co je dát do pole a to pole procházet, a když by bylo prázdný, tak si ho poznamenat.
|
||
nightfish Profil |
#3 · Zasláno: 19. 11. 2006, 12:29:43
kde máš tu číselnou řadu uloženou? v databázi nebo v souboru nebo v nějaké proměnné?
řešením je procházet řadu od 1 do x, a u každého indexu kontrolovat existenci prvku |
||
Anonymní Profil * |
#4 · Zasláno: 19. 11. 2006, 12:48:05
číselná řada je v databázi.
|
||
nightfish Profil |
#5 · Zasláno: 19. 11. 2006, 13:08:03
$q = "select id from tabulka order by id";
$result = mysql_query($q); $pole = array(); while ($data = mysql_fetch_row($result)) { $pole[$data[0]] = 1; } $q = "select min(id), max(id) from tabulka"; $result = mysql_query($q); $data = mysql_fetch_row($result); $min = $data[0]; $max = $data[1]; for ($i = $min; $i < $max; $i++) { if (!isSet($pole[$i])) echo "číslo $i v řadě chybí<br>"; } |
||
Anonymní Profil * |
#6 · Zasláno: 19. 11. 2006, 14:16:42
Je to supr, ale má to jednu chybku. Počítá to jen od 1 do 9 . Není to někde bloklý na jednomístné číslo???
|
||
nightfish Profil |
#7 · Zasláno: 19. 11. 2006, 14:17:52
že ty máš sloupec s tou číselnou řadou jako varchar a ne jako int?
v tom případě $q = "select min(id+0), max(id+0) from tabulka"; |
||
Anonymní Profil * |
#8 · Zasláno: 19. 11. 2006, 14:22:23
No koukl sem se a opravdu jí mám jako varchar. Ale moc děkuju, je to ono a funguje to. Díky
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0