ERLEDIGT
JA
JA
ANTWORTEN
31
31
ZUGRIFFE
8238
8238
EMPFEHLEN
-
Hallo liebe Tutorials.de-Gemeinde!
Da ich zurzeit eine Webseite für einen DJ mit PHP realisiere, bin ich auf ein, für mich jedenfalls, sehr interessantes Thema gestoßen.
Ebenjener DJ möchte gerne "monthly charts" auf seiner Seite haben, seine liebsten Stücke, und die in Form einer Charts-Tabelle präsentieren. Ich denke, sowas hat bestimmt schon jeder auf VIVA.TV oder ähnlichem gesehen.
Anfänglich wollte ich das einfach mit einem 20 mal 2 Inputfelder-Formular lösen, halt 20 Plätze und jeweils eins für den Rang und eins für das Lied. Anschließend hätte ich die Einträge dann sortiert nach Rang ausgegeben.
Ich halte das jedoch für eine "gefrickelte" Lösung, ein krummes Hinbiegen. Zudem weiß ich auch nicht, wie sich so eine Chart-Tabelle wie auf Viva generiert, also, wie das z.b. gemacht wird, dass die Vorwoche im Vergleich berechnet wird usw.
Kann mir da mal einer das System erklären? Und vielleicht, wenn er schon was kennt, ein wenig Code posten? Google und die Forensuche haben mich nur eine unnütze halbe Stunde gekostet.
Aber auch einfach eine Anregung, eine Idee zur Vorgehensweise wäre super
Ziel ist es, dem DJ später über ein Formular (in welcher Form auch immer) die Möglichkeit zu geben, unkompliziert und ohne großen Aufwand seine Charts aktuell zu halten.
Bis hier hin erst einmal ein "Danke" für das lesen meines Threads
Thread frei!
-
Hallo.
Du kannst doch ne ganz normale Tabelle erstellen.
Und die füllt dann der DJ mit den Daten.
Und über ein Formular kann er die dann immer beliebig ändern?!
Ich würde es mir nicht so schwer machen.
//Kne
-
Ich koennte mir das so vorstellen:
Bei weniger als 20 bestehenden Eintraegen wird bis 20 mit Input-Feldern aufgefuellt.
Bestehende Eintraege koennen einfach hoch und runter geschoben werden und natuerlich auch editiert werden.PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
Die Idee hatte ich ja schon... Je mehr Gedanken ich mir mache, desto mehr fallen mir Gründe ein, die gegen eine andere Lösung sprechen...
Zitat von kne
Das auffüllen ist ne super Idee. Hätte ich garnicht dran gedacht *hihi* Einziger Knackpunkt deiner Lösung: Hab über das "verschieben" von Positionen schon öfter mal geknobelt, hab aber leider nie auch nur ansatzweise eine Idee gehabt, wie ich das lösen soll. Mein Problem wäre dabei: wenn ich Platz 1 runterschiebe, dann hab ich Platz 2 doppelt. Also muss ich dafür sorgen, dass Platz 2 hochgeschoben wird. Und da hörts dann auch schon auf, weil ich nicht weiß, wo und wie ich da anfangen soll. Wahrscheinlich ist die Lösung aber sooo einfach, dass ich einfach nicht drauf komme, wie damals mit "<font color:"black"> funktioniert nicht, warum?" Schäme mich heute noch für den Doppelpunkt
Zitat von Dennis Wronka
-
Ich schau mal nach, vielleicht hab ich fuer die Verschieberei irgendwo ein Beispiel rumfliegen.
PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
Mach das ganze nicht mit 1, 2, 3, 4 usw, sondern mit einer Extraspalte (hier: chart_order) in der 10, 20, 30, 40, usw. steht.
Wenn du dann sagt, gehe von Platz 1 auf 2, zählst du zum Platz 1 (1 = 10) einfach 15 dazu. Somit sind wir bei 25. Also 5 mehr als Platz 2. Umgekehrt natürlich 15 abziehen.
Dann kommt diese Funktion zum Einsatz.
Ich habe jetzt folgende Spalten in der Tabelle 'charts' verwendet.PHP-Code:<?
function reorder()
{
$sql = "SELECT * FROM `charts` ORDER BY chart_order ASC";
$result = mysql_query($sql) or die(mysql_error());
$i = 1;
$j = 10;
while( $row = mysql_fetch_assoc($result) )
{
$sql = "UPDATE `charts`
SET `chart_order` = ".$j.",
SET `chart_place` = ".$i."
WHERE `id` = ".$row['id'];
mysql_query($sql) or die(mysql_error());
$j += 10;
$i++;
}
}
?>
id = ID des Eintrages. bleibt immer gleich (auto_increment? !)
chart_order = Die Position in der Chartliste
chart_place = Chartplatz (Könnte man auch weglassen, wenn man nach chart_order geht, kommt man aus gleiche. Muss dann halt etwas anders bei der Ausgabe vorgehen.)
Ich hoffe, dass ich keinen Denkfehler in dem Script habe.Geändert von fanste (06.04.06 um 17:33 Uhr)
Gruß fanste
Benutze bitte immer die passende Highlight-Tags.(z.B: für PHP [php] [/php] Allgemein: [highlight=SCRIPTSPRACHE]Code[/highlight] )
Problem gelöst? Dann markiere das Thema bitte als erledigt!
Beachte bitte die Netiquette. Insbesondere Punkt 15.
-
Wenn ich nach dem Beispiel Platz 1 (10) auf Platz 2 verschiebe (10+15=25) und dann Platz 4 (40) auf Platz 3 (40-15=25) verschiebe, haben beide den Wert 25. Geht also auch nicht so richtig :/
Zitat von fanste
-
So, hier mal ein Beispiel.
Ich weiss, dass es nicht gerade das verstaendlichste Beispiel ist was jetzt moeglich waere, aber grad das einzige was ich zur Hand habe.
Auf jeden Fall sieht das so aus:Code php:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
if (($_GET['action']=="up") && (isset($_GET['chain'])) && (isset($_GET['rule']))) { $chain_copy=$fw_chain_{$chains[$_GET['chain']]}; $chain_copy[$_GET['rule']-1]=$fw_chain_{$chains[$_GET['chain']]}[$_GET['rule']]; $chain_copy[$_GET['rule']]=$fw_chain_{$chains[$_GET['chain']]}[$_GET['rule']-1]; $fw_chain_{$chains[$_GET['chain']]}=$chain_copy; unset($chain_copy); } if (($_GET['action']=="down") && (isset($_GET['chain'])) && (isset($_GET['rule']))) { $chain_copy=$fw_chain_{$chains[$_GET['chain']]}; $chain_copy[$_GET['rule']+1]=$fw_chain_{$chains[$_GET['chain']]}[$_GET['rule']]; $chain_copy[$_GET['rule']]=$fw_chain_{$chains[$_GET['chain']]}[$_GET['rule']+1]; $fw_chain_{$chains[$_GET['chain']]}=$chain_copy; unset($chain_copy); }
Du legst alle Eintraege in einem Array ab. Platz 1 hat dann Index 0, Platz 20 hat den Index 19.
Wenn nun ein Eintrag verschoben werden soll legst Du eine Kopie des Arrays an.
Soll ein Eintrag nach oben geschoben werden setzt Du in der Kopie den Eintrag $x-1 ($x ist jetzt mal der Index des zu verschiebenden Eintrages) auf den Wert in Index $x des Originalarrays und Eintrag $x setzt Du auf den Wert in Index $x-1 des Originalarrays.
Wenn nach unten verschoben werden soll ist halt $x-1 durch $x+1 zu ersetzen.
Anschliessend ueberschreibst Du den Original-Array durch die veraenderte Kopie und schon hast Du die neue Reihenfolge.PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
Doch, das geht. Nach jedem mal ändern musst du natürlich die Funktion aufrufen. Also immer die DB aktuallisieren, bevor du nen neuen Datensatz verschiebst.
So wie ich das sehe, ist es bei Dennis nicht anders. Da muss man auch nach jedem verschieben die Seite neu aufrufen.Geändert von fanste (07.04.06 um 14:49 Uhr)
Gruß fanste
Benutze bitte immer die passende Highlight-Tags.(z.B: für PHP [php] [/php] Allgemein: [highlight=SCRIPTSPRACHE]Code[/highlight] )
Problem gelöst? Dann markiere das Thema bitte als erledigt!
Beachte bitte die Netiquette. Insbesondere Punkt 15.
-
Hi Dennis
Zitat von Dennis Wronka

