Autor Zpráva
peetr
Profil *
Zdravim, mam tabulku

id | node | nazov | poradie
----------------------------------
1 | 0 | jeden | 10
2 | 0 | dva | 20
3 | 1 | osem | 30
4 | 1 | devet | 40
5 | 0 | sest | 50
...

potrebujem vybrat "poradie" - o jeden stupen mensie ale rovnajuce sa v node ... teda napr. chcem vybrat poradie kde node=0 a poradie < 50 limit 1

skusal som takto, ale v niektorych pripadoch mi to vybralo uuplne inu hodnotu ... teda napr malo mi to vybrat podla tabulky ktoru som sem vlozil mi malo vybrat 20 a casto mi to vybralo desiatku .. teda preskocilo aj niekolko riadkou ... teda vybralo nizsie poradie ale nie to najblizsie nizsie k mojmu poradiu:

$sql = mysql_query("select node, poradie from tabulka where id='$id'"); // v nasom pripade napr. $id=5, v tomto prikaze som zistil node a poradie aktualneho "prvku"


$sql = mysql_query("select poradie from tabulka where (node='".mysql_result($sql,0,'node')."' and poradie<".mysql_result($sql,0,'poradie').") limit 1");

// tu sa pokusam zistit hodnotu najblizsieho nizsieho poradia prvku s rovnakym 'node', ale mi to proste nejde tak ako ma, teda ako chcem :-(

...mam taky pocit ze potrebujem to pole nejak usporiadat pred tym porovnanim : poradie<".mysql_result($sql,0,'poradie') ... lebo takto mi to vybere hocijake nizsie poradie, a nie to najblizsie

prosim poradte niekdo, ak viete ako na to, vopred vdaka
Alphard
Profil
vůbec nechápu, o co jde
můžeš sem napsat id záznamů, které má databáze vrátit z té ukázkové tabulky?
peetr
Profil *
poznam id=5 .. teda poradie=50

a ma mi vratit id=2 a poradie=20

... a casto mi to vrati id=1 a poradie=10 .... teda nevrati mi najblizsie nizsie poradie k mojmu znamemu id-cku
Alphard
Profil
takhle?


select poradie from tabulka where poradie < 50 and node = (select node from tabulka where poradie = 50) order by id desc limit 1;


50 nahraď za proměnnou s pořadím, to jsem pochopil, že znáš
Kajman_
Profil *
viz. předchozí další na
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=28&topic=3 7836

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0