/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Flytte records op og ned
Fra : Anders M


Dato : 24-10-09 10:30

hej,

er der nogen der ligger inde med en funktion til at flytte
records op og ned på en php side?

Mvh Anders

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Bertel Lund Hansen (24-10-2009)
Kommentar
Fra : Bertel Lund Hansen


Dato : 24-10-09 12:42

Anders M skrev:

> er der nogen der ligger inde med en funktion til at flytte
> records op og ned på en php side?

Det må du forklare nærmere. Jeg forstår ikke hvad du mener.

--
Bertel
http://bertel.lundhansen.dk/         FIDUSO: http://fiduso.dk/

Anders M (24-10-2009)
Kommentar
Fra : Anders M


Dato : 24-10-09 13:31

Bertel Lund Hansen wrote in
dk.edb.internet.webdesign.serverside.php:
> Anders M skrev:
>
> > er der nogen der ligger inde med en funktion til at flytte
> > records op og ned på en php side?
>
> Det må du forklare nærmere. Jeg forstår ikke hvad du mener.
>
> --
> Bertel
> http://bertel.lundhansen.dk/         FIDUSO: http://fiduso.dk/

Jeg har en masse records (afsnit), som skal vises i en bestemt
rækkefølge.. det skal man så kunne styre fra en php side med få
klik (op eller ned)

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Bertel Lund Hansen (24-10-2009)
Kommentar
Fra : Bertel Lund Hansen


Dato : 24-10-09 14:17

Anders M skrev:

> Jeg har en masse records (afsnit), som skal vises i en bestemt
> rækkefølge.. det skal man så kunne styre fra en php side med få
> klik (op eller ned)

Skal brugeren kunne vælge forskellige, foruddefinerede
rækkefølger?

--
Bertel
http://bertel.lundhansen.dk/         FIDUSO: http://fiduso.dk/

Anders M (24-10-2009)
Kommentar
Fra : Anders M


Dato : 24-10-09 14:22

Bertel Lund Hansen wrote in
dk.edb.internet.webdesign.serverside.php:
> Anders M skrev:
>
> > Jeg har en masse records (afsnit), som skal vises i en bestemt
> > rækkefølge.. det skal man så kunne styre fra en php side med få
> > klik (op eller ned)
>
> Skal brugeren kunne vælge forskellige, foruddefinerede
> rækkefølger?
>
> --
> Bertel
> http://bertel.lundhansen.dk/         FIDUSO: http://fiduso.dk/

Du gør det mere kompliceret end det er.. det skal bare være ligesom
dette (under move) hvor man kan rytte siderne op og ned

http://www.headscape.co.uk/images/cms.jpg

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Bertel Lund Hansen (24-10-2009)
Kommentar
Fra : Bertel Lund Hansen


Dato : 24-10-09 16:24

Anders M skrev:

> Du gør det mere kompliceret end det er.. det skal bare være ligesom
> dette (under move) hvor man kan rytte siderne op og ned

Her er en testside:

   http://temp.lundhansen.dk/movetest.php

Og koden:

<?
session_start();
if (!isset($_SESSION['infolines']))
   $_SESSION['infolines'] = array (
       'Tekst der skrives til skærmen',
       'En anden tekst der skrives til skærmen',
       'En tredje tekst der skrives til skærmen',
   );
$infolines=&$_SESSION['infolines'];
$last=count($infolines)-1;
?>
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' ''>http://www.w3.org/TR/html4/strict.dtd'>
<html>
<head>
<title>Movetest</title>
<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>
<meta http-equiv='imagetoolbar' content='no'>
</head>

<body>

<?
for ($nr=0; $nr<count($infolines); ++$nr) {
   if (isset($_POST['down'.$nr])) {
       $temp=$infolines[$nr];
       $infolines[$nr]=$infolines[$nr+1];
       $infolines[$nr+1]=$temp;
   }
   if (isset($_POST['up'.$nr])) {
       $temp=$infolines[$nr];
       $infolines[$nr]=$infolines[$nr-1];
       $infolines[$nr-1]=$temp;
   }
}

