Sortierung
Jochen
- php
0 LX
Schönen guten morgen euch allen,
ich komme an einer Stelle leider nicht mehr weiter. Habe folgenden Code:
<script type="text/javascript">
<!--
var updater, updateInterval;
window.addEvent('domready', function()
{
var mySlide2 = new Fx.Slide('dropzone', {mode: 'horizontal'});
updater = new Request.HTML({
url: '/inc/t1.php',
update: $('dropzone'),
evalScripts : 'true',
onSuccess: function(responseText, responseXML){ mySlide2.slideIn(); } }).send();
updateInterval = function() {
$('dropzone').empty();
this.send();
};
updateInterval.periodical(8000, updater);
});
-->
</script>
<div id="dropzone" style="min-height:336px;">
<?php include("inc/t1.php")?>
</div>
Meine t1.php sieht aktuell so aus:
<?php
$mysql_host = "localhost";
$mysql_db = "xxx";
$mysql_user = "xxx";
$mysql_password = "xxx";
$status = @mysql_connect($mysql_host, $mysql_user, $mysql_password);
if (! $status)
{
die("Fehler[1]: folgende Datenbank [".$mysql_db."] konnte nicht gefunden werden!");
}
$db_titel = @mysql_select_db($mysql_db);
if (! $db_titel)
{
die("Fehler[3]: fehlerhafte Zugangsdaten in der config.php! Bitte vergewissern Sie sich das Sie die benötigten Rechte für folgende Datenbank besitzen: [".$mysql_db."]".mysql_error());
}
$rd = "SELECT * FROM
(SELECT jos_content.* FROM jos_content_frontpage
LEFT JOIN jos_content ON jos_content.id = jos_content_frontpage.content_id
WHERE jos_content.state = '1'
ORDER BY jos_content_frontpage.ordering LIMIT 0, 10) AS tab
ORDER BY RAND() Limit 1";
$r = mysql_query($rd);
echo mysql_error();
while ($e = mysql_fetch_array($r))
{
//print_r($e);
?>
<div style=" height:336px; overflow:hidden;"><?= utf8_encode($e["introtext"]);?></div>
<?php
}
?>
soweit klappt das auch schon alles nur ich würde das ganze gerne etwas erweitern und zwar, dass ich kein RAND() drin habe, denn mit Rand lass ich das ganze per Zufall ausgeben, er soll es mir die Ausgabe sortieren und zwar in der Spalte jos_content_frontpage.ordering stehen Zahlen z.B. 3,5,1,2 usw.. so ich möchte gerne dass es bei 1 beginnt und dann einfach alle zahlen durchgeht wenn er alle durch hat, dann wieder bei 1 beginnen und das immer wenn man die Seite neu aufruft. Ich hoffe ihr versteht was ich meine.
Hier komme ich einfach nicht weiter! Danke schon mal für eure Hilfe.
Gruß,
Jochen
Hallo!
Zunächst einmal möchte ich sicherstellen, dass ich Dich auch korrekt verstanden habe: Du möchtest Deine Ausgabewerte so sortieren, dass die Ordnungszahl fortlaufend mit Überlauf ist, also '1,2,...,10,1,...'.
SQL hat meines Wissens keine direkte Möglichkeit, eine derartige Sortierung am Stück durchzunehmen. Du wirst die weitere Sortierung also voraussichtlich PHP-seitig bewerkstelligen.
Der einfachste Weg dazu besteht darin, sich erst einmal alle Ergebnisse nach Ordnungszahlen getrennt ausgeben zu lassen und dann in ein Array zusammenzufügen.
Gruß, LX