[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
[GELÖST] XForm - Export der DB-Inhalte in csv - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Maidenaustria
Beiträge: 293
Registriert: 7. Mär 2006, 10:43
Wohnort: Österreich

[GELÖST] XForm - Export der DB-Inhalte in csv

7. Aug 2011, 19:36

Hallo Redaxo-Gemeinde,

Habe das X-Form mit DB-Anbindung für Veranstaltungsanmeldungen fehlerfrei in Betrieb.
Nun will ich z.b. die angemeldeten Personen (aber nur nach Auswahl der jeweiligen Veranstaltung) abfragen und in ein csv exportieren.

Dazu hab ich mir folgendes für das Backend gebastelt:

Code: Alles auswählen

<?

$db_sel = mysql_select_db("bodeninfo")
   or die("Auswahl der Datenbank fehlgeschlagen");

$db_erg = mysql_query("SELECT distinct(Veranstaltung) FROM rex_xform_events ORDER BY rex_xform_events.Veranstaltung ASC LIMIT 0 , 30 ");

echo '<br/><br/><h1>Per drop-down die gewünschte Veranstaltung wählen</h1><br/>';
echo '<form ENCTYPE="multipart/form-data" method="post" action="/redaxo/index.php?page=xform&subpage=export" />';
echo '<select name="sel_event" style="width:200pt" />';

while($row = mysql_fetch_assoc($db_erg))
{
echo '<option value="sel_event">'. $row['Veranstaltung'] .'</option>'."\n";

}

echo '</select>';
echo '<input type="submit" value="Excel Abfrage erstellen" />';
echo '</form><br/><br/><br/>';


?>
Das Form im Backend soll praktisch nur eine Abfrage nach der Veranstaltung machen und wenn eine ausgewählt ist, dann NUR diese als CSV ausgeben.

Das DACHTE ich das ich dies dann so lösen könnte...

Code: Alles auswählen

   
<?
   function add($value, $first = false)
    {
     # Remove whitespaces, Replace newlines and escape ["] character
     $res = trim($value);
     $res = str_replace("\r\n", ", ", $res);
     $res = str_replace('"', '""',  $res);

       # Print to result
       echo ($first ? "" : ";" ) . '"'.$res.'"';
    }
       
 
	$selected = $_GET['sel_event'];

      	$qry = "SELECT * FROM rex_xform_events WHERE Veranstaltung ='$selected' ";
       	$sql = new sql(); $sql->setQuery($qry);

       header('Content-Type: application/vnd.ms-excel; charset=utf-8');
       header("Content-disposition: attachement; filename=Veranstaltungsdatenbank-".date("Ymd").".csv");
.........
?>
So wie es aussieht erfolgt aber keine Übergabe der Veranstaltungs Variable...

Kann mir jemand helfen wo mein Hund begraben ist??
Zuletzt geändert von Maidenaustria am 8. Aug 2011, 22:15, insgesamt 1-mal geändert.

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: XForm - Export der DB-Inhalte in csv

8. Aug 2011, 11:22

Hi!
Maidenaustria hat geschrieben:Hallo Redaxo-Gemeinde,
Kann mir jemand helfen wo mein Hund begraben ist??
Der arme Hund! :roll:

Der URL-Parameter sel_event hat immer den Wert (value ;) ) sel_event. Das solltest du ändern.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Maidenaustria
Beiträge: 293
Registriert: 7. Mär 2006, 10:43
Wohnort: Österreich

Re: XForm - Export der DB-Inhalte in csv

8. Aug 2011, 22:13

Hallo Xong!

Danke für deinen Denkanstoss - jetzt läufts!
Habe jetzt auch auf POST umgestellt ;) - macht das ganze einfacher...

Falls es jemand mal benötigt:
Abfrage:

Code: Alles auswählen

<?

$db_sel = mysql_select_db("bodeninfo")
   or die("Auswahl der Datenbank fehlgeschlagen");

$db_erg = mysql_query("SELECT distinct(Veranstaltung) FROM rex_xform_events ORDER BY rex_xform_events.Veranstaltung ASC LIMIT 0 , 30 ");