echo "<form action='' method='post'>
<table>
";
foreach ($infolines as $nr => $line) {
   echo "<tr><td>$line</td>";
   if ($nr<$last) echo "<td><input type='submit' name='down$nr' value='Ned'></td>";
   else echo "<td>&nbsp;</td>";
   if ($nr) echo "<td><input type='submit' name='up$nr' value='Op'></td>";
   else echo "<td>&nbsp;</td>";
   echo "</tr>\n";
}
echo "</table>
</form>";

?>

</body>
</html>

--
Bertel
http://bertel.lundhansen.dk/         FIDUSO: http://fiduso.dk/

Stefan Kristensen (24-10-2009)
Kommentar
Fra : Stefan Kristensen


Dato : 24-10-09 16:51

>> Du gør det mere kompliceret end det er.. det skal bare være ligesom
>> dette (under move) hvor man kan rytte siderne op og ned
>
> Her er en testside:
>
>    http://temp.lundhansen.dk/movetest.php
>
> Og koden:
<snip>

Hmm...
Ikke noget jeg har brug for lige nu, men det ryger helt sikkert i
værktøjskassen - Takker

Mvh
Stefan

Martin (26-10-2009)
Kommentar
Fra : Martin


Dato : 26-10-09 16:32

Bertel Lund Hansen wrote:
> Anders M skrev:
>
>> Du gør det mere kompliceret end det er.. det skal bare være ligesom
>> dette (under move) hvor man kan rytte siderne op og ned
>
> Her er en testside:
>
>    http://temp.lundhansen.dk/movetest.php

Hehehe.... har du nogensinde prøvet at bruge sådan en, når man skulle
flytte 19 elementer... GAL det tager kedelig tid.

http://jsbin.com/uqebe3/
Lidt hurtigere måske :)

Bertel Lund Hansen (26-10-2009)
Kommentar
Fra : Bertel Lund Hansen


Dato : 26-10-09 17:20

Martin skrev:

> Hehehe.... har du nogensinde prøvet at bruge sådan en, når man skulle
> flytte 19 elementer...

Nej da. Men det var heller ikke det der blev spurgt om.

> http://jsbin.com/uqebe3/
> Lidt hurtigere måske :)

Måske, men den løser ikke det problem du rejser. I øvrigt
forårsager den en JavaScript-note som skal klikkes væk hver gang.

--
Bertel
http://bertel.lundhansen.dk/         FIDUSO: http://fiduso.dk/

Leif Neland (26-10-2009)
Kommentar
Fra : Leif Neland


Dato : 26-10-09 21:02

Bertel Lund Hansen skrev:
> Martin skrev:
>
>> Hehehe.... har du nogensinde prøvet at bruge sådan en, når man skulle
>> flytte 19 elementer...
>
> Nej da. Men det var heller ikke det der blev spurgt om.
>
>> http://jsbin.com/uqebe3/
>> Lidt hurtigere måske :)
>
> Måske, men den løser ikke det problem du rejser. I øvrigt
> forårsager den en JavaScript-note som skal klikkes væk hver gang.
>
Øhm, har du ikke set en test/demo-side med debug-alerts før?

Selvfølgelig skal alert-boxen ikke komme i produktionsudgaven.

Leif

Martin (27-10-2009)
Kommentar
Fra : Martin


Dato : 27-10-09 12:18

Bertel Lund Hansen wrote:
> Martin skrev:
>
>> Hehehe.... har du nogensinde prøvet at bruge sådan en, når man skulle
>> flytte 19 elementer...
>
> Nej da. Men det var heller ikke det der blev spurgt om.

Det rigtigt nok, men det ligger nu alligevel i baggrunden af spørgsmålet
- men nok fordi jeg engang havde en liste på 200+ elementer hvor de
skulle kunne sorteres, og fra dengang der ved jeg hvor irriterende det
er at bruge op og ned pile/knapper :)

>
>> http://jsbin.com/uqebe3/
>> Lidt hurtigere måske :)
>
> Måske, men den løser ikke det problem du rejser. I øvrigt
> forårsager den en JavaScript-note som skal klikkes væk hver gang.

Ja, debug er altid rart - så man kan se hvad der bliver sendt afsted til
ajax scriptet - nu kan man jo ikke ligefrem lave et ajax kald på jsbin :)

