2013-08-18 6 views
-1

Я знаю, как экспортировать MySQL TABLE в Excel. Но моя проблема в том, что у меня сложный сценарий, благодаря которому я могу получать данные из нескольких таблиц MySQL и размещать их на выходе таблицы HTML. Мой вопрос: как я могу получить эти данные в виде Excel?Экспорт моих данных из комбинации таблиц MySQL в Excel

Вот мой код

<?php 
include(".../dbconnect.txt"); 

$result = mysql_query("select * from main_table where jobid='".$_GET['jobid']."'") or die(mysql_error()); 
?> 

<table width='1450'> 
<tr> 
<td>S/N</td> 
<td>Job Title</td> 
<td>Applicant</td> 
<td>Date</td> 
<td>Expe</td> 
<td>Course</td> 
<td>Email</td> 
<td>Quali</td> 
<td>Age</td> 
<td>Gender</td> 
</tr> 
<?php 
$cnt =1; 
while($row = mysql_fetch_array($result)){ 
$count = $cnt; $cnt++; 
?> 
<tr> 
<td> 
<?php echo $count; ?> 
</td> 
<td> 
<?php 
$re = mysql_query("select * from table1 where id='".$_GET['jobid']."'") or die(mysql_error()); 
$rw = mysql_fetch_array($re); 
echo $rw['title']; 
?> 
</td> 
<td> 
<?php 
$re1 = mysql_query("select * from table2 where email='".$row['email']."'") or die(mysql_error()); 
$rw1 = mysql_fetch_array($re1); 

echo ucwords($rw1['fname']); 
echo "&nbsp;"; 
echo ucwords($rw1['lname']); 
?> 
</td> 
<td><?php echo $row['date']; ?></td> 
<td> 
<?php 
$re2 = mysql_query("select * from table3 where email='".$row['email']."'") or  die(mysql_error()); 
$rw2 = mysql_fetch_array($re2); 
echo $rw2['years']; 
?> 
</td> 
<td> 
<?php 
$re3 = mysql_query("select * from table4 where email='".$row['email']."'") or die(mysql_error()); 
$rw3 = mysql_fetch_array($re3); 
echo ucwords($rw3['course']); 
?> 
</td> 
<td> 
<?php echo $row['email']; ?> 
</td> 
<td> 
<?php 
echo $rw3['quali']; 
?> 
</td> 
<td> 
<?php echo $rw1['age']; ?> 
</td> 
<td> 
<?php echo $rw1['gender']; ?> 
</td> 
</tr> 
<?php } ?> 
</table> 

HTML, результат что-то вроде этого:

S/N Job Title Applicant Date Expe Course Email Quali Age Gender 
1 Program Officer - Clinical Services  Username Surname Wed 31, Jul, 2013 1  Agricultural Engineering [email protected]  BEng 24 Male 
2 Program Officer - Clinical Services  Username Surname Wed 31, Jul, 2013 3  Political Science [email protected]  BSc  33 Male 
3 Program Officer - Clinical Services  Username Surname Wed 31, Jul, 2013 1 Microbiology [email protected]  HND  25 Female 

Как вывести эту таблицу в Excel, а?

+2

Используйте одну из многих библиотек, таких как [PHPExcel] (https://phpexcel.codeplex.com/), которые могут писать файлы Excel. –

+0

Это не дубликат. –

+0

Сразу же после вашего первоначального запроса просмотрите результаты и выполните все другие подзапросы и хранить все в массиве. Теперь массив можно передать либо вашему шаблону html (вам нужно будет настроить его для использования массива), либо вашему генератору excel. Вы также получите код, который намного легче читать. – Cerad

ответ

0

Это пример того, как преобразовать все ваши запросы в хороший массив, который может быть передан либо вашему html, либо вашему excel. Через некоторое время мне стало скучно, поэтому я только ввел несколько запросов. Но вы должны быть в состоянии отсюда.

$rows = mysql_query("select * from main_table where jobid='".$_GET['jobid']."'") or die(mysql_error()); 
$items = array(); 

while($row = mysql_fetch_array($result)) 
{ 
    $item = array(); 

    // Master stuff 
    $item['date'] = $row['date']; 

    // Title 
    $re = mysql_query("select * from table1 where id='".$_GET['jobid']."'") or die(mysql_error()); 
    $rw = mysql_fetch_array($re); 
    $item['title'] = $rw['title']; 

    // Names 
    $re1 = mysql_query("select * from table2 where email='".$row['email']."'") or die(mysql_error()); 
    $rw1 = mysql_fetch_array($re1); 

    $item['name'] = ucwords($rw1['fname']) . ' ' . ucwords($rw1['lname']); 

    // ... rest of queries 

    // Add to list 
    $items[] = $item; 
} 

Я предложу немного ознакомиться с работой слева. Вы можете значительно сократить количество запросов. Возможно даже до одного.

+0

спасибо вам всем. Я решил это. –