Hallo Chainy
Es klappt nun, das CSV wird erstellt.
Jedoch werden nicht nur die selektierten Einträge (mittels Checkbox) sondern alle ins CSV geschrieben. Zusaätzlich werden die Spalten doppelt eingetragen!
Mein Form:
Der ISSET:
Der Select gibt folgende Ausgsabe zurück bei einer Tabelle mit 6 Einträgen bei denen ich die ersten 3 selektiere:
Kannst du mir noch einen Tipp geben wie ich die doppelten rauskriege und nur die effektiv selektierten ins CSV schreibe?
Besten Dank
Es klappt nun, das CSV wird erstellt.
Jedoch werden nicht nur die selektierten Einträge (mittels Checkbox) sondern alle ins CSV geschrieben. Zusaätzlich werden die Spalten doppelt eingetragen!
Mein Form:
PHP:
<tr>
<td colspan="4" valign="top"><form name="datei" action="body.php" method="post"><table width="1240" border="0" cellpadding="5" cellspacing="4">
<tr>
<td colspan="8"><input type="submit" name="button" id="button" value="CSV erstellen"></td>
</tr>
<tr>
<th width="60" class="navsub">Auswahl</th>
<th class="navsub" width="113">Buchungskreis</th>
<th class="navsub" width="90">Kreditor</th>
<th class="navsub" width="128">Kreditornummer</th>
<th class="navsub" width="131">Betrag</th>
<th class="navsub" width="70">Währeung</th>
<th class="navsub" width="150">Genehmiger</th>
<th class="navsub" width="100">Belegnummer</th>
</tr>
<?php
$i = 0;
$bg = '';
do {
if( $i % 2 == 0 ) {
$bg = $zebra1;
} else {
$bg = $zebra2;
}
$i++; ?>
<tr onMouseOver="setPointer(this, <?php echo $i; ?>, 'over', '<?php echo $bg; ?>', '<?php echo $roll; ?>', '<?php echo $fix; ?>');" onMouseOut="setPointer(this, <?php echo $i; ?>, 'out', '<?php echo $bg; ?>', '<?php echo $roll; ?>', '<?php echo $fix; ?>');" onMouseDown="setPointer(this, <?php echo $i; ?>, 'click', '<?php echo $bg; ?>', '<?php echo $roll; ?>', '<?php echo $fix; ?>');">
<td bgcolor="<?php echo $bg; ?>" class="tabtext"><input type="checkbox" name="csv[]" value="<?= $row_docs['comp_no'] ?>" /></td>
<td bgcolor="<?php echo $bg; ?>" class="tabtext"><?php echo $row_docs['comp_no']; ?></td>
<td bgcolor="<?php echo $bg; ?>" class="tabtext"><?php echo $row_docs['supplier_name']; ?></td>
<td bgcolor="<?php echo $bg; ?>" class="tabtext"><?php echo $row_docs['supplier_num']; ?></td>
<td bgcolor="<?php echo $bg; ?>" class="tabtext"><?php echo $row_docs['invoice_sum']; ?></td>
<td bgcolor="<?php echo $bg; ?>" class="tabtext"><?php echo $row_docs['invoice_currency']; ?></td>
<td bgcolor="<?php echo $bg; ?>" class="tabtext"><?php echo $row_docs['last_acceptor']; ?></td>
<td bgcolor="<?php echo $bg; ?>" class="tabtext"><?php echo $row_docs['voucher_num']; ?></td>
</tr>
<?php } while ($row_docs = mssql_fetch_array($docs)); ?>
<tr>
<td height="30" colspan="9" align="right" valign="bottom"> </td>
</tr>
</table>
</form></td>
Der ISSET:
PHP:
// CSV erstellen
if( isset($_POST['csv']) && is_array($_POST['csv']) && sizeof($_POST['csv']) > 0 )
{
$strSql = "SELECT comp_no, supplier_name, supplier_num, invoice_currency, last_acceptor, voucher_num FROM docs WHERE comp_no IN('". implode("', '", $_POST['csv']) ."')";
$intResult = mssql_query($strSql);
$arrRows = array();
$rscCsv = fopen('file.csv', 'w');
while( $intResult && $arrRow = mssql_fetch_array($intResult) )
{
fputcsv($rscCsv, $arrRow);
}
fclose($rscCsv);
}
Der Select gibt folgende Ausgsabe zurück bei einer Tabelle mit 6 Einträgen bei denen ich die ersten 3 selektiere:
PHP:
SELECT comp_no, supplier_name, supplier_num, invoice_currency, last_acceptor, voucher_num FROM docs WHERE comp_no IN('111', '111', '111')
Kannst du mir noch einen Tipp geben wie ich die doppelten rauskriege und nur die effektiv selektierten ins CSV schreibe?
Besten Dank