Birger Sørensen (24-10-2009)
Kommentar
Fra : Birger Sørensen


Dato : 24-10-09 13:34

Anders M formulerede spørgsmålet:
> hej,
>
> er der nogen der ligger inde med en funktion til at flytte
> records op og ned på en php side?
>
> Mvh Anders

Hvad er en "record"?
(Og hvad er en php side?)

Hvis det du mener er rækker fra en database, kan det ikke umiddelbart
lade sig gøre. (Ikke simpelt i hvert fald).
Rækker vises i den rækkefølge de findes/hentes fra databasen.
Hvis du ikke har nogen sortering (ORDER BY i SQL), vil det typisk (men
ikke nødvendigvis) være rækkefølgen data er lagt i tabellen.
Så det enkle svar på det jeg tror dit spørgsmål handler om, er at sætte
data ind i databasen, i den rækkefølgge du vil have dem ud...

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Anders M (24-10-2009)
Kommentar
Fra : Anders M


Dato : 24-10-09 14:17

Birger Sørensen wrote in dk.edb.internet.webdesign.serverside.php:
> Anders M formulerede spørgsmålet:
> > hej,
> >
> > er der nogen der ligger inde med en funktion til at flytte
> > records op og ned på en php side?
> >
> > Mvh Anders
>
> Hvad er en "record"?
> (Og hvad er en php side?)
>
> Hvis det du mener er rækker fra en database, kan det ikke umiddelbart
> lade sig gøre. (Ikke simpelt i hvert fald).
> Rækker vises i den rækkefølge de findes/hentes fra databasen.
> Hvis du ikke har nogen sortering (ORDER BY i SQL), vil det typisk (men
> ikke nødvendigvis) være rækkefølgen data er lagt i tabellen.
> Så det enkle svar på det jeg tror dit spørgsmål handler om, er at sætte
> data ind i databasen, i den rækkefølgge du vil have dem ud...
>
> Birger
>
> --
> http://varmeretter.dk - billig, sund og hurtig mad
> http://bbsorensen.dk
>
>

Jeg har lavet et felt "sort (int)"

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Bertel Lund Hansen (24-10-2009)
Kommentar
Fra : Bertel Lund Hansen


Dato : 24-10-09 14:20

Anders M skrev:

> Jeg har lavet et felt "sort (int)"

Prøv om ikke du kan forklare det hele på én gang så det er til at
forstå. Hvis vi skal trække oplysningerne ud af dig én ad gangen,
mister vi tålmodigheden.

--
Bertel
http://bertel.lundhansen.dk/         FIDUSO: http://fiduso.dk/

Anders M (24-10-2009)
Kommentar
Fra : Anders M


Dato : 24-10-09 17:49

Bertel Lund Hansen wrote in
dk.edb.internet.webdesign.serverside.php:
> Anders M skrev:
>
> > Jeg har lavet et felt "sort (int)"
>
> Prøv om ikke du kan forklare det hele på én gang så det er til at
> forstå. Hvis vi skal trække oplysningerne ud af dig én ad gangen,
> mister vi tålmodigheden.
>
> --
> Bertel
> http://bertel.lundhansen.dk/         FIDUSO: http://fiduso.dk/

Det vil jeg tænke over i fremtiden..

Jeg har gjort det, at jeg har sat mig grundigt ind i AJAX og PHP, så
jeg har lavet en funktion "Drag and drop"..

Mvh Anders M

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Birger Sørensen (24-10-2009)
Kommentar
Fra : Birger Sørensen


Dato : 24-10-09 15:52

Efter mange tanker skrev Anders M:
> Birger Sørensen wrote in dk.edb.internet.webdesign.serverside.php:
>> Anders M formulerede spørgsmålet:
>>> hej,
>>>
>>> er der nogen der ligger inde med en funktion til at flytte
>>> records op og ned på en php side?
>>>
>>> Mvh Anders
>>
>> Hvad er en "record"?
>> (Og hvad er en php side?)
>>
>> Hvis det du mener er rækker fra en database, kan det ikke umiddelbart
>> lade sig gøre. (Ikke simpelt i hvert fald).
>> Rækker vises i den rækkefølge de findes/hentes fra databasen.
>> Hvis du ikke har nogen sortering (ORDER BY i SQL), vil det typisk (men
>> ikke nødvendigvis) være rækkefølgen data er lagt i tabellen.
>> Så det enkle svar på det jeg tror dit spørgsmål handler om, er at sætte
>> data ind i databasen, i den rækkefølgge du vil have dem ud...
>>
>> Birger
>>
>> --
>> http://varmeretter.dk - billig, sund og hurtig mad
>> http://bbsorensen.dk
>>
>>
>
> Jeg har lavet et felt "sort (int)"

