Modul funktioniert nur 1 mal

Wie verwendet man Module oder Aktion und passt diese an.

Modul funktioniert nur 1 mal

Beitragvon drachenbau » 6. Sep 2010, 10:34

Hallo Redaxofreunde,

ich habe folgendes Modul:

Code: Alles auswählen
<?php

echo "<h3>Die letzten REX_VALUE[1] neuen oder geänderte Dateien</h3>";

$ResultPointer = mysql_query("SELECT  * FROM `rex_file` WHERE filetype like 'application%'  ORDER BY updatedate desc limit REX_VALUE[1]");

if($ResultPointer != null)
{
  echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>";
  echo "<tr>";
  echo "<td><b>Datei</b></td>";
  echo "<td valign='right'><b>Status</b></td>";
  echo "</tr>";

  for($i=0; $i<mysql_num_rows($ResultPointer); $i++)
  {
    $Result=mysql_fetch_object($ResultPointer);

    $fname = $Result->filename;
    $fmpid = $Result->category_id;
    $file_ext = substr(strrchr($fname, "."),1);
   
if (strlen($Result->title)>70){
$fbeschreibung = substr($Result->title,0,70)."...";}
else
{$fbeschreibung = $Result->title;}

    echo  "<tr>",
    "<td valign='left'>",
    "<a href='$REX[HTDOCS_PATH]files/$Result->filename' target='_blank' title='$Result->title'><img src='$REX[HTDOCS_PATH]/redaxo/pics/mime_icons/mime-$file_ext.gif' /> $fbeschreibung</a><br> -> ".rex_path_file($fmpid),
    "</td>";
    echo "<td valign='right'>";
    if ($Result->updatedate==$Result->createdate)
      {
        echo "<b>Neu: </b>";
       }
       else
      {
       echo "Akt: ";
       }
    echo strftime("%d.%m.%y",$Result->updatedate);
    echo "</td>";
    "</tr>";
  }
echo "</table>";
}
else
{
   echo"<b>FEHLER !!! Es konnten keine Daten gelesen werden.</b>";
}
?>


Das Modul zeigt eigentlich nur die letzten x neuen oder geänderten Dateien das Medienpools an. Nichts wildes also. Es lief auch jahrelang ohne Probleme. Nun kommts aber: Das Modul arbeitet im Backend ohne Probleme. Im Frontend wir immer "FEHLER !!! Es konnten keine Daten gelesen werden." angezeigt. Sprich ... das SQL Statement findet im Backend Daten und im Frontend nicht. Wenn ich im Modul ne Kleinigkeit ändere und es speicher ... funktion es im Frontend genau einmal! Nach drücken von F5 findet das SQL Statement wieder keine Daten.

WARUM????

Gruß
Stephan
drachenbau
 
Beiträge: 32
Registriert: 13. Jun 2006, 10:19
Wohnort: Minden-Lübbecke

Re: Modul funktioniert nur 1 mal

Beitragvon Xong » 6. Sep 2010, 10:55

Hallo Stephan!
drachenbau hat geschrieben:Wenn ich im Modul ne Kleinigkeit ändere und es speicher ... funktion es im Frontend genau einmal! Nach drücken von F5 findet das SQL Statement wieder keine Daten.

WARUM????
Wegen des redaxointernen Caches.
Wenn du das Modul neu speicherst, wird der Cache gelöscht und beim Aufruf im Frontend funktioniert die Funktion mysql_query rein zufällig. (Wahrscheinlich, weil es eine geöffnete Verbindung zur Datenbank gibt.)

Wird das Modul bzw. der Artikel aber über den Cache geladen, gibt es womöglich keinen vorherigen Datenbankaufruf.

Lösungen:
- Arbeite mit der Klasse rex_sql.
- Stelle vorher ordnungsgemäß eine Datenbankverbindung her.

Die erste Lösung ist eindeutig zu priorisieren.
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1555
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Beitragvon drachenbau » 6. Sep 2010, 12:25

Danke XONG,

mit der rex_sql Klasse klappt es jetzt. Verstehe nur nicht warum die "alte" Methode nicht mehr ging.

Naja... egal ... Schublade Wunder

Bye
drachenbau
 
Beiträge: 32
Registriert: 13. Jun 2006, 10:19
Wohnort: Minden-Lübbecke


Zurück zu Module/Aktionen [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast