Willkommen im neuen Forum von concrete5.de.
Die Anmeldung ist ab dem 15.10.2020 nur noch mit E-Mail Adresse und Passwort möglich. Eine Anmeldung mit Benutzername ist nicht mehr möglich.

Diese Nachricht löschen.
Anhang entfernen?
Zurück zur Themenliste
W
wrongspot 0.png 23.02.2010 17:22

LebensDauer Variablen

Hallo Leute, 
ich sitze gerade über einem komischen Problem. Ich möchte einen Block weiter entwicklen, dazu benutze ich als Grundgerüst den Sourcecode vom slideshow Block.
Dort gelangt man über die Variable $imgInfo['fileName']  an den aktuellen Filenamen. Kann man testen wenn man in der  image_row_include.php in Zeile 4 folgendes einträgt: <?php echo '-->' .$imgInfo['fileName'] .'<--'; ?>
Ich möchte in der Datenbank nach ähnlichen Files die einem bestimmten Suchmuster entsprechen weitere Files suchen. Dazu schicke ich folgendes Query ab:
<?php $db = Loader::db(); $query = sprintf("SELECT * FROM FileVersions WHERE fvTitle = '%s' ORDER BY fvID DESC LIMIT 1",  mysql_real_escape_string(  $imgInfo['fileName'] )); $r = $db->query($query); print_r($r->FetchObject()); ?>Mit diesem Query sollte  zumindest die aktuelle Tabellenzeile vom aktuell ausgewählten File gefunden werden. Leider funktioniert dieser Query nicht mit der $imgInfo['fileName'] Variablen. Es wird nichts erfolgreich gefunden, da scheinbar die Variable auf 'tempFile' gesetzt wird, obwohl mir mit dem echo der existierende Filename ausgegeben wird. Im übrigen funktioniert die Query wenn ich per Hand an der Stelle von '%s' einen existierenden Filename eintrage. 

Könnte da mal bitte jemand mit drüber schauen, ich sitze schon seit zwei Tagen dran und finde den Fehler einfach nicht. Vielen Dank, Björn
R
Remo 0.png 24.02.2010 20:43
Ich kann mir lediglich vorstellen, dass du beim Escape ein Problem generiest. Generell würde ich aber eh empfehlen mit Binds zu arbeiten
$query = 'SELECT ... WHERE field =? ';$db->query($query, array('dein-wert'));
Die Lebensdauer ist wohl kaum ein Problem. Es ist ja keine Session und wenn das Echo das ausgibt, dann muss das auch bei einem DB Call klappen....
Zur Not wäre es wohl auch hilfreich wenn du uns einen vollständigen Code (bzw. Block) hochladen könntest.
W
wrongspot 0.png 02.03.2010 15:02
Hallo Remo,

danke für die Antwort und dem Codeschnippsel der Datenbankabfrage. Nach genauerem analysieren des Slideshowblocks ist mir mein Fehler aufgefallen. Wenn noch kein Slideshowblock existiert, wird lediglich eine BildID per avascript in ein hidden Field geladen. Erst nach dem akzeptieren des Blocks wird das $imgInfo[] generiert. Wenn also der Block schon vorhanden ist und ich ihn nachträglich editiere, dann steht mir  $imgInfo[] zur Verfügung.

Das war nämlich mein Fehler, beim ersten Test habe ich einen vorhandenen Block editiert. Jetzt hab ich das so gelöst, dass ich im Javascript (auto.js), beim hinzufügen eines Bildes (addNewImage:.....)  eine weitere Methode aufrufe, die mir per Ajax das passende Bild zur ID raussucht.

Nachricht hinzufügen