Så er det du skal vel, at ændre værdierne i det felt, når brugeren
klikker...

Jeg holder lidt med Bertel - du giver ikke ret mange oplysninger
Og det er ikke nemt at give et brugbart svar, når man skal gætte sig
til det du har, hvad der kan være galt, og hvordan det er tænkt at
skulle fungere..

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Peter Farsinsen (24-10-2009)
Kommentar
Fra : Peter Farsinsen


Dato : 24-10-09 16:24

Anders M wrote:
> Jeg har lavet et felt "sort (int)"

Så skal du sortere din query efter det felt. F.eks.:

SELECT * FROM `dintabel` ORDER BY `sort` DESC

Læs mere her: http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html

Du skal desuden have noget logik, der kan opdatere feltet 'sort' i din
database, når en række tilføjes, slettes eller flyttes en plads op eller
ned. Det kan være lidt tricky ... eksempler:

Når en række rykkes en placering op:

- 'sort' dekrementeres med én
- Rækken der før havde denne placering, skal inkrementeres med én i
feltet 'sort'

Når en række slettes:

- Rækker med en højere værdi i feltet 'sort', end den slettede, skal
dekrementeres med én.

Hvis du kan implementere ovenstående, kan du vist også regne de to
sidste tilfælde ud ;)

--
Peter Farsinsen
fornavn@efternavn.dk

Martin (26-10-2009)
Kommentar
Fra : Martin


Dato : 26-10-09 16:31

Peter Farsinsen wrote:
> Anders M wrote:
>> Jeg har lavet et felt "sort (int)"
>
> Så skal du sortere din query efter det felt. F.eks.:
>
> SELECT * FROM `dintabel` ORDER BY `sort` DESC

Bemærk lige at sort er et reserveret ord, så uden plinger ` så vil man
få kylet en query error retur.

>
> Læs mere her: http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html
>
> Du skal desuden have noget logik, der kan opdatere feltet 'sort' i din
> database, når en række tilføjes, slettes eller flyttes en plads op eller
> ned. Det kan være lidt tricky ... eksempler:
>
> Når en række rykkes en placering op:
>
> - 'sort' dekrementeres med én
> - Rækken der før havde denne placering, skal inkrementeres med én i
> feltet 'sort'

Hvis man bruger javascript / ajax, så er det meget nemmere at få alle
produkter/sider/you.name.it i den korrekte rækkefølge - så slipper man
for 3 database queries :)

Et lille friskt eksempel her
http://jsbin.com/uqebe3/

> - Rækker med en højere værdi i feltet 'sort', end den slettede, skal
> dekrementeres med én.

Behøvs man da ikke.
sort 1-3-5
giver jo stadig den korrekte rækkefølge.

Peter Farsinsen (26-10-2009)
Kommentar
Fra : Peter Farsinsen


Dato : 26-10-09 18:11

Martin wrote:
>> Anders M wrote:
>>> Jeg har lavet et felt "sort (int)"
>>
>> Så skal du sortere din query efter det felt. F.eks.:
>>
>> SELECT * FROM `dintabel` ORDER BY `sort` DESC
>
> Bemærk lige at sort er et reserveret ord, så uden plinger ` så vil man
> få kylet en query error retur.

Bemærk plingerne ;) Det er desuden OP, der har valgt feltnavnet 'sort'.

>> Læs mere her: http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html
>>
>> Du skal desuden have noget logik, der kan opdatere feltet 'sort' i din
>> database, når en række tilføjes, slettes eller flyttes en plads op
>> eller ned. Det kan være lidt tricky ... eksempler:
>>
>> Når en række rykkes en placering op:
>>
>> - 'sort' dekrementeres med én
>> - Rækken der før havde denne placering, skal inkrementeres med én i
>> feltet 'sort'
>
> Hvis man bruger javascript / ajax, så er det meget nemmere at få alle
> produkter/sider/you.name.it i den korrekte rækkefølge - så slipper man
> for 3 database queries :)

Jeg har lidt svært ved at se relevansen? Ja, hvis du vil flytte en række
uden at gemme ændringen, så fint nok, men hvis ændringen skal gemmes i
en database, vil logikken være den samme uanset, hvordan din request sendes.

>> - Rækker med en højere værdi i feltet 'sort', end den slettede, skal
>> dekrementeres med én.
>
> Behøvs man da ikke.
> sort 1-3-5
> giver jo stadig den korrekte rækkefølge.

Go' pointe ;)

--
Peter Farsinsen
fornavn@efternavn.dk

Stig Johansen (26-10-2009)
Kommentar
Fra : Stig Johansen


Dato : 26-10-09 18:29

Peter Farsinsen wrote:

>>> SELECT * FROM `dintabel` ORDER BY `sort` DESC
>>
>
> Bemærk plingerne ;) Det er desuden OP, der har valgt feltnavnet 'sort'.

Det er i det hele taget en god idé at undgå reserverede ord, og ikke mindst
plinger (og [] ved MS SQLServer), så man undgår database afhængighed.

Hvorfor har du plinger omkring dintabel ?

(Hvis man kun bruger mySQL nu, og i fremtiden, så se bort fra mit indlæg)

--
Med venlig hilsen
Stig Johansen

Peter Farsinsen (26-10-2009)
Kommentar
Fra : Peter Farsinsen


Dato : 26-10-09 18:42

Stig Johansen wrote:
> Peter Farsinsen wrote:
>
>>>> SELECT * FROM `dintabel` ORDER BY `sort` DESC
>> Bemærk plingerne ;) Det er desuden OP, der har valgt feltnavnet 'sort'.
>
> Det er i det hele taget en god idé at undgå reserverede ord, og ikke mindst
> plinger (og [] ved MS SQLServer), så man undgår database afhængighed.

Det skal vi ikke skændes om. Nu tog jeg bare udgangspunkt i OP's
eksisterende layout.

> Hvorfor har du plinger omkring dintabel ?

Gammle vane... Det er ik' så tit, jeg rent faktisk skriver SQL længere.

> (Hvis man kun bruger mySQL nu, og i fremtiden, så se bort fra mit indlæg)

Nu svarede jeg alligevel ;)

--
Peter Farsinsen
fornavn@efternavn.dk