Deine Beschreibung habe ich verstanden und ich denke, dass ich das mit ein wenig basteln auch hinbekommen würde. Dein Codebeispiel hat mir jedoch definitiv zu viele "chains" *lach* Aber ich setz mich da mal dran
-
Das liegt daran, dass das ein Ausschnitt aus meinem Firewall-Admin-Script ist.

Aber es freut mich, dass es Dir auf die Spruenge geholfen hat.PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
Also, ich hab mich jetzt für die Version von Fanste entschieden (Sry Dennis :P ).
Jetzt hab ich aber ein Problem bei der Ausgabe: Wenn ich die Top20 habe, und dann sortieren lasse, erhalte ich ja den Rang als Zahl. Bei der Ausgabe setzt er mir aber Rang 11, 12, 13 usw VOR Rang 2, d.h. er sortiert alphabetisch. Wie krieg ichs hin, das er eine "normale" Reihenfolge einhält?Geändert von Hektik (02.05.06 um 15:04 Uhr)
-
Wie sortierst du denn? Per MySql, oder einer PHP Funktion?
Dieser Code würde bei mir richtig sortieren. (PHP Funktion)
Wenn nach Keys sortiert werden soll, musst du ksort() nehmen.PHP-Code:<?
$ar = array(23, 11, 2, 34, 10, 13, 12, 3, 5, 17);
print_r($ar);
sort($ar);
print_r($ar);
?>
Bei MySql dürfte es nicht viel anders sein.
Code sql:1
SELECT * FROM tabelle ORDER BY spalte ASC
Gruß fanste
Benutze bitte immer die passende Highlight-Tags.(z.B: für PHP [php] [/php] Allgemein: [highlight=SCRIPTSPRACHE]Code[/highlight] )
Problem gelöst? Dann markiere das Thema bitte als erledigt!
Beachte bitte die Netiquette. Insbesondere Punkt 15.
-
Die koenntest mittels sprintf() alle Zahlen auf eine bestimmte Laenge formatieren, also, dass bei Bedarf fuehrende Nullen eingefuegt werden. Dann sollte die Sortierung kein Problem darstellen.
Und es stoert mich nicht, dass Du Dich nicht fuer meine Loesung entschieden hast. Ich muss ja nicht immer mit der besten Loesung um die Ecke kommen. Vor allem weil ja mein Vorschlag ja auch nicht individuell zusammengestrickt sondern nur fix aus einem fertigen Script rauskopiert war.PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
Meine war auch nicht frisch zusammengestrickt. Einfach aus meinem Forum rausgerissen. Hat aber seinen Zweck erfüllt, so wie es aussieht.
Gruß fanste
Benutze bitte immer die passende Highlight-Tags.(z.B: für PHP [php] [/php] Allgemein: [highlight=SCRIPTSPRACHE]Code[/highlight] )
Problem gelöst? Dann markiere das Thema bitte als erledigt!
Beachte bitte die Netiquette. Insbesondere Punkt 15.
Ähnliche Themen
-
Suche Software zum Erstellen von Charts und Diagrammen
Von Transmitter im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 20.09.08, 21:59 -
Musik verwalten
Von C-H im Forum Audiotechnik, Recording & Audio-SoftwareAntworten: 7Letzter Beitrag: 06.05.08, 03:48 -
pulldown mit select um tabelle zu verwalten!
Von spomue im Forum PHPAntworten: 5Letzter Beitrag: 04.03.05, 13:46 -
selbstverwaltende Abstimmung (z.B. Musik-Charts)
Von Grumph im Forum HTML & XHTMLAntworten: 3Letzter Beitrag: 19.04.04, 14:01





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren