login  Naam:   Wachtwoord: 
Registreer je!
 Forum

array van database naar oplopende id

Offline lau - 05/09/2008 18:14
Avatar van lauHTML interesse Hoe kan ik van een een bepaalde unieke id vanuit een database opnieuw rangschikken in een array zodat ik altijd 1,2,3,4,5 etc krijg?
Dus dat bijvoorbeeld unieke_id = 5 uiteindelijk nummer 2 is in een array.

14 antwoorden

Gesponsorde links
Offline Stijn - 05/09/2008 18:21
Avatar van Stijn PHP expert Doe het meteen in je SQL.

  1. ... ORDER BY unieke_id ASC
Offline lau - 05/09/2008 18:22 (laatste wijziging 05/09/2008 18:23)
Avatar van lau HTML interesse nee... ik bedoelde niet ordenen op id, dat kan ik wel.
Maar ik wil van de foto's met unieke_id uit album 2 opnieuw rangschikken met oplopende nummers.
Dat ik uiteindelijk niet met de unieke_id's werk, maar met de nieuwe oplopende nummers
Offline timmie_loots - 05/09/2008 18:44
Avatar van timmie_loots PHP gevorderde Je geeft totaal geen informatie over hoe je database in elkaar zit, of hoe je script in elkaar zit. Mijn glazen bol heb ik weggebracht ter reparatie, dus ik stel voor dat je zelf even komt met die info.
Offline lau - 05/09/2008 18:49
Avatar van lau HTML interesse Database informatie heb ik toch al gegeven.
Bovendien is dit maar 1 onderdeel uit een heel foto album.

  1. <?php
  2. $objA = mysql_fetch_object(mysql_query("SELECT id FROM fotos WHERE album = ".$_GET['album'])." ORDER BY id ASC");
  3. $nummer = array($objA->id);
  4. echo $nummer;
  5. ?>


Nouja.. dit is het dus niet. Ik moet dus oplopende nummers hebben en geen unieke ids
Offline timmie_loots - 05/09/2008 19:05
Avatar van timmie_loots PHP gevorderde Als ik het dus goed begrijp haal je foto's uit een album. Bij die foto's wil je een nummer laten zien, maar niet het id gebruiken omdat die niet oplopend is per album.

Gaat het dan om een overzicht per album, of wil je als je een specifieke foto bekijkt het nummer ook terugvinden?

Het eerste is natuurlijk makkelijk te realiseren door zelf een variabele bij te houden. Zoiets:

  1. <?php
  2.  
  3. $nummer = 1;
  4.  
  5. while ($foto = mysql_fetch_object($query)) {
  6.  
  7. echo $i++;
  8. }
  9.  
  10. ?>


Wil je het ook bij een specifieke foto weergeven, dan zul je het op een andere manier moeten doen. Dan zou ik per foto een extra veld maken waarin je de plek opslaat, en deze updaten als je foto's binnen een album wilt verplaatsen. Je kunt dan gewoon het nummer printen wat in de database staat.
Offline lau - 05/09/2008 20:15
Avatar van lau HTML interesse Het is eigenlijk zo.
Ik haal nu alle id's op van dat album en geeft ze dan weer in een overzicht (9 per pagina). Als ik een groot formaat wil, klik ik erop. Nu doe ik dat nog aan de hand van de id's. Maar dat geeft conflicten met een volgende/vorige systeem.
Stel dat ik nu alle foto's orden, dan kan ik simpel -1 of +1 gebruiken voor een vorige of volgende foto. Ik moet uiteindelijk wel terugvinden welk unieke id hoort bij welk nummer.

Offline HannaH - 05/09/2008 20:33 (laatste wijziging 05/09/2008 20:33)
Avatar van HannaH MySQL interesse Misschien makkelijk als je én een id én en nummer hebt in je db

je id -> root naar je pic
je nr -> die sort je maar (en navigeer je maar)
Offline timmie_loots - 05/09/2008 20:59
Avatar van timmie_loots PHP gevorderde
lau schreef:
Het is eigenlijk zo.
Ik haal nu alle id's op van dat album en geeft ze dan weer in een overzicht (9 per pagina). Als ik een groot formaat wil, klik ik erop. Nu doe ik dat nog aan de hand van de id's. Maar dat geeft conflicten met een volgende/vorige systeem.
Stel dat ik nu alle foto's orden, dan kan ik simpel -1 of +1 gebruiken voor een vorige of volgende foto. Ik moet uiteindelijk wel terugvinden welk unieke id hoort bij welk nummer.


Gewoon een extra veld met daarin een nummer, dan kun je aan de hand van albumid/fotonummer gewoon de goede foto selecteren. Ga daar eens mee aan de slag, en kom terug als dat niet lukt.

Offline lau - 05/09/2008 21:13
Avatar van lau HTML interesse Jah.. dat kan ik wel, maar dat wou ik nou precies vermijden. Ik dacht dat het ook zo zou kunnen. Want nu moet ik weer een volgorde reeks gaan aanbrengen wat dus ook weer wat aanpassen moet in mijn code. Afijn.
Offline timmie_loots - 05/09/2008 21:15
Avatar van timmie_loots PHP gevorderde Het kan ook zonder, maar het is een erg makkelijke oplossing. Zeker als je later bijvoorbeeld besluit om een mogelijkheid toe te voegen om binnen een album foto's te verplaatsen. Dan moet je het wel op deze manier doen.
Offline lau - 05/09/2008 21:17
Avatar van lau HTML interesse Ah jah, maar ik heb zowieso geen optie ingevoegd om foto's te rangschikken. Het moet eigenlijk juist willekeurig zijn, maar het is wel zo fijn om even orde te hebben bij het weergeven van de grote foto.
Maar goed, ik verzin wel iets.
Offline Kr4nKz1n - 05/09/2008 23:55
Avatar van Kr4nKz1n Onbekend Je kan beter een functie schrijven die het vorige of volgende unieke_id pakt.

Je zou bij elke verwijder actie van een foto weer alles opnieuw moeten ordenen.

Ik zelf heb niet zo snel een oplossing hier voor. Misschien iets van:

  1. function PreviousNext($iId, $sDirection)
  2. {
  3. Switch($sDirection)
  4. {
  5. Case 'previous':
  6. Mysql_Query("SELECT unieke_id FROM fotos WHERE unieke_id<".$iId." AND album=".Mysql_Real_Escape_String($_GET['album'])." ORDER BY unieke_id DESC LIMIT 0,1");
  7. Break;
  8. Case 'next':
  9. Mysql_Query("SELECT unieke_id FROM fotos WHERE unieke_id>".$iId." AND album=".Mysql_Real_Escape_String($_GET['album'])." ORDER BY unieke_id ASC LIMIT 0,1");
  10. Break;
  11. }
  12. }


Zoiets denk ik.
Offline lau - 06/09/2008 00:25
Avatar van lau HTML interesse Jah, dat heb ik ook al geprobeerd en bovendien gebruik ik nu zo'n format in plaats van dat andere (array dus). Maar het probleem hiervan is natuurlijk dat je vorige en volgende knoppen altijd zichtbaar zijn, ook als je een eerste of laatste foto hebt. Maar dat heb ik ondertussen via een workaround weggewerkt.
Offline Kr4nKz1n - 06/09/2008 00:29
Avatar van Kr4nKz1n Onbekend Tja dat vorige en volgende kan je ook weer weg werken natuurlijk!
Paar controles uitvoeren.

Ze zeggen wel eens, en ik citeer: Het programmeren gaat niet altijd over rozen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.193s