Philip Nunnegaard (26-10-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 26-10-09 18:51

Stig Johansen skrev:

> Det er i det hele taget en god idé at undgå reserverede ord,

Og nok en af de væsentligeste grunde til at jeg hurtigt begyndte at
bruge danske felt- og variabelnavne (det var i 2002, mens jeg var ved at
lære asp og brugte Access-database).
Så var sandsynligheden for at ramme et reserveret ord langt mindre.
Eneste problem jeg da har oplevet, var med "by", hvor jeg så valgte
enten "city", "bynavn" eller noget lignende.

--
Philip - http://chartbase.dk | http://www.hitsurf.dk

Stig Johansen (27-10-2009)
Kommentar
Fra : Stig Johansen


Dato : 27-10-09 12:34

Philip Nunnegaard wrote:

> Stig Johansen skrev:
>
>> Det er i det hele taget en god idé at undgå reserverede ord,
>
> Eneste problem jeg da har oplevet, var med "by", hvor jeg så valgte
> enten "city", "bynavn" eller noget lignende.

Ja, by er en klassiker.

Men mit indlæg var lige så meget et hint om at undgå diverse database
'særegne' - ting (aka vendor lockin)

Normalt skal man slet ikke bruger plinger, eller lignende.

Standard ville man bruge(I Peters tilfælde):
SELECT * FROM "dintabel" ORDER BY "sort" DESC

Uvist af hvilke årsager, så har mySQL valgt de dér mærkelige plinger:
SELECT * FROM `dintabel` ORDER BY `sort` DESC
som (formentlig) ikke understøttes af andre databaser.

På samme måde vil William nok foreslå:
SELECT * FROM [dintabel] ORDER BY [sort] DESC

(I MS SQLSever 6.5, hvilket var sybase, var default dog "-er).

Så hintet var bare, at hvis man har planer om databaseuafhængighed, så undgå
disse 'mærkelige' konstruktioner.

Så:
SELECT * FROM dintabel ORDER BY sortnbr DESC
ville nok være et bedre bud.


--
Med venlig hilsen
Stig Johansen

Chano Andersen (28-10-2009)
Kommentar
Fra : Chano Andersen


Dato : 28-10-09 20:05

Stig Johansen skrev:
> Så hintet var bare, at hvis man har planer om databaseuafhængighed, så undgå
> disse 'mærkelige' konstruktioner.

Det er vel langt mere logisk, blot at samle al database adgang i få
klasser, så kan man nøjes med at ændre SQL sætninger i database
klasserne, hvis man skulle finde på at skifte database system.

Der er alt for mange forskelle på SQL mellem forskellige database
systemer, til at man kan undgå at rette koden alligevel, så at samle
sine queries i få klasser og så blot levere parametre og arrays (Eller
lignende) retur til scriptet, vil sikre, at man blot ændre få filer, i
stedet for at skulle gennemgå al kode. (Med mindre, naturligvis, man
nøjes med simple select, insert, update og delete queries.)

- Chano Andersen

Martin (27-10-2009)
Kommentar
Fra : Martin


Dato : 27-10-09 12:23

Peter Farsinsen wrote:
>> Hvis man bruger javascript / ajax, så er det meget nemmere at få alle
>> produkter/sider/you.name.it i den korrekte rækkefølge - så slipper man
>> for 3 database queries :)
>
> Jeg har lidt svært ved at se relevansen? Ja, hvis du vil flytte en række
> uden at gemme ændringen, så fint nok, men hvis ændringen skal gemmes i
> en database, vil logikken være den samme uanset, hvordan din request
> sendes.

Nej, absolut ikke...

Hvis du kun får sortering fra 1 produkt, så skal du lave 3 opkald til
databasen.

1. opkald finde produkterne før og efter dit valgte produkt
2. opkald opdater nuværende produkt
3. opkald sorterer de produkter skal være før og efter.

Bahh, er nok liidt svært at forstå hehe

Peter Farsinsen (27-10-2009)
Kommentar
Fra : Peter Farsinsen


Dato : 27-10-09 12:47

Martin wrote:
> Peter Farsinsen wrote:
>>> Hvis man bruger javascript / ajax, så er det meget nemmere at få alle
>>> produkter/sider/you.name.it i den korrekte rækkefølge - så slipper man
>>> for 3 database queries :)
>> Jeg har lidt svært ved at se relevansen? Ja, hvis du vil flytte en række
>> uden at gemme ændringen, så fint nok, men hvis ændringen skal gemmes i
>> en database, vil logikken være den samme uanset, hvordan din request
>> sendes.
>
> Nej, absolut ikke...

Kan vi blive enige om at en HTTP request (groft) er det samme uanset,
hvordan den submittes?

> Hvis du kun får sortering fra 1 produkt, så skal du lave 3 opkald til
> databasen.

Jeg forstår stadig ikke, hvad din pointe er, men jeg vil naturligvis
gerne forstå den, hvis du sidder og gemmer på en genial løsning på
problemet ;)

Foreslår du, at 'logikken' laves client side i javascript, hvorefter man
submitter sorteringen for /alle/ rækker, som så opdateres i databasen
med ét kald?

--
Peter Farsinsen
fornavn@efternavn.dk

Martin (27-10-2009)
Kommentar
Fra : Martin


Dato : 27-10-09 14:14

Peter Farsinsen wrote:
> Martin wrote:
>> Peter Farsinsen wrote:
>>>> Hvis man bruger javascript / ajax, så er det meget nemmere at få alle
>>>> produkter/sider/you.name.it i den korrekte rækkefølge - så slipper man
>>>> for 3 database queries :)
>>> Jeg har lidt svært ved at se relevansen? Ja, hvis du vil flytte en række
>>> uden at gemme ændringen, så fint nok, men hvis ændringen skal gemmes i
>>> en database, vil logikken være den samme uanset, hvordan din request
>>> sendes.
>>
>> Nej, absolut ikke...
>
> Kan vi blive enige om at en HTTP request (groft) er det samme uanset,
> hvordan den submittes?

