Order By werkt niet helemaal correct.
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:
Code (php)
1
2
2
$postquery = "SELECT * FROM Slider WHERE Locatie = 1 ORDER BY 'volgorde' ASC";
$indexslider = $pdo->query($postquery);
$indexslider = $pdo->query($postquery);
index.php
Code (php)
1
2
3
2
3
<? while ($row = $indexslider->fetch()): ?>
<img src="images/Slider/<? echo htmlspecialchars($row['photo_name'])?>" alt="<? echo htmlspecialchars($row['Bericht'])?>" />
<? endwhile; ?>
<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:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
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
`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
Gewijzigd op 04/08/2014 22:25:42 door Jaimy A
Wellicht zit het in je javascript?
Het heeft ervoor altijd perfect gewerkt tot ik overstape naar PDO :/
Wat is het resultaat van de query? Kijk dus even wat de print_r() geeft.
moeten er wel '' om je 'volgorde'?
weergeeft :
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Array (
[id] => 17 [0] => 17 [photo_name] => 1.jpg [1] => 1.jpg [Bericht] => Een kijkje in onze vernieuwde winkel! [2] => Een kijkje in onze vernieuwde winkel! [Locatie] => 1 [3] => 1 [volgorde] => 1 [4] => 1 )
Array ([id] => 18 [0] => 18 [photo_name] => 2.jpg [1] => 2.jpg [Bericht] => Meer ruimte om al onze modellen makkelijker te bekijken. [2] => Meer ruimte om al onze modellen makkelijker te bekijken. [Locatie] => 1 [3] => 1 [volgorde] => 2 [4] => 2 )
Array ( [id] => 19 [0] => 19 [photo_name] => 3.jpg [1] => 3.jpg [Bericht] => Alle ruimtes worden optimaal benut. [2] => Alle ruimtes worden optimaal benut. [Locatie] => 1 [3] => 1 [volgorde] => 3 [4] => 3 )
Array ( [id] => 20 [0] => 20 [photo_name] => 4.jpg [1] => 4.jpg [Bericht] => Een nieuwe en overzichtelijkere kleding hoek! [2] => Een nieuwe en overzichtelijkere kleding hoek! [Locatie] => 1 [3] => 1 [volgorde] => 4 [4] => 4 )
Array ( [id] => 21 [0] => 21 [photo_name] => 5.jpg [1] => 5.jpg [Bericht] => Heb jij al een project one fiets? Stel hem nu samen! [2] => Heb jij al een project one fiets? Stel hem nu samen! [Locatie] => 1 [3] => 1 [volgorde] => 5 [4] => 5 )
Array ( [id] => 22 [0] => 22 [photo_name] => 6.jpg [1] => 6.jpg [Bericht] => De Rolls Royce onder de fietsen... Koga! [2] => De Rolls Royce onder de fietsen... Koga! [Locatie] => 1 [3] => 1 [volgorde] => 6 [4] => 6 )
Array ( [id] => 23 [0] => 23 [photo_name] => 7.jpg [1] => 7.jpg [Bericht] => Een breed gamma aan kinder fietsen! [2] => Een breed gamma aan kinder fietsen! [Locatie] => 1 [3] => 1 [volgorde] => 7 [4] => 7 )
Array ( [id] => 24 [0] => 24 [photo_name] => 8.jpg [1] => 8.jpg [Bericht] => Voor kwaliteits volle koersfietsen het juiste adres! [2] => Voor kwaliteits volle koersfietsen het juiste adres! [Locatie] => 1 [3] => 1 [volgorde] => 8 [4] => 8 )
Array ( [id] => 25 [0] => 25 [photo_name] => 9.jpg [1] => 9.jpg [Bericht] => Een vernieuwde kassa om U optimaal van dienst te zijn! [2] => Een vernieuwde kassa om U optimaal van dienst te zijn! [Locatie] => 1 [3] => 1 [volgorde] => 9 [4] => 9 )
[id] => 17 [0] => 17 [photo_name] => 1.jpg [1] => 1.jpg [Bericht] => Een kijkje in onze vernieuwde winkel! [2] => Een kijkje in onze vernieuwde winkel! [Locatie] => 1 [3] => 1 [volgorde] => 1 [4] => 1 )
Array ([id] => 18 [0] => 18 [photo_name] => 2.jpg [1] => 2.jpg [Bericht] => Meer ruimte om al onze modellen makkelijker te bekijken. [2] => Meer ruimte om al onze modellen makkelijker te bekijken. [Locatie] => 1 [3] => 1 [volgorde] => 2 [4] => 2 )
Array ( [id] => 19 [0] => 19 [photo_name] => 3.jpg [1] => 3.jpg [Bericht] => Alle ruimtes worden optimaal benut. [2] => Alle ruimtes worden optimaal benut. [Locatie] => 1 [3] => 1 [volgorde] => 3 [4] => 3 )
Array ( [id] => 20 [0] => 20 [photo_name] => 4.jpg [1] => 4.jpg [Bericht] => Een nieuwe en overzichtelijkere kleding hoek! [2] => Een nieuwe en overzichtelijkere kleding hoek! [Locatie] => 1 [3] => 1 [volgorde] => 4 [4] => 4 )
Array ( [id] => 21 [0] => 21 [photo_name] => 5.jpg [1] => 5.jpg [Bericht] => Heb jij al een project one fiets? Stel hem nu samen! [2] => Heb jij al een project one fiets? Stel hem nu samen! [Locatie] => 1 [3] => 1 [volgorde] => 5 [4] => 5 )
Array ( [id] => 22 [0] => 22 [photo_name] => 6.jpg [1] => 6.jpg [Bericht] => De Rolls Royce onder de fietsen... Koga! [2] => De Rolls Royce onder de fietsen... Koga! [Locatie] => 1 [3] => 1 [volgorde] => 6 [4] => 6 )
Array ( [id] => 23 [0] => 23 [photo_name] => 7.jpg [1] => 7.jpg [Bericht] => Een breed gamma aan kinder fietsen! [2] => Een breed gamma aan kinder fietsen! [Locatie] => 1 [3] => 1 [volgorde] => 7 [4] => 7 )
Array ( [id] => 24 [0] => 24 [photo_name] => 8.jpg [1] => 8.jpg [Bericht] => Voor kwaliteits volle koersfietsen het juiste adres! [2] => Voor kwaliteits volle koersfietsen het juiste adres! [Locatie] => 1 [3] => 1 [volgorde] => 8 [4] => 8 )
Array ( [id] => 25 [0] => 25 [photo_name] => 9.jpg [1] => 9.jpg [Bericht] => Een vernieuwde kassa om U optimaal van dienst te zijn! [2] => Een vernieuwde kassa om U optimaal van dienst te zijn! [Locatie] => 1 [3] => 1 [volgorde] => 9 [4] => 9 )
Volgens deze print zou het oke moeten zijn maar wanneer ik mijn pagina een paar keer vernieuw (f5) dan krijg ik telkens een andere foto voorraan en dat had ik niet voor ik naar pdo overschakelde
Gewijzigd op 03/08/2014 12:23:01 door Jaimy A
Op welke pagina (online liefst) staat dit?
@Eddy E
Website:
http://tinyurl.com/lr7oudg
Dit is de juiste volgorde:
Slider:
http://www.menucool.com/javascript-image-slider
Als je de pagina vernieuwt komt er telkens een andere afbeelding wel in volgorde maar niet vanaf afbeelding 1
Gewijzigd op 03/08/2014 12:57:57 door Jaimy A
Zo te zien staat het JavaScript voor de eerste slide in de slider op random/shuffle.
De topic dat je laat zien "Is it possible to start the slider on a particular slide?" Gaat over het het feit dat iemand de slides random wilt laten zien dus 1ste bezoek krijg je afbeelding 1 , en volgende keer dat je de pagina bezoek een andere afbeelding, een beetje zoals ik nu heb maar niet wil.
@Ward van der put
Instellingen staan toch niet op random/schuffle ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var sliderOptions =
{
sliderId: "slider",
startSlide: 1, <- nummer waar te starten, slide of shuffel zoals je zelf wenst te gebruiken
effect: "series1",
effectRandom: false,
pauseTime: 2500,
transitionTime: 500,
slices: 14,
boxes: 8,
hoverPause: 1,
autoAdvance: true,
captionOpacity: 0.3,
captionEffect: "fade",
thumbnailsWrapperId: "thumbs",
m: false,
license: "b2e98"
};
{
sliderId: "slider",
startSlide: 1, <- nummer waar te starten, slide of shuffel zoals je zelf wenst te gebruiken
effect: "series1",
effectRandom: false,
pauseTime: 2500,
transitionTime: 500,
slices: 14,
boxes: 8,
hoverPause: 1,
autoAdvance: true,
captionOpacity: 0.3,
captionEffect: "fade",
thumbnailsWrapperId: "thumbs",
m: false,
license: "b2e98"
};
Gewijzigd op 03/08/2014 13:38:27 door Jaimy A
Je ziet daar trouwens ook dat het javascript idd niet random is.
Je php output lijkt toch niet in de juiste volgorde te zijn.
Gewijzigd op 03/08/2014 13:48:03 door N K
@N_K beetje meer uitleg aub ben er allemaal nogal beginnend in :D
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 ' ' ' '
Of mis ik iets?
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?
Toevoeging op 03/08/2014 16:19:56:
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 ;-)
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.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
CREATE TABLE `tabel` (
`id` INT(11) NULL DEFAULT NULL
)
ENGINE=InnoDB;
INSERT INTO tabel (id) VALUES (100), (50), (90);
SELECT * FROM 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.
In ieder geval niet voor een zichzelf respecterende database ontwerper.