09. februar 2003 - 15:44
Der er
40 kommentarer og 1 løsning
næste id i rækken
Hej Hej.. Kan man få PHP eller MySQL til at regne ud hvad det næste ID nr. er i en database ??.. Jeg har nemlig en billede database.. Og der kære navigationen at man bare +1 på id´et.. Men det går jo ikke hvis man har slettet et billede f.eks. ?? Håber at i forstår ?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
09. februar 2003 - 15:57
#1
Ja, hvis du har et id, fx, nummer 117 så laver du bare en select id from dintabel where id>117 limit 1 order by id asc
09. februar 2003 - 15:58
#2
Øh... select id from dintabel where id>117 order by id asc limit 1
09. februar 2003 - 16:00
#3
Mange tak..... Det sjove ved at programmere er at man bare skal tænke logisk ;-)... Ligger du et svar..
09. februar 2003 - 16:01
#4
Nej, intet svar fra mig (jeg er ved at vride mig ud af et af de der gratis PRO-abonnementer, som jeg er blevet prakket på) Skal vi tage den store test? Hvordan får du det forrige id?
09. februar 2003 - 16:02
#5
Du kan tælle antal id'er med dette mysql_num_rows(mysql_query("SELECT id FROM dintebel")) også lægge en til: $id = mysql_num_rows(mysql_query("SELECT id FROM dintebel"))+1
09. februar 2003 - 16:03
#6
Ja. der satte jeh jo bare en - på... Men jeg kan jo gøre som du lige har vist bare med "DESC"..
09. februar 2003 - 16:03
#7
skal lige sluttes: $id = mysql_num_rows(mysql_query("SELECT id FROM dintebel"))+1;
09. februar 2003 - 16:03
#8
Det er vist ikke det han spørger om, ahv.
09. februar 2003 - 16:04
#9
Nej, jacob - nu skal du selv præstere lidt. Vis mig lige den rigtige SQL-sætning :)
09. februar 2003 - 16:06
#10
Næh, det er det sørme heller ikke. Den jeg giver tæller jo det antal der er og ikke hvad nummer den er nået til. Sorry
09. februar 2003 - 16:06
#11
ahv>>> det giver da ikke mening !! elelr gør det...
09. februar 2003 - 16:09
#12
Okay.. Her er soucen ---------------------------- SOURCE ------------------------ <? include ('var.php'); connect(); $res_id = mysql_query ( "SELECT * FROM `bb_billeder` WHERE m_id = '$m' AND id = '$pid'") or die (mysql_error()); while($r = mysql_fetch_array($res_id)) { $id = $r["id"]; $m_id = $r["m_id"]; $link = $r["link"]; $album = $r["album"]; $beskrivelse = $r["beskrivelse"]; $type = $r["type"]; $rows = mysql_num_rows(mysql_query ("SELECT * FROM `bb_billeder` WHERE m_id = '$m'")); } $pidt = $pid-1; if ($pidt <= 1) { $pidt =1; } $pidf = $pid+1; if ($pidf > $rows) { $pidf = 1; } ?> --------------- SOURCE ------------------------------ og $m variablen kommer fra linket... EKS: galleri.php?m=1
09. februar 2003 - 16:16
#13
Jeg misforstod dig ERIKJACOBSEN !!! pidf som er et ID frem.. $pidf = ("SELECT id FROM 'bb_billeder' WHERE ID = $pid ORDER BY ID ASC LIMIT 1")
09. februar 2003 - 16:16
#14
Det var vist ikke det jeg mente. Jeg gav dig en "smart" sql-sætning til at finde det næste id. Kan du give den tilsvarende "smarte" til at finde det foregående?
09. februar 2003 - 16:17
#15
nåre.. $pidt er ID 1 tilbage $pidt = ("SELECT id FROM 'bb_billeder' WHERE ID = $pid ORDER BY ID DESC LIMIT 1")
09. februar 2003 - 16:20
#16
nah, det er jo ikke sikkert det foregående nummer er der
09. februar 2003 - 16:23
#17
Hmmm... Nåre ja.. der skal jo være en sikkerhed som jeg har med $PIDF som er: -------------------------------------------------------------------- $rows = mysql_num_rows(mysql_query ("SELECT * FROM `bb_billeder` WHERE m_id = '$m'")); $pidf = $pid+1; if ($pidf > $rows) { $pidf = 1; } -------------------------------------------------------------- Som sikre man starter forfra !!
09. februar 2003 - 16:24
#18
Den er svær..
09. februar 2003 - 16:25
#19
Hvad vil der kommer ud af $PIDT hvis der ikker var flere 0 eller NULL ?
09. februar 2003 - 16:27
#20
Nej, det er den ikke. Du får næste id med: select id from dintabel where id>117 order by id asc limit 1 og forrige med select id from dintabel where id<117 order by id desc limit 1
09. februar 2003 - 16:28
#21
Er der ikke en næste (eller forrige) får du bare 0 tupler tilbage
09. februar 2003 - 16:29
#22
Men jeg har lige prøvet SELECT id FROM bb_billeder WHERE ID = 5 ORDER BY ID DESC LIMIT 1 og den spytter bare ID 5 ud.. Det var jo ikke meningen ??
09. februar 2003 - 16:31
#23
FEJL igen.. Nu med: SELECT id FROM bb_billeder WHERE ID>5 ORDER BY ID DESC LIMIT 1 For jeg ID 56 ud..
09. februar 2003 - 16:58
#24
Dine id-er er vel int - og ikke char/varchar ??
09. februar 2003 - 17:01
#25
den er int(4)
09. februar 2003 - 17:11
#26
Åh, jamen skriv rigtigt af ... ikke? ;)
09. februar 2003 - 17:13
#27
aha.. Ja... Man SKAL bruge ASC....
09. februar 2003 - 17:14
#28
Men som du siger.. Hvordan fanden vender man den så om??
09. februar 2003 - 17:15
#29
Men det skal du ikke rode med.. Vil du have flere point ?...
09. februar 2003 - 17:21
#30
Det har jeg jo fortalt dig. Nej, jeg skal ikke have nytteløse poiint
09. februar 2003 - 17:24
#31
okay...... Vil du slet ikke have nogle ??..
09. februar 2003 - 21:48
#32
OKay... Hvis du ikke vil ahve nogle point.. Så vil du sikkert hjælpe mig ?.. Jeg har problemmer med at få vores SQL Query ud i en variabel.. Jeg har prøvet med flg.: 1. while(($pidf = mysql_fetch_array(mysql_query ( "SELECT id FROM bb_billeder WHERE id>$pid ORDER BY id ASC LIMIT 1")))); 2. $pidf = mysql_fetch_array(mysql_query ( "SELECT id FROM bb_billeder WHERE id>$pid ORDER BY id ASC LIMIT 1")); 3. while($pr = mysql_fetch_array(mysql_query ( "SELECT id FROM bb_billeder WHERE id>$pid ORDER BY id ASC LIMIT 1"))) { $pidf = $pr["id"]; } Og der er ikke rigtig noget der fungere ?! /jacob
09. februar 2003 - 21:54
#33
Nummer 2 ser ret god ud. Efter linien skal du if ($pidf) { $naesteid = $pidf['id']; } else { // slut finale, der er ikke flere. }
09. februar 2003 - 21:59
#34
Hvorfor er det lige det fungere... Hvad gør den IF-STATEMENT ??
09. februar 2003 - 22:01
#35
Det er jo ikke sikkert der en "næste".
09. februar 2003 - 22:04
#36
ok... Nu sidder jeg så og roder med den sidste i rækken.. Og en IF-STATEMENT.. Dette er et bud.. Men det fungere ikke helt.. $rows = mysql_num_rows(mysql_query ("SELECT * FROM `bb_billeder` WHERE m_id = '$m'")); $sidsteid = mysql_fetch_array(mysql_query ( "SELECT id FROM bb_billeder WHERE id>$pid ORDER BY id ASC LIMIT $rows,$rows"));
10. februar 2003 - 00:07
#37
Jeg tror jeg stopper her. Jeg mener du har fået alt at vide du behøver. Hvorfor du så begynder at skrive andre mærkelige ting - det ved jeg ikke.
10. februar 2003 - 21:19
#38
Ok.. Vil du ligge et svar ?
12. februar 2003 - 00:28
#39
Undskyld, jacob_m - jeg kunne ikke lade være: ================================================================== Kommentar: jacob_m 09/02-2003 16:00:22 Ligger du et svar.. Kommentar: erikjacobsen 09/02-2003 16:01:42 Nej, intet svar fra mig (jeg er ved at vride mig ud af et af de der gratis PRO-abonnementer, som jeg er blevet prakket på) Kommentar: jacob_m 09/02-2003 17:15:24 Vil du have flere point ?... Kommentar: erikjacobsen 09/02-2003 17:21:25 Det har jeg jo fortalt dig. Nej, jeg skal ikke have nytteløse poiint Kommentar: jacob_m 09/02-2003 17:24:10 okay...... Vil du slet ikke have nogle ??.. Kommentar: jacob_m 10/02-2003 21:19:29 Ok.. Vil du ligge et svar ?
12. februar 2003 - 09:15
#40
Jae... ---------------------------------- Kommentar: erikjacobsen 10/02-2003 00:07:25 Jeg tror jeg stopper her. Jeg mener du har fået alt at vide du behøver. Hvorfor du så begynder at skrive andre mærkelige ting - det ved jeg ikke. ----------------------------------- Så kunne det jo være han ville hvae nogle point !!.. Men så fuck det.. Så tager jeg dem bare selv..
12. februar 2003 - 22:47
#41
Ja ja *gg*
Computerworld tilbyder specialiserede kurser i database-management