[gelöst] Probleme mit CSV-Export-Template

Wie verwendet man Templates oder erstellt Navigationen und passt diese an.

[gelöst] Probleme mit CSV-Export-Template

Beitragvon Zuperfly » 28. Aug 2007, 15:21

Ich möchte Datensätze aus der rex_2_user-Tabelle als CSV exportieren; dazu habe ich mir ein Template erstellt, das eigentlich auch funktionieren sollte:
Code: Alles auswählen
<?
include "./redaxo/include/master.inc.php";

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.'"';
}
   
   $sql = "SELECT user_name, user_firstname, company_name, company_email, company_phone FROM rex_2_user ORDER BY user_name, user_firstname ASC";

   $result = mysql_query($sql);
   $resultsnumber = mysql_numrows($result);   


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

   # Name + Geburtstag
   add("Lastname", true);
   add("Firstname");

   # Work contact
   add("Company");
   add("Company E-Mail");
   add("Company Phone");
   echo "\r\n";


   while ($myrow = mysql_fetch_array($result))
   {

      # Name + Geburtstag
      add($myrow["user_name"], true);
      add($myrow["user_firstname"]);


      # Work contact
      add($myrow["company_name"]);
      add($myrow["company_email"]);
      add($myrow["company_phone"]);

      echo "\r\n";
   }

?>

Allerdings enthält die Datei, die beim Aufruf der entsprechenden Seite generiert wird, keine Adressdaten, sondern eine Fehlermeldung, die ich mir nicht erklären kann:
Code: Alles auswählen
Warning: mysql_query() [function.mysql-query]: Access denied for user: 'wwwrun@localhost' (Using password: NO) in ...


Weiss jemand, wo hier der Fehler liegt? Wieso kommt keine Datenbankverbindung zustande? Danke!
Zuletzt geändert von Zuperfly am 28. Aug 2007, 19:04, insgesamt 1-mal geändert.
Zuperfly
 
Beiträge: 214
Registriert: 17. Mär 2006, 17:42

Beitragvon Zuperfly » 28. Aug 2007, 19:03

Ich habe das Skript noch ein wenig umgestellt und u.a. die SQL-Abfrage geändert; hier nun also ein funktionierendes Template für einen CSV-Export aus der rex_2_user-Tabelle (man kann es natürlich um beliebige Felder erweitern):

Code: Alles auswählen
<?
include "./redaxo/include/master.inc.php";

// Authentifizierungs-Template einbinden
include $REX['INCLUDE_PATH']."/generated/templates/16.template";

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.'"';
}
   
   $qry = "SELECT user_name, user_firstname, company_name, company_country, company_phone, company_email FROM rex_2_user ORDER BY rex_2_user.user_name ASC, rex_2_user.user_firstname ASC;";
   $sql = new sql(); $sql->setQuery($qry);

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

   # Name + Geburtstag
   add("Lastname", true);
   add("Firstname");

   # Work contact
   add("Company");
   add("Company E-Mail");
   add("Company Phone");
   echo "\r\n";

   for($i = 0; $i < $sql->getRows(); $i++)
   {
      # Name
      add($sql->getValue('user_name'), true);
      add($sql->getValue('user_firstname'));

      # Work
      add($sql->getValue('company_name'));
      add($sql->getValue('company_email'));
      add($sql->getValue('company_phone'));

      echo "\r\n";
      
      $sql->next();
   }

?>

Man könnte aus der FOR- auch noch eine WHILE-Schleife basteln, dann müsste man die Felder nicht alle einzeln aufführen..
Zuperfly
 
Beiträge: 214
Registriert: 17. Mär 2006, 17:42


Zurück zu Templates/Navigationen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast