Ich habe zuvor PHP Skripte erstellt, um eine Datenbanktabelle in das XLS-Format zu exportieren:
$select = "SELECT * FROM tracking";
$export = mysql_query ( $select ) or die ( "Sql error : " . mysql_error( ) );
$fields = mysql_num_fields ( $export );
$file = 'export';
for ( $i = 0; $i < $fields; $i++ )
{
$header .= mysql_field_name( $export , $i ) . "\t";
}
while( $row = mysql_fetch_row( $export ) )
{
$line = '';
foreach( $row as $value )
{
if ( ( !isset( $value ) ) || ( $value == "" ) )
{
$value = "\t";
}
else
{
$value = str_replace( '"' , '""' , $value );
$value = '"' . $value . '"' . "\t";
}
$line .= $value;
}
$data .= trim( $line ) . "\n";
}
$data = str_replace( "\r" , "" , $data );
if ( $data == "" )
{
$data = "\n(0) Records Found!\n";
}
$filename = $file."_".date("M-d-Y");
header("Content-type: application/octet-stream");
header( "Content-disposition: filename=".$filename.".xls");
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";
Ich würde gerne wissen, wie man dies mit der Klasse $ wpdb in das WordPress-Format "konvertiert". Ich kann die erste Abfrage durchführen, um die Daten aus der gewünschten Tabelle auszuwählen, aber ich verliere mich in einigen Semantiken der wpdb-Klasse. Ich wollte auch wissen, wo ich diesen Code in WordPress ablegen würde. Wenn also ein Benutzer auf einen Link klickt, wird diese Abfrage ausgeführt und die XLS-Datei heruntergeladen.
Jede Hilfe wird sehr geschätzt! Diese Seite ist großartig!
Warum nicht die SELECT INTO OUTFILE
Syntax verwenden:
$wpdb->query("SELECT * INTO OUTFILE '/path/to/file'
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
FROM tracking");
erstellen Sie diese Datei als 'export_data.php'. Dann rufen Sie diese PHP über den Link
<?php
$Host = 'localhost';
$user = 'mysqlUser';
$pass = 'myUserPass';
$db = 'myDatabase';
$table = 'products_info';
$file = 'export';
$link = mysql_connect($Host, $user, $pass) or die("Can not connect." . mysql_error());
mysql_select_db($db) or die("Can not connect.");
$result = mysql_query("SHOW COLUMNS FROM ".$table."");
$i = 0;
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
$csv_output .= $row['Field']."; ";
$i++;
}
}
$csv_output .= "\n";
$values = mysql_query("SELECT * FROM ".$table."");
while ($rowr = mysql_fetch_row($values)) {
for ($j=0;$j<$i;$j++) {
$csv_output .= $rowr[$j]."; ";
}
$csv_output .= "\n";
}
$filename = $file."_".date("Y-m-d_H-i",time());
header("Content-type: application/vnd.ms-Excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
print $csv_output;
exit;
?>
Wenn Sie phpmyadmin haben, gehen Sie einfach zum Exportieren und wählen Sie Excel anstelle vonSQL.
Ich bin definitiv zu spät, um mit meiner Antwort zu helfen. Ich hoffe :), aber ich wende mich an alle, die eine aktualisierte WordPress-Funktion benötigen, um eine benutzerdefinierte Tabelle in eine schöne und saubere CSV-Datei für die Zeilenanzeige zu exportieren
function ns_contact_form_csv_pull() {
global $wpdb;
$table = 'ns_contact_form';// table name
$file = 'ns_contact_form_csv'; // csv file name
$results = $wpdb->get_results("SELECT * FROM $wpdb->prefix$table",ARRAY_A );
if(count($results) > 0){
foreach($results as $result){
$result = array_values($result);
$result = implode(", ", $result);
$csv_output .= $result."\n";
}
}
$filename = $file."_".date("Y-m-d_H-i",time());
header("Content-type: application/vnd.ms-Excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
print $csv_output;
exit;
}
add_action('wp_ajax_csv_pull','ns_contact_form_csv_pull');
Laden Sie die CSV-Datei herunter (Sie müssen angemeldet sein). Fügen Sie diese URL einfach Ihrem Browser hinzu. http://example.com/wp-admin/admin-ajax.php?action=csv_pull
... ändern Sie die Domain mit Ihrer :)
Sie können es überall in WordPress aufrufen, indem Sie Folgendes verwenden:
$ajax_url = admin_url('admin-ajax.php?action=csv_pull');
Etwas wie das:
$results = $wpdb->get_results('SELECT * FROM tracking;');
Weitere Informationen finden Sie unter SELECT generic results in Codex.
Sie sind sich nicht sicher, wie Sie den Link zu dieser Seite am besten implementieren können. Eine Seite mit einer benutzerdefinierten benannten Vorlage ist möglicherweise die Lösung.