Timmy Ownage
Gebruiker
- Lid geworden
- 11 jan 2008
- Berichten
- 60
Hallo,
Ik zit met een probleem. Ik wil graag mijn data van twee SQL-tabellen exporteren naar excel en zo dat deze gecombineerd worden in 1 excel-bestand. Even uitleggen:
Mijn database ziet er zo uit:
Tabel vragen:
Tabel antwoorden:
Ik ben al een heel end met de code. De code ziet er nu zo uit:
Excel.php
exportcsv.inc.php
Als ik momenteel met deze code excel.php uitvoer, dan krijg ik dit excel bestand:
Ik wil echter dat ook de antwoorden nog ingevoegd worden, namelijk in dit formaat:
Zoals je al kon zien zijn de antwoorden in dit formaat weergegeven in de database: 3|2|1 1|2|3 etc. waar 1 correspondeert met antwoord 1, 2 met antwoord 2 enzovoort.
Mijn probleem is nu hoe ik dat netjes naast elkaar weer kan geven. De vragen heb ik dus nu al netjes onder elkaar. Ik wil nu dat de antwoorden nog naast de vragen worden weergegeven, zie ook de foto hier boven. Als dit lukt kan ik voor de "klant" een codetabel bijvoegen, waaruit hij kan aflezen welk nummer correspondeert met welk antwoord. Dit is overigens een examenopdracht voor informatica. Ik heb al ruim 10 uur geëxperimenteerd met coderen en dergelijke maar kom er niet uit. Als laatste wanhoopspoging heb ik hier maar een bericht geplaatst. Hopelijk kan iemand me helpen! Als er nog enige informatie ontbreekt, zeg het dan even en ik zal binnen enkele uren reageren.
Ik zit met een probleem. Ik wil graag mijn data van twee SQL-tabellen exporteren naar excel en zo dat deze gecombineerd worden in 1 excel-bestand. Even uitleggen:
Mijn database ziet er zo uit:
Tabel vragen:

Tabel antwoorden:

Ik ben al een heel end met de code. De code ziet er nu zo uit:
Excel.php
PHP:
<?php
$host = "mysql11.000webhost.com";
$db = "*******_enquete";
$user = "********_enquete";
$pass = "*******";
// Connect to the database
$link = mysql_connect($host, $user, $pass);
mysql_select_db($db);
require 'exportcsv.inc.php';
$table="vragen"; // this is the tablename that you want to export to csv from mysql.
exportMysqlToCsv($table);
?>
exportcsv.inc.php
PHP:
<?php
function exportMysqlToCsv($table,$filename = 'export.csv')
{
$csv_terminated = "\n";
$csv_separator = ",";
$csv_enclosed = '"';
$csv_escaped = "\\";
$sql_query = "select vraag from vragen where id>0";
// Gets the data from the database
$result = mysql_query($sql_query);
$fields_cnt = mysql_num_fields($result);
$schema_insert = '';
for ($i = 0; $i < $fields_cnt; $i++)
{
$l = $csv_enclosed . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed,
stripslashes(mysql_field_name($result, $i))) . $csv_enclosed;
$schema_insert .= $l;
$schema_insert .= $csv_separator;
} // end for
$out = trim(substr($schema_insert, 0, -1));
$out .= $csv_terminated;
// Format the data
while ($row = mysql_fetch_array($result))
{
$schema_insert = '';
for ($j = 0; $j < $fields_cnt; $j++)
{
if ($row[$j] == '0' || $row[$j] != '')
{
if ($csv_enclosed == '')
{
$schema_insert .= $row[$j];
} else
{
$schema_insert .= $csv_enclosed .
str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, $row[$j]) . $csv_enclosed;
}
} else
{
$schema_insert .= '';
}
if ($j < $fields_cnt - 1)
{
$schema_insert .= $csv_separator;
}
} // end for
$out .= $schema_insert;
$out .= $csv_terminated;
} // end while
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Length: " . strlen($out));
// Output to browser with appropriate mime type, you choose ;)
header("Content-type: text/x-csv");
//header("Content-type: text/csv");
//header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=$filename");
echo $out;
exit;
}
?>
Als ik momenteel met deze code excel.php uitvoer, dan krijg ik dit excel bestand:

Ik wil echter dat ook de antwoorden nog ingevoegd worden, namelijk in dit formaat:

Zoals je al kon zien zijn de antwoorden in dit formaat weergegeven in de database: 3|2|1 1|2|3 etc. waar 1 correspondeert met antwoord 1, 2 met antwoord 2 enzovoort.
Mijn probleem is nu hoe ik dat netjes naast elkaar weer kan geven. De vragen heb ik dus nu al netjes onder elkaar. Ik wil nu dat de antwoorden nog naast de vragen worden weergegeven, zie ook de foto hier boven. Als dit lukt kan ik voor de "klant" een codetabel bijvoegen, waaruit hij kan aflezen welk nummer correspondeert met welk antwoord. Dit is overigens een examenopdracht voor informatica. Ik heb al ruim 10 uur geëxperimenteerd met coderen en dergelijke maar kom er niet uit. Als laatste wanhoopspoging heb ik hier maar een bericht geplaatst. Hopelijk kan iemand me helpen! Als er nog enige informatie ontbreekt, zeg het dan even en ik zal binnen enkele uren reageren.
Laatst bewerkt: