Coppermine automatisch Position korrigieren?

Begonnen von Marodeur, 22 Februar 2011, 17:08:18

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Marodeur

Hi,

wenn man in der Coppermine mit der Stapel-Bearbeitung die hochgeladenen Bilder einfügt, so werden die nicht in der Reihenfolge in die Datenbank abgelegt, in der sie im Verzeichnis liegen.
Also wenn man die Fotos mit Img_xxxx.jpg hat, so werden die nicht als 1,2,3,4,5... eingestellt, sondern mehr 1,2,5,6,3,4,7,8...

Da will ich auch garnicht weiter dran rumrühren. Man kann sie ja sortieren, allerdings ist das bei ein paar hundert Bildern stundenlanges klicken oder mit dem MySql-Querybrowser ein nicht viel kürzeres eintippen der Positionen (100 - ...)

Nun sollte das doch Mysql auch automatisch können?
Auflisten lass ich mir die Bilder mit
SELECT * FROM pragmamx.mx00000_cpg148_pictures where aid=1 order by filepath, filename

Nun find ich aber kein SET position = (position-1) +1
Also wenn ne Null drin steht bei 100 beginnen und jede Zeile eins höher, ansonsten die Zeilen durchgehen bis eine 0 kommt und dann entsprechend der letzten Zeile die Position um eins erhöhen.

Oder wird das nur was mit nem PHP-Script?

Danke schon mal für die Antworten.

Ich hoffe, irgendwer versteht was ich will :-)

cu, Ralf
cu, Ralf
(Korrigiert mich, wenn ich Blödsinn schreibe)

waltkemper

Hi ich versuch es zu verstehen.  :red:
Du kannst doch aufsteigend und absteigend nach Dateinamen sortieren und auch voreinstellen. Dazu ist es allerdings erforderlich das die Dateienamen mit einer vorangestellten Zahl beginnen. Je nach Menge 001,002,003 usw. oder 0001,0002,0003 gefolgt von dem Dateinamen wie Sylvester2010. Das geht dann mit einer Batch Umbenennung z.B. in Irfan View bevor du die Dateien hochlädst. Wichtig ist der Nameszusatz weil Coppermine Bilder mit gleichem Namen (nur Nummern) auch wenn diese in verschiedenen Ordnern liegen als identisch erkennt und dann nicht mehrmals darstellt.

Vielleicht hilft es ja. Grüße aus Winterscheid

Marodeur

Das nachfolgende Script wollte ich halt mit ein oder 2 Zeilen im Mysql_Query_Browser machen, aber ich glaub, es wird bei der unteren Lösung bleiben. Funktioniert ja auch.


#!/usr/bin/php
<?php
$aid
=$argv[1];

$dbhost      'localhost';
$dbname      'pragmamx';
$dbuname     'yyyyy';
$dbpass      'xxxxx';
$prefix      'mxmxmx';

$db mysql_connect($dbhost$dbuname$dbpass);
if (!
$db) {
    die(
"keine Verbindung möglich: \n" mysql_error());
}

$db_selected mysql_select_db($dbname,$db);
if (!
$db_selected) {
    die(
"DB nicht selektierbar:\n" mysql_error());
}

$result mysql_query("SELECT * FROM mxmxmx_cpg000_pictures where aid=$aid order by filepath,filename",$db);

$i=100;
while ( 
$row mysql_fetch_row $result ) )
{
 
$row[28]=$i;
 
$update mysql_query("UPDATE mxmxmx_cpg000_pictures SET position=$row[28] WHERE pid=$row[0]",$db);
 
$i=$i+1;
}

mysql_close($db);
?>

cu, Ralf
(Korrigiert mich, wenn ich Blödsinn schreibe)