2015-09-14 4 views
2

Обычно, когда я запускаю этот запрос, он всегда будет извлекать все данные в таблице. но теперь он просто берет ряд данных в таблице. Im пытается экспортировать данные в Microsoft Wor с помощью phpword.Как заполнять данные в mysql

как это решить?

$order_query = mysql_query("SELECT COUNT(id), BuyerName,BuyerEmail,BuyerAddress,TransactionID,ItemAmount,DateTime FROM `order`") 
or die(mysql_error()); 
$x= 0; 
$y= 0; 
// Add table 
while($row = mysql_fetch_array($order_query)) 
    { 

$x++; 
$y++; 

// Add table style  
$PHPWord->addTableStyle('myOwnTableStyle."$x".', $styleTable, $styleFirstRow); 
$PHPWord->addTableStyle('myOwnTableStyle."$y".', $styleTable, $styleFirstRow); 

//create table 
$table1 = $section->addTable('myOwnTableStyle."$x".'); 

// Add row 
$table1->addRow(900); 

    $f1 = $row['BuyerName']; 
    $f2 = $row['BuyerEmail']; 
    $f3 = $row['BuyerAddress']; 
    $f4 = $row['TransactionID']; 
    $f5 = $row['ItemAmount']; 
    $f6 = $row['DateTime']; 

// Add cells 
$table1->addCell(2000, $styleCell)->addText('Nama', $fontStyle); 
$table1->addCell(2000, $styleCell)->addText('Email', $fontStyle); 
$table1->addCell(2000, $styleCell)->addText('Alamat', $fontStyle); 
$table1->addCell(2000, $styleCell)->addText('ID Transaksi', $fontStyle); 
$table1->addCell(2000, $styleCell)->addText('Jumlah', $fontStyle); 
$table1->addCell(2000, $styleCell)->addText('Tarikh', $fontStyle); 


// Add more rows/cells 

    $table1->addRow(); 
    $table1->addCell(2000)->addText("$f1"); 
    $table1->addCell(2000)->addText("$f2"); 
    $table1->addCell(2000)->addText("$f3"); 
    $table1->addCell(2000)->addText("$f4"); 
    $table1->addCell(2000)->addText("$f5"); 
    $table1->addCell(2000)->addText("$f6"); 



$table = $section->addTable('myOwnTableStyle."$y".'); 


$table->addRow(900); 

$table->addCell(2000, $styleCell)->addText('Nama Barang', $fontStyle); 
$table->addCell(2000, $styleCell)->addText('Kod Barang', $fontStyle); 
$table->addCell(2000, $styleCell)->addText('Kuantiti Barang', $fontStyle); 

//2nd query for details 
$detail_query = mysql_query("SELECT * FROM orderlist WHERE TransactionID = '$f4'"); 
while($rows = mysql_fetch_array($detail_query)) 

    { 

    $fd1 = $rows['ItemName']; 
    $fd2 = $rows['ItemNumber']; 
    $fd3 = $rows['ItemQTY']; 

    $table->addRow(); 
    $table->addCell(2000)->addText("$fd1"); 
    $table->addCell(2000)->addText("$fd2"); 
    $table->addCell(2000)->addText("$fd3"); 



    } 
    unset($table); 
    unset($table1); 

    } 
+2

Вы создаете новую таблицу для каждой строки. Создайте таблицу вне цикла. – Barmar

+0

вот что я действительно хочу сделать, не возражайте. –

+0

Тогда каждая таблица в Word будет всего лишь одной строкой из таблицы базы данных. – Barmar

ответ

4

Просто незадана $table переменных перед окончанием Петли

while($row=mysql_fetch_array($order_query)) 
{ 
    $x++; 
    $table = $section->addTable('myOwnTableStyle'.$x); 

    .... 

    unset($table); 
} 
+0

Предполагая, что 'X' [константа] (http://php.net/manual/en/function.constant.php) уже назначена , –

+0

Да, как он сказал в комментариях, что ** на самом деле код намного больше, чем **, поэтому я предполагаю это. – Chayan

+0

Добро пожаловать. Теперь давайте посмотрим, что должен сказать OP :-) * пальцы скрещены * –