Jo, men mere hvor meget der submittes - med pile op og ned, så submittes
der 1 produkt, og 1 sortering - så er det serverside sproget der skal
finde ud af hvordan en del af de andre produkter skal sorteres, og
opdateres i databasen.

>
>> Hvis du kun får sortering fra 1 produkt, så skal du lave 3 opkald til
>> databasen.
>
> Jeg forstår stadig ikke, hvad din pointe er, men jeg vil naturligvis
> gerne forstå den, hvis du sidder og gemmer på en genial løsning på
> problemet ;)

Altså hvis det kun drejer sig om 1-5 produkter, så er det egentlig lige
meget, men jeg har prøvet at sidde med en liste på 200+ produkter hvor
der kun var op og ned pil - og det tog LANG TID, så jeg lavede hurtigt
et plugin til firefox, som gjorde det af sig selv (der var ikke mulighed
for nogle javascript løsning desværre)

>
> Foreslår du, at 'logikken' laves client side i javascript, hvorefter man
> submitter sorteringen for /alle/ rækker, som så opdateres i databasen
> med ét kald?

Nemlig! - 1 kald med alle produkter og sorteringer på 1 gang, så kan der
laves 1 update query og vupti så er alt opdateret.

Peter Farsinsen (27-10-2009)
Kommentar
Fra : Peter Farsinsen


Dato : 27-10-09 14:35

Martin wrote:
>>> Nej, absolut ikke...
>>
>> Kan vi blive enige om at en HTTP request (groft) er det samme uanset,
>> hvordan den submittes?
>
> Jo, men mere hvor meget der submittes - med pile op og ned, så submittes
> der 1 produkt, og 1 sortering - så er det serverside sproget der skal
> finde ud af hvordan en del af de andre produkter skal sorteres, og
> opdateres i databasen.

Godt så. Jeg er enig med dig i at drag n' drop nok er en mere langsigtet
løsning, men OP har meget eksplicit ønsket pile, hvorfor jeg forholdt
mig til det.

>> Foreslår du, at 'logikken' laves client side i javascript, hvorefter
>> man submitter sorteringen for /alle/ rækker, som så opdateres i
>> databasen med ét kald?
>
> Nemlig! - 1 kald med alle produkter og sorteringer på 1 gang, så kan der
> laves 1 update query og vupti så er alt opdateret.

Lad os nu forestille og, at der er tale om mange rækker - f.eks. 20.000.
Din løsning vil kun virke, hvis der postes et id (eller lign.) for alle
rækker - altså 20.000 i eksemplet.

På et eller andet tidspunkt tror jeg, kurven knækker, så det er
hurtigere at lave to-tre queries end at loope et gigantisk array igennem
og konkatenere stumperne sammen til en gigantisk query.

Jeg har ikke tænkt mig at lave benchmarks, men feel free... ;)

--
Peter Farsinsen
fornavn@efternavn.dk

Leif Neland (27-10-2009)
Kommentar
Fra : Leif Neland


Dato : 27-10-09 20:28

Peter Farsinsen skrev:

>
> Godt så. Jeg er enig med dig i at drag n' drop nok er en mere langsigtet
> løsning, men OP har meget eksplicit ønsket pile, hvorfor jeg forholdt
> mig til det.
>

Det skader ikke at komme med et bedre forslag end det, "kunden" har
tænkt på. Måske ved "kunden" slet ikke at man kan lave drag 'n' drop.

>
> Lad os nu forestille og, at der er tale om mange rækker - f.eks. 20.000.
> Din løsning vil kun virke, hvis der postes et id (eller lign.) for alle
> rækker - altså 20.000 i eksemplet.
>

Antallet af rækker, der skal håndteres, er nok begrænset af hvad der kan
være på en skærm.
Jeg vil *meget nødig* skulle sortere 20.000 rækker i hånden.


Leif

Søg
Reklame
Statistik
Spørgsmål : 177449
Tips : 31962
Nyheder : 719565
Indlæg : 6408125
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste