Avatar billede webweaver Praktikant
05. maj 2007 - 22:13 Der er 10 kommentarer og
1 løsning

Lægge 1 til variabel driller

Godaften proffer.

Jeg sidder med et CMS News System.
Det skal virke sådan at kunden kan vælge rækkefølge på visning af nyhederne, og derfor skal artiklerne have et "sortering's nummer". Det driller mig dog umiddelbart.

Jeg har jo bare min variabel $sort, og jeg kører en while..
Og så bruger jeg ++$sort; .. Og det virker også ganske fint, med at den lægger 1 til hver nye nyhed, indtil jeg når til 10, så bliver den ved med at skrive 10, i stedet for 11, 12 .. osv ...

Hvad er det jeg overser?

På forhånd tak :)

Mvh. Lasse Jensen
Avatar billede nyhuus Nybegynder
05. maj 2007 - 23:05 #1
hmm ++$sort, troede ik det virkede prøv med $sort++;
Avatar billede plx Nybegynder
05. maj 2007 - 23:35 #2
Prøv at vis kode,

Når $sort står alene, er der ingen forskel på ++$sort og $sort++
Avatar billede webweaver Praktikant
05. maj 2007 - 23:55 #3
Jo der er en forskel.

Hvis du bruger $sort++ virker det slet ikke ;)

Men der er jo også en forskel på at placere ++ før eller efter variablen, da man ved at have ++ foran variablen ligger 1 til først, og derfor sender variablen til browseren, og ved at have dem bag variablen, sender den først til browseren, og derefter lægger 1 til.

Men I får lige noget kode :)
http://www.webweaver.dk/news.phps

På forhånd tak :)

Mvh. Lasse Jensen
Avatar billede erikjacobsen Ekspert
06. maj 2007 - 01:22 #4
Ikke

$sort = ++$sort;

Kun

  ++$sort;

eller

  $sort++;

eller

  $sort = $sort + 1;

eller

  $sort += 1;
Avatar billede erikjacobsen Ekspert
06. maj 2007 - 01:26 #5
Jeg forstår ikke din

$query = mysql_query("SELECT sort FROM News ORDER BY sort ASC") or die(mysql_error());
while ($data = mysql_fetch_array($query)) {
$sort = $data['sort'];
}

Du læser alle rækker i tabellen News, og for hver række **overskriver** du $sort, så du ender op med den sidste værdi du læser. Enten er det ikke hvad du mener, eller også laver du noget meget ineffektivt.

Det med at den "stopper" ved 10 må du forklare lidt bedre.
Avatar billede webweaver Praktikant
06. maj 2007 - 01:59 #6
Altså jeg skal sådan set bare bruge det sidste nye tal i cellen "sort". Kunne godt sætte en limit på hvis det var det.

Jeg kunne muligvis godt skrotte min while hvis det var?

Okay jeg prøver så igen :) Når man tilføjer en nyhed, får den automatisk et tal. Hvis det er den første nyhed i systemet, så får den nummer 1. Hvis det er nummer 2, får den nummer 2 og så videre.. Men hvis man så skriver nummer 11 nyhed, så virker det med tallene ikke længere. Så burde den få tallet 11, men den får bare 10. Den vil ikke gå længere op end 10.

Forstår ikke rigtig hvorfor?
Avatar billede plx Nybegynder
06. maj 2007 - 02:16 #7
Dit felt type er en string, dvs den sorterer ikke numerisk, i stedet for dette:

1
2
...
8
9
10

får du dette:

1
10
2
...
8
9

og da du altid trækker sidste række ud, så kommer du aldrig højere end 10.

Man bruger normalt et autogenereret id til sådan noget.
Avatar billede webweaver Praktikant
06. maj 2007 - 02:18 #8
Nå men problemet med tallene, blev løst ved at skifte $sort = ++$sort ud med bare ++$sort.

Men hvorfor virkede det andet ikke?

Men tak for svaret Erik og Jer andre. Erik smid et svar, så du kan få dine point :)

Mvh. Lasse Jensen
Avatar billede webweaver Praktikant
06. maj 2007 - 02:21 #9
Hej plx.

Ja jeg har allerede en id, men det bliver brugt til andet.
og problemet med en autogenereret id er, at hvis jeg sletter en nyhed, så kommer der et "hul" i tallene, da den stadig vil fortsætte med at tælle derfra hvor den var nået til, så tallene så måske ville gå 3 4 5 7 8 ... Efter man havde slettet nyhed nummer 6. Dermed ville det sorterings system jeg havde i tankerne ikke virke.
Avatar billede erikjacobsen Ekspert
06. maj 2007 - 09:03 #10
Jeg samler slet ikke på point, tak.
Avatar billede webweaver Praktikant
06. maj 2007 - 09:48 #11
Okay ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester