hey allemaal,

Ik ben bezig met mijn website te update naar PDO.
Nu ben ik echter op een probleem gebotst

Ik heb een foto slider op mijn startpagina staan, deze foto's worden gesorteerd onder de noemer "Volgorde".
Waardoor ik kan bepalen welke foto er eerst mag getoond worden in mijn foto slider.

Nu het probleem is dat met PDO mijn foto slider niet meer naar mijn "ORDER BY" functie kijkt en de foto's wel in volgorde afspeelt maar niet begint met nummer 1 maar willekeurig kiest op welke nummer deze begint (bijvoorbeeld: begint op nummer 6 en dan 7, 8 ,9 .. )

Sqlpost:
$postquery = "SELECT * FROM Slider WHERE Locatie = 1 ORDER BY 'volgorde' ASC"; 
$indexslider = $pdo->query($postquery);


index.php
<? while ($row = $indexslider->fetch()): ?>           
	<img src="images/Slider/<? echo htmlspecialchars($row['photo_name'])?>" alt="<? echo htmlspecialchars($row['Bericht'])?>" />
<? endwhile; ?>  


UPDATE: 4/08/2014 (22:17)
Hieronder opnieuw mijn vraag maar (hopelijk) beter geformuleerd.

Dit is mijn structuur dat ik probeer te bekomen:


Voorbeeld van slider: (Bij het drukken op F5 wordt er telkens een andere foto als nummer 1 weergeven dit moet altijd dezelfde zijn.
Originele pagina: http://tinyurl.com/lr7oudg
Enkel slider pagina: http://tinyurl.com/o5u3x2a


Dit is de slider dat ik gebruik (Source code)
http://www.menucool.com/javascript-image-slider

Mijn orginele SQL tabel:
CREATE TABLE `Slider` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `photo_name` varchar(200) NOT NULL,
  `Bericht` varchar(200) NOT NULL,
  `Locatie` int(200) NOT NULL,
  `volgorde` int(200) NOT NULL,
  PRIMARY KEY (`id`),
  FULLTEXT KEY `photo_name` (`photo_name`)
) ENGINE=MyISAM AUTO_INCREMENT=51 DEFAULT CHARSET=latin1
Als ik naar je DOM kijk zijn je images random weggeschreven.
Je ziet daar trouwens ook dat het javascript idd niet random is.
Je php output lijkt toch niet in de juiste volgorde te zijn.

@N_K beetje meer uitleg aub ben er allemaal nogal beginnend in :D
ORDER BY 'volgorde' ASC

Je sorteert toch echt op de string die begint met v en eindigt met e

Dat is gelijk voor elke row die je vindt, dus je sorteert feitelijk niet.

Als het om de inhoud van een kolom, dan vermeld je die kolomnaam zonder quotes er omheen. Hooguit gebruik je nog backticks, ````` en dus niet ' ' ' '

@Ivo P.: Hij lijkt daarentegen wel te sorteren. Kijk naar print_r ($row) bovenaan.
Of mis ik iets?
Je sorteert niet. Punt.

De resultaten komen er natuurlijk wel in een bepaalde volgorde uit. Dat geldt ook voor een lotto machine.

Hoogst waarschijnlijk treft mysql de resultaten aan op de volgorde van invoeren. Zo te zien is die gelijk aan de inhoud van de kolom `volgorde` Maar oom gelijk aan de naamgeving van de plaatjes. Mag ik dan stellen dat je op de naam van de plaatjes hebt gesorteerd?

[size=xsmall]Toevoeging op 03/08/2014 16:19:56:[/size]

Mysql is wel zo lui om, als jij niets naders opgeeft, de resultaten in volgorde vanaantreffen uit te spugen
@Ivo P kun je dan uitleggen waarom ik + mysql niet sorteert ? anders wordt het wel heel vaag ;-)
Je sorteert op een string, omdat je quotes gebruikt.

Dus ipv dat je zegt: "sorteer op de inhoud van kolom Volgorde", zeg jij: "sorteer op de waarde x, waarbij x gelijk is voor elk record." (En toevallig dan ook nog gelijk aan de naam van een kolom)

vervang ORDER BY 'volgorde' maar eens door ORDER BY 'FIETS'

Werkt net zo goed en net zo zinloos.
]geen quotes om kolomnamen zetten
Ivo P op 03/08/2014 16:16:58

Mysql is wel zo lui om, als jij niets naders opgeeft, de resultaten in volgorde vanaantreffen uit te spugen

Anders gezegd, er wordt standaard gesorteerd op de primary key.

CREATE TABLE `tabel` (
	`id` INT(11) NULL DEFAULT NULL
)
ENGINE=InnoDB;

INSERT INTO tabel (id) VALUES (100), (50), (90);
SELECT * FROM tabel;


levert op:

100
50
90

volgorde van invoeren dus.

Zonder PK wel ja, maar jij weet net zo goed als ik dat een tabel zonder PK geen recht van bestaan heeft.
In ieder geval niet voor een zichzelf respecterende database ontwerper.

Reageren