|
| 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> </td>";
if ($nr) echo "<td><input type='submit' name='up$nr' value='Op'></td>";
else echo "<td> </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
| |
|
|