问题
usually when i run this query it would always fetch all of the data in the table. but now its just taking a row of the data in the table. Im trying to export the data to Microsoft Wor by using phpword.
how to solve this?
$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);
}
回答1:
Just unset $table
variable before ending the loop
while($row=mysql_fetch_array($order_query))
{
$x++;
$table = $section->addTable('myOwnTableStyle'.$x);
....
unset($table);
}
来源:https://stackoverflow.com/questions/32556757/how-to-populate-data-in-mysql