Ankündigung

Einklappen
Keine Ankündigung bisher.

Userbilder sortieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema Userbilder sortieren.

    Userbilder sortieren

    Hallo Leute,

    ich habe da ein Problem:

    Auf meiner Page können die User Bilder hochladen. Diese werden im Filesystem in einem eigenen Ordner für jeden User gespeichert. Wenn der User die page "mypics" öffnet wird das Verzeichnis durchgeschaut und Bild für Bild ausgegeben.

    Wie kann ich das ganze denn am geschicktesten anstellen, dass der User seine Bilder in der gewünschten Reihenfolge sortieren kann. Er müsste ja dazu quasi die Files umbennenen, so dass der file-befehl sie in andere reihenfolge ausliest, oder?

    Was habt ihr für ideen, anregungen etc.

    DANKE

  • Gast-Avatar
    Ein Gast antwortete
    @crossposting: ich dachte eben dass im Profiforum bessere Antworten kommen

    @postingkopieren: damit ich heute abend an der stelle nachlesen kann was du vorher im anderen forum getippt hast. so finde ich es wieder.


    @eigeninitiative: kann ich erst heute abend umsetzten.

    warum tippst du in rot kid01?

    Einen Kommentar schreiben:


  • kid01
    antwortet
    1. wie kommst du dazu meine Postings zu kopieren!
    2. wieso machst du crosposting
    3. was soll das jetzt bringen?? is doch alles gesagt was du brauchst. Ein wenig eigeninitiative dürfen wir wohl erwarten!!!!!!!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    hy
    gib jeden bild ne Spalte Sortierung in der DB!

    Beim klick auf hoch oder runter tauscht du einfach die Zahlen in der Spalte aus!

    Beim Auslesen machst du einfach order by Sortierung!

    Einen Kommentar schreiben:


  • Guradia
    antwortet
    Code:
    SELECT ...... FROM .... ORDER BY `filename` [ASC | DESC]
    ASCending = aufsteingend (standard)
    DESCending = absteigend
    [] und | sind natürlich nicht mit anzugeben.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von Thice
    Zitat von cretter
    Soweit okay.

    Aber wie schreib ich die reihenfolge in die DB?
    Mit ASC oder DESC
    Könntest du das bitte noch ein bisschen ausführlicher erklären?

    Einen Kommentar schreiben:


  • Thice
    antwortet
    Zitat von cretter
    Soweit okay.

    Aber wie schreib ich die reihenfolge in die DB?
    Mit ASC oder DESC

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    So als Anregung ein kleines Beispiel, bei dem es allerdings noch einige Probleme gibt.
    DB:
    Code:
    CREATE TABLE `bildlist` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `user` varchar(20) NOT NULL default '',
      `name` varchar(100) NOT NULL default '',
      `stichwort` varchar(50) NOT NULL default '',
      `sortierung` int(11) NOT NULL default '0',
      PRIMARY KEY  (`id`),
      UNIQUE KEY `name_idx` (`user`, `name`)
      UNIQUE KEY `sort_idx` (`sortierung`)
    ) TYPE=MyISAM
    PHP:
    Code:
    <?php
       	include 'db_connect_test.inc';
    	
    	if (isset($_POST['go']))
    	{
       		@import_request_variables('cgp');
       		for ($i = 0;$i < count($sort); $i ++)
       		{
                $sql = "UPDATE bildlist SET sortierung = $sort[$i]
                        WHERE user = '$user' and name = '$bild[$i]'";
                mysql_query($sql) || die(mysql_error());
    	    }
    	}
    	else
    	{
    	    $dir = "./bilder";
            
            echo "<form method='post'>\n";
            echo "<table cellspacing='5'>\n";
            echo "<tr><th>Name<th>Bild<th>Reihenfolge</tr>\n";
            $sql = "SELECT name, sortierung FROM bildlist WHERE user = '$user' ORDER BY 2";
            $res = mysql_query($sql) or die(mysql_error());
            while($row = mysql_fetch_object($res))
            {
                $thumb = "../library/phpThumb.php?src=$dir/$row->name&w=80&h=80";
                echo "<tr><td>$row->name<td>[img]$thumb[/img]name' border=0 />";
                echo "<td><input name='sort[]' size='10' value='$row->sortierung' /></tr>\n"; 
                echo "<input type='hidden' name='bild[]' value='$row->name' />\n";
            }
            echo "</table>\n";
            echo "<input type='submit' name='go' value='Speichern'\n";
            echo "</form>\n";
        }
    ?>
    Dazu muss die "phpThumb" installiert sein. Ausserdem ist das Problem der doppelten Einträge nicht gelöst. Und "$user" muss natürlich irgendwo übergeben werden.
    Und beim Upload eines neuen Bildes machst du etwa
    Code:
    SELECT max(sortierung) as sort from bildlist;
    mysql_query(....
    mysql_fetch_object(...
    INSERT INTO bildlist (user, name,  sortierung) VALUES ('$user', '$bildname', $row->sort + 1);

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Soweit okay.

    Aber wie schreib ich die reihenfolge in die DB?

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    Das Auslesen dürfte das kleinere Problem sein:
    Code:
    SELECT bild 
        FROM bilder
        WHERE user = '$user'
        ORDER BY sortkriterium;
    Das Hauptproblem ist nach meiner Meinung aber, die Reihenfolge überhaupt in die DB zu bringen. Dazu braucht es ein eigenes Formular, in dem die Bilder aufgelistet werden (ev. mit Thumbnails) und wo der Benutzer dann die Reihenfolge seiner bilder festlegen kann. Und diese muss dann in der Datenbank abgelegt werden. Es bedingt auch, dass beim Upload immer ein DB-Eintrag erfolgt.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Okay, zu beiden Lösungen hab ich Fragen:

    1.
    Wenn ich die Namen des Bildes bzw. den Pfad in der DB speicher: Wie sortiert ich dann die Bilder??? Wie sag ich der DB welches Bild sie als erstes beim select ausspucken soll???

    2.
    Wenn alle Bilder im Array stecken: Wie sortier ich dann im Array um?

    Ihr seht: Ich steh grad echt auf der Leitung. Hat vielleicht einer von euch ein konkretes Beispiel?

    Einen Kommentar schreiben:


  • Thice
    antwortet
    Kannst auch erstmal die Dateinamen und Attribute in ein Array einlesen und dieses dann sortieren.

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    Du kannst z.B. die Bilder (bzw den Pfad) in einer DB-Tabelle speichern und diese zusätzlich mit einem Attribut "Sortkriterium" oder "Stichwort" (oder beides) ergänzen. Dann liest du die Bilder entsprechend sortiert aus der DB. Das Ganze geht natürlich auch mit Textfiles, ist dann aber etwas aufwendiger.

    Einen Kommentar schreiben:

Lädt...
X