Hallo,
ich hab ein problem und zwar hab ich ein Fotoalbum (http://www.drupal.org/project/photos). leider lassen sich die fotos nicht richtig sortieren. ich möchte das die fotos nach der id sortiert werden aufsteigend (ASC).
wie mach ich das ? muss ich dafür das modul bearbeiten ?
wenn ja, was muss ich tun ?
Beiträge von Teron Gerofied
-
-
Danke.
Also, ich hab es jetzt ganz einfach gemacht, da ich einfach keinen Bock mehr auf PHP Programmierung von so großen Sachen hab, hab ich jetzt einfach alles gelöscht und Drupal aufgesetzt. Ist wesentlich schöner.
Trotzdem danke für eure Mühen, meine nächsten Fragen werden nur noch im Bereich vom Drupal sein -
Hallo,
also ich wollte mal eure Meinungen hören, zu der Frage:
Wie viele SQL-Querys pro Seite sind erlaubt um die Datenbank nicht zu sprengen?
Momentan hab ich pro Seite mindestens mindestens 3 - 5 Querys (Select & Update).
Was sagt ihr dazu.
Danke im Voraus.
Lg
-
-
Ja ich hab ja gesagt ich schick mal den Originalen Quellcode, erst dann setze ich die Tipps um. Aber danke für die Hinweise, werde das ganze mal überarbeiten.
Noch dazu hab ich folgendes:
ich lasse die bilder, die ich mit dem script verschiebe nicht einfach so anzeigen sondern über eine php datei die überprüft ob die benutzer überhaupt berechtigt sind, das bild zu öffnen. der originaldateiname soll für die nutzer unkenntlich bleiben. ich manipuliere den header mit php ums halt als image ausgeben zu lassen. kann es sein, dass das damit auch was zu tun hat ?
-
So hier ist mein code:
PHP
Alles anzeigen<?php function ends_with($Haystack, $Needle){ // Recommended version, using strpos return strrpos($Haystack, $Needle) === strlen($Haystack)-strlen($Needle); } if($_GET['p'] == 'admin') { $db = mysql_connect('localhost', '...', '...'); $catid = mysql_real_escape_string($_GET['c']); $userid = mysql_real_escape_string($_GET['u']); mysql_select_db('139_board', $db); $handle = opendir ($_SERVER['DOCUMENT_ROOT']."/massiveload"); $outp = ''; while ($fileold = readdir($handle)) { if(ends_with($fileold, '.jpg') || ends_with($fileold, '.png') || ends_with($fileold, '.gif')) { $thumbname = ''; $fileext = explode(".", basename($fileold)); $file = md5(time()+rand(time(), time()+100000)).'.'.$fileext[sizeof($fileext)-1]; $filenames = $_SERVER['DOCUMENT_ROOT'].'/board/album/upload/'.$file; $imgdata = getimagesize($_SERVER['DOCUMENT_ROOT'] . '/massiveload/'.basename($fileold)); $OriginalBreite = $imgdata[0]; $OriginalHoehe = $imgdata[1]; $ThumbnailBreite = 170; if($OriginalBreite < $ThumbnailBreite) { $ThumbnailBreite=$OriginalBreite; } $Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite; $ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor); $tbname = md5(time()+rand(time(), time()+100000)); if($imgdata[2] == 1) { $tbname = $tbname . '.gif'; $Originalgrafik = ImageCreateFromGIF($_SERVER['DOCUMENT_ROOT'] . '/massiveload/'.basename($fileold)); $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe); ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe); ImageGIF($Thumbnailgrafik, $_SERVER['DOCUMENT_ROOT'].'/board/album/upload/thumbs/'.$tbname); $thumbname = $tbname; } elseif($imgdata[2] == 2) { $tbname = $tbname . '.jpg'; $Originalgrafik = ImageCreateFromJPEG($_SERVER['DOCUMENT_ROOT'] . '/massiveload/'.basename($fileold)); $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe); ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe); ImageJPEG($Thumbnailgrafik, $_SERVER['DOCUMENT_ROOT'].'/board/album/upload/thumbs/'.$tbname, 100); $thumbname = $tbname; } elseif($imgdata[2] == 3) { $tbname = $tbname . '.png'; $Originalgrafik = ImageCreateFromPNG($_SERVER['DOCUMENT_ROOT'] . '/massiveload/'.basename($fileold)); $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe); ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe); ImagePNG($Thumbnailgrafik, $_SERVER['DOCUMENT_ROOT'].'/board/album/upload/thumbs/'.$tbname); $thumbname = $tbname; } $sql = "INSERT INTO board_album (pic_id, pic_filename, pic_thumbnail, pic_title, pic_desc, pic_user_id, pic_time, pic_cat_id, pic_view, pic_lock, pic_approval) VALUES (NULL, '".$file."', '".$thumbname."', '".$fileext[0]."', '', '".$userid."', '".time()."', '".$catid."', '0', '0', '1')"; mysql_query($sql); copy($_SERVER['DOCUMENT_ROOT'] . '/massiveload/'.basename($fileold), $filenames); unlink($_SERVER['DOCUMENT_ROOT'] . '/massiveload/' . basename($fileold)); } $outp .= $fileold.'<br />'; } die($outp.'<hr />Fertig!'); die(""); } die("Keine Berechtigung!"); ?>
-
-
-
-
Verdammt, imagedestroy hab ich garantiert vergessen ...
Naja ich lad sie eh per FTP hoch, aber ich muss die ja auch für das Album in die Datenbank kriegen und die Thumbnails damit die Seite schneller lädt.
die fotos haben maxmale ausmaße von 700 x 630 und max. dateigröße von 500 kb (meistens ~ 300 kb).
Unsere Seite beinhaltet ja Partyfotos, deswegen ist das nötig.
Aber dieses Script wurde gestern um 16.10 nicht ausgeführt. Und nur ich kann es ausführen und es geht nur wenn fotos im ordner sind. und gestern war ich da auch nicht daheim, also kanns wohl doch nicht nur an dem liegen ... ich hab keine ahnung was da schuld ist. aber in der neuen version werde ich auf alles achten, alle variablen nach gebrauch unset()en, resourcen freigeben und alle images immer nach gebrauch zerstören.
Aber ich weiß nicht genau obs vllt auch daran liegen könnte, dass eszu viele sql selects gibt -
Ich hab jetzt zusammen mit meinem Serveradmin festgestellt, dass es wohl doch nicht dieses hochladen Script ist, weil das ganze gestern auch wieder aufgetreten ist ... Ich bräuchte dirgend irgendwelche Tipps, wo es versteckte CPU-Killer geben könnte. Ich verwede nur ganz normale Arrays, Schleifen, sql_functions, str_functions, image-function. Also keine Verbindungen zu andren Servern oder so, eigentlich nichts von dem ich glaub, dass es sehr serverlastig wäre. Könnte sowas auch bei zu vielen SQL Seleccts auftreten ?
Danke -
Hmm. Könntet ihr mal eine kleine Liste geben mit typischen Fehlern, die so eine hohe Auslastung erzeugen könnten ? So typische Fehler ? Weil while(true) verwende ich sicher nicht.
(Zur Info: ich verwende AJAX Agent, vllt hilft das)
-
Wieso benutzt man überhaupt noch Frames, wo es doch CSS gibt ... und DIV-Boxen, die man neuerdings sogar scrollen kann? (Und ich kann mit meiner DIV-Box Supper ganz gut leben :p )
-
Also, das Problem scheint wirklich diese Schleife zu sein.
Nur zu Beschreibung: ich lade ca 1000 Fotos per FTP hoch in einen Ordner und führe dann die Datei aus. Die macht folgendes:
Eine Schleife ausführen in der jede Datei:
- einen neuen Dateinamen erhält
- verschoben wird
- ein Thumbnail bekommt, das auch verschoben wird.
- in eine Datenbank eingetragen wird (also die Dateinamen von Original und Thumbnail)
und das alles ohne sleep();
Hilft mir sleep() da wirklich weiter ?
Oder wie verarbeitet man am besten so eine rießen Masse an Fotos ? (alle Fotos sind bereits verkleinert). -
Das Problem ist, dass der Server nicht mir gehört sondern nur gemietet ist und, dass der nur dabei auftritt, wenn ich mein script zum verschieben vieler bilddateien und zum eintragen in die datenbank aufgerufen habe...
-
Hello,
ja also wie der Titel schon sagt.
Gibt es eine möglichkeit herauszufinden, welches meiner PHP-Scripte in welcher Datei eine dauerhafte CPU-Auslastung von 100% erzeugt ? Weil mein Server stürtzt deswegen öfters ab. Und ich hab keinen Plan woher das kommt.Lg
-
Ja das soll auch nur bei eingeloggten usern gehen. so wie beim phpbb2
-
dann kann man aber nur am eigenen pc sehen, welche themen neu sind ... =/
-
Stimmt. Naja ich werd mich da noch mit meinem Vater besrechen, mal schauen, was wir da machen. Danke euch allen.
-
Nein, also meine DB will ich schon benutzen, Kekse gibts bei mir nur zu Weihnachten
Wie lös ich das mit DB aber ohne die DB viel zu belasten dadurch (also keine vielen SELECTs und so)