echo '<br/><br/><h1>Per drop-down die gewünschte Veranstaltung wählen</h1><br/>';
echo '<form ENCTYPE="multipart/form-data" method="Post" action="/redaxo/index.php?page=xform&subpage=export" />';
echo '<select name="sel_event" style="width:200pt" />';



while($row = mysql_fetch_assoc($db_erg))
{
echo '<option value="'. $row['Veranstaltung'] .'">'. $row['Veranstaltung'] .'</option>'."\n";

}

echo '</select>';
echo '<input type="submit" value="Excel Abfrage erstellen" />';
echo '</form><br/><br/><br/>';
...............................................?>
Ausgabe:

Code: Alles auswählen

<?

/////////////////////////////////////////////////////
// Mit dem könne es klappen: $Veranstaltung_selected=$_POST['Veranstaltung'];
/////////////////////////////////////////////////////
   function add($value, $first = false)
    {
     # Remove whitespaces, Replace newlines and escape ["] character
     $res = trim($value);
     $res = str_replace("\r\n", ", ", $res);
     $res = str_replace('"', '""',  $res);

       # Print to result
       echo ($first ? "" : ";" ) . '"'.$res.'"';
    }
       
 
	$selected = $_POST["sel_event"];

      	$qry = "SELECT * FROM rex_xform_events WHERE Veranstaltung ='$selected' ";
       	$sql = new sql(); $sql->setQuery($qry);

       header('Content-Type: application/vnd.ms-excel; charset=utf-8');
       header("Content-disposition: attachement; filename=Veranstaltungsdatenbank-".date("Ymd").".csv");

..............................................?>

Maidenaustria
Beiträge: 293
Registriert: 7. Mär 2006, 10:43
Wohnort: Österreich

Re: [GELÖST] XForm - Export der DB-Inhalte in csv

10. Aug 2011, 22:28

So, jetzt bin ichs nochmal...

Nachdem nun mein csv erstellt wird, stelle ich fest, das (ich vermute weil ich aus dem backend und innerhalb einer export.inc.php Datei arbeite) mein csv einer konvertierten HMTL Seite entspricht, also inklusive dem kompletten backend-layout uvm.

Muss ich die export.inc.php zu einer export.php machen und in einen "öffentlichen" webordner stellen, damit ich eine "saubere" csv Datei erhalte??!? oder gibt's da irgend einen Kniff??

Maidenaustria
Beiträge: 293
Registriert: 7. Mär 2006, 10:43
Wohnort: Österreich

Re: [GELÖST] XForm - Export der DB-Inhalte in csv

18. Sep 2012, 23:35

Für dieses Problem gibt's mittlerweile auch eine Antwort:
Die export-funktion darf nicht innerhalb z.b. einer export.inc.php, also einer Addon-Subseite abgelegt sein, sonst sind immer die HTML Tags der ganzen Redaxo-Backend Seite dabei.

Einfach eine functions.inc.php schreiben in der die SQL-Query und die csv-Fileausgabe definiert sind und diese dann mit einer Form-Schaltfläche aufrufen!

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: [GELÖST] XForm - Export der DB-Inhalte in csv

19. Sep 2012, 00:33

Maidenaustria hat geschrieben:Für dieses Problem gibt's mittlerweile auch eine Antwort:
Die export-funktion darf nicht innerhalb z.b. einer export.inc.php, also einer Addon-Subseite abgelegt sein, sonst sind immer die HTML Tags der ganzen Redaxo-Backend Seite dabei.

Einfach eine functions.inc.php schreiben in der die SQL-Query und die csv-Fileausgabe definiert sind und diese dann mit einer Form-Schaltfläche aufrufen!
Du kannst das auch in einer Addon-Seite machen, musst dann aber vorher den Puffer löschen. Das geht z. B. so:

Code: Alles auswählen

while(ob_end_clean()); 
Danach kannst du ganz normal deine CSV-Daten ausgeben und das Skript mit "exit" beenden.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Zurück zu „Allgemeines [R4]“