ugrás a tartalomhoz

Adott azonosítójú sor létezésének ellenőrzése adatbázisban

Anonymous · 2006. Okt. 25. (Sze), 14.41
Sziasztok!
Az lenne a kérdésem, hogy
teszem azt van egy szám, 5
és ezt szeretném leellenőrizni, hogy van-e ilyen id-jű sor az adatbázisban.
Ezt, hogy lehetne kivitelezni?
köszönöm!
 
1

Általános kérdésre általános válasz

csla · 2006. Okt. 25. (Sze), 15.15
Végre kell hajtanod egy olyan lekérdezést, amelyben lekéred azokat a sorokat, amelyekben az ID mező értéke egyenlő 5-tel.
3

köszönöm

Anonymous · 2006. Okt. 25. (Sze), 20.34
köszönöm a választ ezzel máris előrébb vagyok, de volna itt még egy kis bibi...
( bocsánat de ezt elfelejtettem az elején oda írni )
tehát az lenne még a továbbiakban a gond, hogy mivan akkor ha leellenőriztük az adott számot, és nincs az adatbázisban!?
akkor hozzá kéne adni egyet, és addig kéne hozá adni egyet amig nem talál egy olyan sort ahol meg egyezik az id és az adott szám, ehhez valamilyen ciklusra volna szükség.. vagy akár lehetne írni rá függvényt is de lehet hogy elég lenne rá egy if-es elágazás is else-ágal.
nekem nem feltétlenül a php kod kell hogy-hogy kell megcsinálni, nekem elég ha ilyen részletesen ahogy fentebb is írtad, leírnád
Köszönöm előre is!
5

Mi a feladat?

csla · 2006. Okt. 25. (Sze), 22.00
Javaslom, mondd el inkább, hogy milyen célból keresed az adott sort, hátha van frappánsabb, egyszerűbb megoldás is.
6

igen

Anonymous · 2006. Okt. 25. (Sze), 23.39
igen pont ezt akartam!
2

picit hiányos a kérdés

Anonymous · 2006. Okt. 25. (Sze), 15.40
Milyen adatbázisban? Ezt többféleképpen megteheted. Ellenőrizheted a visszakapott sorok számát, vagy kiadhatsz külön egy SQL parancsot, vagy ha például szöveges fájlokban van az adatbázis, akkor megnézheted a fájl sorainak a számát, vagy akármi. Ezerféle lehetőség van. Picit konkretizálj és olvass utána a dokumentációkban!

j.
4

!!!

kerzo · 2006. Okt. 25. (Sze), 21.12
Kérdezd le az összes id-t, tedd bele egy tömbbe és ezt a tömböt dolgozd fel. Nézd meg, hogy benne van-e a tömbben az általad keresett szám, ha nincs, akkor adjál hozzá mág egyet és kezd előlröl.

Figyelj arra, hogy ne legyen benne sok adatbázis lekérés. Így max kettő van.
7

itt

Anonymous · 2006. Okt. 25. (Sze), 23.48
itt is a feladat:
az volna hogy ez egy következő és egy előző gomb céljából kellene nekem
mert ugy néz ki a hivatkozás, hogy
valami.php?hirdetes_id=5
és itt a követlező hír kéne, hogy pl.:
valami.php?hirdetes_id=6
ezt így érem el:

$hir = $db->sql_fetchrow($db->sql_query("SELECT * FROM `tbl` WHERE `id`='{$id}'"));
$next = $hir['id'] + 1;
valami.php?hirdetes_id=$next;
de itt akkor van ugye gáz, hogyha nem létezik $hir['id'] + 1; ilyen id-jű hír és
ezt kéne valahogy kiküszöbölni hogy akkor ne egyet adjon hozzá hanem amennyit kell vagy annyiszor egyet amig a következő nem jön...
az előzőnél pedig ugyan így csak "ellentétesen" tehát kivonással.
lehet hogy nem a legjobb megoldás...
üdv.: sDa^
8

AUTO_INCREMENT ?

Anonymous · 2006. Okt. 26. (Cs), 06.44
Szerintem neked egy ilyen tulajdonsággal bíró mező kellene. Ez minden beszúráskor automatikusan növeli egyel az id értékét. Bővebben lásd: Google :)
10

igen

Anonymous · 2006. Okt. 26. (Cs), 11.23
igen az id-nek a mezője így van meghatározva.. auto increment és elsődleges..
de az a baj hogy nem minten adat van benne már... mer törölgettek belőle.. és az id attol ugyanaz marad.. tehát így ilyen kimaradások vannak a sorok közt ezért jön pl, az első id után a 20. ...
11

ha hír, akkor van dátuma is

Anonymous · 2006. Okt. 26. (Cs), 11.51
kérdezd le dátum szerint az előtte és utána lévő hír azonosítóját.

előző (régebbi):

select id from hirek
where datum<'x'     //és ide beírod a megjelenített hír dátumát
order by datum desc //a régebbi hírek csökkenő sorrendben
limit 0,1           //csak az eggyel előtte lévő kell
következő (frissebb):

select id from hirek
where datum>'x'    //és ide beírod a megjelenített hír dátumát
order by datum asc //az újabb hírek növekvő sorrendben (asc nem kötelező)
limit 0,1          //csak az eggyel utána lévő kell
az x lehet date, unix timestamp típusú vagy amit akarsz. ha egy esetben nem kapsz vissza eredményt azt jelenti, hogy vagy az első (ha az előzőre nem kapsz eredményt) vagy az utolsó (ha a következőre nem kapsz eredményt) hírt jeleníted meg. (ha egyikre sem kapsz eredményt, akkor csak egyetlen híred van.)
egyetértek a 9-es hozzászólással, nem ártana tanulnod a témában, bár ehhez a feladathoz inkább arra a bizonyos józan paraszti észre lett volna szükség.
gex
12

Valami konkrét

csla · 2006. Okt. 26. (Cs), 11.54
De ehhez (lapozáshoz) nem neked kell megkeresned a következőt úgy, hogy mindig egyet lépsz és vizsgálod, létezik-e, hanem bízd ezt az adatbázisra, ő tudja, hogy melyik a következő, illetve előző, valamelyik rendezettség szerint. Ha pl. az aktuális ID 15, akkor kérd le azt az egy következőt, amelyik nagyobb, mint 15. Vagy kisebb. MySQL esetén:
SELECT ID FROM `táblanév` WHERE ID > 15 ORDER BY ID LIMIT 1
Vagy dönthetsz úgy is, hogy nem figyelsz lapozás közben a változásokra (csak esetleg egy következő megtekintéskor aktualizálsz), lekéred az összes ID-t, beteszed egy session változóba, és abból dolgozol.
Persze ezeket - és az alapokat - mind meg kéne tanulni...
9

tanulni, tanulni, tanulni

Anonymous · 2006. Okt. 26. (Cs), 08.05
Tudom, Lenin mondta és ma ez ciki :D Pedig rádfér... Szerintem tanulj meg alapfokon programozni, a PHP súgó pl. tökjó, magyarul is van stb. Így nem lehet...
13

Egy ujabb lekérdezés?

Anonymous · 2006. Okt. 27. (P), 20.35
SELECT MIN(id) AS next FROM adatok WHERE id>=$hir['id'] + 1
Ez -ha igaz- visszaadja az egyel nagyobbi, ill. az ahhoz legközelebbi id-jü sort.