Hallo, ik lees een csv bestand in. Regel voor regel wordt er op het scherm
gegeven. Maar ik zou graag twee regesl uit het csv bestand achter elkaar op
een regel willen hebben. Kan iemand me helpen ?
Gr. Jan.
Likes: 0
Hallo, ik lees een csv bestand in. Regel voor regel wordt er op het scherm
gegeven. Maar ik zou graag twee regesl uit het csv bestand achter elkaar op
een regel willen hebben. Kan iemand me helpen ?
Gr. Jan.
Jan schreef:
> Hallo,
Hallo Jan,
> ik lees een csv bestand in. Regel voor regel wordt er op het scherm
> gegeven. Maar ik zou graag twee regesl uit het csv bestand achter
> elkaar op een regel willen hebben. Kan iemand me helpen ?
Ja, even de code posten die de regels op het scherm printen, dan moet
dat zo te zien zijn.
--
Cheers,
Maarten Wierda
"Maarten Wierda" <moart3nAT@chelloDOT.invalid> schreef in bericht
news:ebs1d5$1vri$1@nl-news.euro.net...
> Jan schreef:
>
>> Hallo,
>
> Hallo Jan,
>
>> ik lees een csv bestand in. Regel voor regel wordt er op het scherm
>> gegeven. Maar ik zou graag twee regesl uit het csv bestand achter
>> elkaar op een regel willen hebben. Kan iemand me helpen ?
>
> Ja, even de code posten die de regels op het scherm printen, dan moet
> dat zo te zien zijn.
>
> --
> Cheers,
> Maarten Wierda
Hier een stukje van mijn code...... :
$hoofd_cat = $fields[0];
$sub_cat = $fields[1];
$omschrijving = $fields[2];
$prijs = $fields[3];
echo ("<TABLE BORDER=0 WIDTH=\"600\" HEIGHT=\"20\" CELLSPACING=0
CELLPADDING=0>");
if ($hoofd_cat == "1") {
$kleur = echoColor();
echo "<TR>
<TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
size=\"3\">$sub_cat</FONT></TD>
<TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
size=\"3\">$omschrijving</FONT></TD>
<TD WIDTH=\"200\" BGCOLOR=\"$kleur\" align=\"right\"><FONT
color=\"#000000\"><FONT size=\"3\">$prijs</FONT></TD></TR>";
}
} // eind if $line_num
} // eind while($fcontents)
} // eind if ($regels)
} // eind if ($fcontents)
Gr. Jan
Jan schreef:
>>> ik lees een csv bestand in. Regel voor regel wordt er op het
>>> scherm gegeven. Maar ik zou graag twee regesl uit het csv bestand
>>> achter elkaar op een regel willen hebben. Kan iemand me helpen ?
>> Ja, even de code posten die de regels op het scherm printen, dan
>> moet dat zo te zien zijn.
>
> Hier een stukje van mijn code...... :
<snip>
Kun je nog ietsje meer code posten, Jan? Misschien vanaf de while-lus?
Of zijn er al mensen die op basis van Jan's geposte code een oplossing
kunnen bieden?
--
Cheers,
Maarten Wierda
Jan wrote:
> "Maarten Wierda" <moart3nAT@chelloDOT.invalid> schreef in bericht
> news:ebs1d5$1vri$1@nl-news.euro.net...
>> Jan schreef:
>>> ik lees een csv bestand in. Regel voor regel wordt er op het scherm
>>> gegeven. Maar ik zou graag twee regesl uit het csv bestand achter
>>> elkaar op een regel willen hebben. Kan iemand me helpen ?
>>
>> Ja, even de code posten die de regels op het scherm printen, dan moet
>> dat zo te zien zijn.
>>
> Hier een stukje van mijn code...... :
>
> $hoofd_cat = $fields[0];
> $sub_cat = $fields[1];
> $omschrijving = $fields[2];
> $prijs = $fields[3];
>
> echo ("<TABLE BORDER=0 WIDTH=\"600\" HEIGHT=\"20\" CELLSPACING=0
> CELLPADDING=0>");
Je maakt aparte tabellen voor _elke_ regel?????
Lijkt me niet helemaal de bedoeling :-).
Zet voor je while loop: $even = -1;
> if ($hoofd_cat == "1") {
> $kleur = echoColor();
if($even == -1) echo '<tr>';
> echo "<TD> etc....</TD>";
if($even == 1) echo '</tr>';
$even *= -1;
Dan later in de code een controle of je met een oneven of even nummer bent
afgesloten:
if($even == 1) echo '<td colspan="3"></td></tr>';
In het posten van code, probeer zo veel mogelijk nutteloze zaken weg te
halen (zoals HTML attributen etc.). Dat maakt het voor de mensen makkelijkr
te lezen en aantrekkelijker een antwoord voor je te zoeken.
Overigens, als ik je HTML zie: je hebt toch wel van CSS gehoord? Dat scheelt
je donders veel (antieke) HTML code...
Groeten,
--
Rik Wasmus
Jan wrote:
> echo ("<TABLE BORDER=0 WIDTH=\"600\" HEIGHT=\"20\" CELLSPACING=0
> CELLPADDING=0>");
>
> if ($hoofd_cat == "1") {
> $kleur = echoColor();
> echo "<TR>
> <TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
> size=\"3\">$sub_cat</FONT></TD>
> <TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
> size=\"3\">$omschrijving</FONT></TD>
> <TD WIDTH=\"200\" BGCOLOR=\"$kleur\" align=\"right\"><FONT
> color=\"#000000\"><FONT size=\"3\">$prijs</FONT></TD></TR>";
> }
echo ("<TABLE BORDER=0 WIDTH=\"600\" HEIGHT=\"20\" CELLSPACING=0
CELLPADDING=0><TR>");
$i=0;
while (....) {
$i++;
if($i%2==0) echo "</TR><TR>";
echo "
<TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
size=\"3\">$sub_cat</FONT></TD>
<TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
size=\"3\">$omschrijving</FONT></TD>
<TD WIDTH=\"200\" BGCOLOR=\"$kleur\" align=\"right\"><FONT
color=\"#000000\"><FONT size=\"3\">$prijs</FONT></TD>";
}
echo "</TR>";
niet getest, maar zoiets is het. $i%2 test of $i even of oneven is
(deelbaar door twee zonder rest). Kun je ook $i%3 van maken als je er drie
op een regel wilt.
Michiel de Roo wrote:
> Jan wrote:
>> echo ("<TABLE BORDER=0 WIDTH=\"600\" HEIGHT=\"20\" CELLSPACING=0
>> CELLPADDING=0>");
>>
>> if ($hoofd_cat == "1") {
>> $kleur = echoColor();
>> echo "<TR>
>> <TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
>> size=\"3\">$sub_cat</FONT></TD>
>> <TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
>> size=\"3\">$omschrijving</FONT></TD>
>> <TD WIDTH=\"200\" BGCOLOR=\"$kleur\" align=\"right\"><FONT
>> color=\"#000000\"><FONT size=\"3\">$prijs</FONT></TD></TR>";
>> }
>
> echo ("<TABLE BORDER=0 WIDTH=\"600\" HEIGHT=\"20\" CELLSPACING=0
> CELLPADDING=0><TR>");
>
> $i=0;
> while (....) {
>
> $i++;
> if($i%2==0) echo "</TR><TR>";
Houd je wel in de gaten dat dit de eerste keer niet moet gebeuren? Een
ongeopende tr kan natuurlijk niet gesloten worden.
> echo "
> <TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
> size=\"3\">$sub_cat</FONT></TD>
> <TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
> size=\"3\">$omschrijving</FONT></TD>
> <TD WIDTH=\"200\" BGCOLOR=\"$kleur\" align=\"right\"><FONT
> color=\"#000000\"><FONT size=\"3\">$prijs</FONT></TD>";
> }
>
> echo "</TR>";
>
> niet getest, maar zoiets is het. $i%2 test of $i even of oneven is
> (deelbaar door twee zonder rest). Kun je ook $i%3 van maken als je er
> drie op een regel wilt.
En een check of er de rij al vol zit of niet.
Zou je kunnen doen door:
<?php
$num = 4;//of 2,3 op een rij, kan alles zijn.
$fields = 3;//hoeveel cellen een 'record' gebruikt, in dit geval 3.
$i = 0;
while(/* tja, dat hebben we niet vernomen */){
$i++;
if(($i % $num) == 1) echo '<tr>';
/* outpur van cellen */
if(($i % $num) == 0) echo '</tr>';
}
if(($i % $num) != 0){
echo '<td colspan="'.($fields * ($i % $num)).'"'></td></tr>';
}
?>
Groeten,
--
Rik Wasmus
<KNIP>
> Overigens, als ik je HTML zie: je hebt toch wel van CSS gehoord? Dat
> scheelt
> je donders veel (antieke) HTML code...
>
> Groeten,
> --
> Rik Wasmus
>
>
Ga ik zeker dan dat idee met CSS, bedankt voor de tip!
Maar ik bak er niks van........erg he. Ik plaats nu de geheele code
misschien
kan iemand aangeven wat ik verkeerd doe, ik zel kom er niet meer uit......
twee regels uit mijn csv bestand wat op een regel moet komen:
1;HP PIV 1.7 GHz VL800;? 177,01 ;;;;;;
1;256 / 40 / cd / snd / lan; ;;;;;;
dus eigenlijk zo :
HP PIV 1.7 GHz VL800 256 / 40 / cd / snd / lan ? 177,01
<?PHP
function echoColor() {
static $counter=0;
$kleur1="#FFF3E7";
$kleur2="********";
$counter++;
if ($counter%2) return $kleur1;
return $kleur2;
}
// Bestandsnaam van het comma-separated bestand
$filename = "producten.csv";
// Teken waarmee de velden van elkaar worden gescheiden
$delimiter = ";";
// Lees het bestand in
$fcontents = @file($filename);
// Kijk of het bestand werd gevonden
if (!$fcontents) {
// Fout: bestand niet gevonden
echo("<B>Fout</B><P>Het data-bestand werd niet gevonden.");
} else {
// Bestand dus wel gevonden, controleer of het wel inhoud bevat (of het meer
dan 1 regel lang is)
$regels = count($fcontents);
if ($regels < 2) {
echo("<B>Fout</B>Het data-bestand is leeg");
} else {
// kopregel
echo "<CENTER>";
echo ("<TABLE BORDER=0 WIDTH=\"600\" HEIGHT=\"20\" CELLSPACING=0
CELLPADDING=0>");
echo "<TR>
<TD WIDTH=\"600\" bgcolor=\"#ff9e0f\"><FONT color=\"#FFFF00\"><B><FONT
size=\"2\">Omschrijving</FONT></B></TD>
</TR>";
$even = -1; // toegevoegd !
// Ga het bestand regel voor regel af
while (list ($line_num, $line) = each ($fcontents)) {
// Sla eerste regel over (0 is geen regel overslaan)
if ($line_num>=0) {
// Splits de regel in aparte velden
$fields = explode($delimiter, $line);
// Benoem de velden voor de duidelijkheid. Nummering begint bij 0
$hoofd_cat = $fields[0];
$omschrijving = $fields[1];
$prijs = $fields[2];
echo ("<TABLE BORDER=0 WIDTH=\"600\" HEIGHT=\"20\" CELLSPACING=0
CELLPADDING=0>");
if ($hoofd_cat == "1") {
$kleur = echoColor();
if($even == -1) echo '<tr>'; // toegevoegd !
// echo "<TR>
<TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
size=\"3\">$sub_cat</FONT></TD>
<TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
size=\"3\">$omschrijving</FONT></TD>
<TD WIDTH=\"200\" BGCOLOR=\"$kleur\" align=\"right\"><FONT
color=\"#000000\"><FONT size=\"3\">$prijs</FONT></TD></TR>";
}
if($even == 1) echo '</tr>'; // toegevoegd !
$even *= -1; // toegevoegd !
if($even == 1) echo '<td colspan="3"></td></tr>'; // toegevoegd !
} // eind if $line_num
} // eind while($fcontents)
} // eind if ($regels)
} // eind if ($fcontents)
echo "</CENTER>";
echo "</TABLE>";
echo "</TABLE>";
echo "<BR>";
?>
Jan wrote:
> <KNIP>
>
>> Overigens, als ik je HTML zie: je hebt toch wel van CSS gehoord? Dat
>> scheelt
>> je donders veel (antieke) HTML code...
>>
>> Groeten,
>> --
>> Rik Wasmus
>>
>>
>
> Ga ik zeker dan dat idee met CSS, bedankt voor de tip!
>
> Maar ik bak er niks van........erg he. Ik plaats nu de geheele code
> misschien
> kan iemand aangeven wat ik verkeerd doe, ik zel kom er niet meer
> uit......
>
> twee regels uit mijn csv bestand wat op een regel moet komen:
> 1;HP PIV 1.7 GHz VL800;? 177,01 ;;;;;;
> 1;256 / 40 / cd / snd / lan; ;;;;;;
>
> dus eigenlijk zo :
> HP PIV 1.7 GHz VL800 256 / 40 / cd / snd / lan ? 177,01
Kijk, dat maakt behoorlijk uit.
Is er een erg goede reden voor dat je deze 2 gekoppelde zaken op 2 regels in
je csv wil hebben? Ik kan de boel makkelijk voor je herschrijven, maar het
lijkt mij een structureel betere aanpak deze informatie gewoon op 1 regel te
zetten.
Wat is de reden voor de lege velden eigenlijk?
Groeten,
--
Rik Wasmus
"Rik" <luiheidsgoeroe@hotmail.com> schreef in bericht
news:20673$44e1f17c$8259c69c$9925@news1.tudelft.nl ...
> Jan wrote:
>> <KNIP>
>>
>>> Overigens, als ik je HTML zie: je hebt toch wel van CSS gehoord? Dat
>>> scheelt
>>> je donders veel (antieke) HTML code...
>>>
>>> Groeten,
>>> --
>>> Rik Wasmus
>>>
>>>
>>
>> Ga ik zeker dan dat idee met CSS, bedankt voor de tip!
>>
>> Maar ik bak er niks van........erg he. Ik plaats nu de geheele code
>> misschien
>> kan iemand aangeven wat ik verkeerd doe, ik zel kom er niet meer
>> uit......
>>
>> twee regels uit mijn csv bestand wat op een regel moet komen:
>> 1;HP PIV 1.7 GHz VL800;? 177,01 ;;;;;;
>> 1;256 / 40 / cd / snd / lan; ;;;;;;
>>
>> dus eigenlijk zo :
>> HP PIV 1.7 GHz VL800 256 / 40 / cd / snd / lan ? 177,01
>
> Kijk, dat maakt behoorlijk uit.
> Is er een erg goede reden voor dat je deze 2 gekoppelde zaken op 2 regels
> in
> je csv wil hebben? Ik kan de boel makkelijk voor je herschrijven, maar het
> lijkt mij een structureel betere aanpak deze informatie gewoon op 1 regel
> te
> zetten.
>
> Wat is de reden voor de lege velden eigenlijk?
>
> Groeten,
> --
> Rik Wasmus
Ik Probeer het uit te leggen en ik hoop er ook iets van te leren. Ik heb een
csv bestand
waar op de even regels bijv het type pc staat en daar achter de prijs. Op
de oneven
regels staan de specificaties. Leuk zou zijn om dit allemaal op een regel te
krijgen en
gewisseld met een kleurtje. Nu met mijn freubelwerk uit een PHP boek krijg
ik het
volgende
http://jansfotos.hobby-site.com/prij..._producten.php
Lege velden wil ik eigenlijk niet, is meer om het overzichtelijk te laten
zien.
( Ik doe dit om bezig te zijn, zit in een rolstoel met COPD beperkingen, en
ook om
mijn kennis te helpen met zijn website.)
Groet, Jan.
Rik wrote:
> Michiel de Roo wrote:
>
>>Jan wrote:
>>
>>>echo ("<TABLE BORDER=0 WIDTH=\"600\" HEIGHT=\"20\" CELLSPACING=0
>>>CELLPADDING=0>");
>>>
>>>if ($hoofd_cat == "1") {
>>>$kleur = echoColor();
>>>echo "<TR>
>>><TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
>>>size=\"3\">$sub_cat</FONT></TD>
>>><TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
>>>size=\"3\">$omschrijving</FONT></TD>
>>><TD WIDTH=\"200\" BGCOLOR=\"$kleur\" align=\"right\"><FONT
>>>color=\"#000000\"><FONT size=\"3\">$prijs</FONT></TD></TR>";
>>>}
>>
>>echo ("<TABLE BORDER=0 WIDTH=\"600\" HEIGHT=\"20\" CELLSPACING=0
>>CELLPADDING=0><TR>");
>>
>>$i=0;
>>while (....) {
>>
>>$i++;
>>if($i%2==0) echo "</TR><TR>";
>
>
> Houd je wel in de gaten dat dit de eerste keer niet moet gebeuren? Een
> ongeopende tr kan natuurlijk niet gesloten worden.
gebeurt direct na de <table...>. De eerste keer geldt $i=1, dus dan
gebeurt er niks.
Michiel de Roo wrote:
> Rik wrote:
>> Michiel de Roo wrote:
>>
>>> Jan wrote:
>>>
>>>> echo ("<TABLE BORDER=0 WIDTH=\"600\" HEIGHT=\"20\" CELLSPACING=0
>>>> CELLPADDING=0>");
>>>>
>>>> if ($hoofd_cat == "1") {
>>>> $kleur = echoColor();
>>>> echo "<TR>
>>>> <TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
>>>> size=\"3\">$sub_cat</FONT></TD>
>>>> <TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
>>>> size=\"3\">$omschrijving</FONT></TD>
>>>> <TD WIDTH=\"200\" BGCOLOR=\"$kleur\" align=\"right\"><FONT
>>>> color=\"#000000\"><FONT size=\"3\">$prijs</FONT></TD></TR>";
>>>> }
>>>
>>> echo ("<TABLE BORDER=0 WIDTH=\"600\" HEIGHT=\"20\" CELLSPACING=0
>>> CELLPADDING=0><TR>");
>>>
>>> $i=0;
>>> while (....) {
>>>
>>> $i++;
>>> if($i%2==0) echo "</TR><TR>";
>>
>>
>> Houd je wel in de gaten dat dit de eerste keer niet moet gebeuren?
>> Een ongeopende tr kan natuurlijk niet gesloten worden.
>
> gebeurt direct na de <table...>. De eerste keer geldt $i=1, dus dan
> gebeurt er niks.
Oeps, te snel over de code gekeken, je m'excuse.
Grtz,
--
Rik Wasmus
>>> Houd je wel in de gaten dat dit de eerste keer niet moet gebeuren?
>>> Een ongeopende tr kan natuurlijk niet gesloten worden.
>>
>> gebeurt direct na de <table...>. De eerste keer geldt $i=1, dus dan
>> gebeurt er niks.
>
> Oeps, te snel over de code gekeken, je m'excuse.
>
> Grtz,
> --
> Rik Wasmus
>
<KNIP>
> Overigens, als ik je HTML zie: je hebt toch wel van CSS gehoord? Dat
> scheelt
> je donders veel (antieke) HTML code...
>
> Groeten,
> --
> Rik Wasmus
>
Sorry maar ik kom er nog niet uit Rik........ misschien kun je in
onderstaande
code aangeven wat ik kan veranderen ?
Groet, Jan.
Maar ik bak er niks van........erg he. Ik plaats nu de geheele code
misschien
kan iemand aangeven wat ik verkeerd doe, ik zel kom er niet meer uit......
twee regels uit mijn csv bestand wat op een regel moet komen:
1;HP PIV 1.7 GHz VL800;? 177,01 ;;;;;;
1;256 / 40 / cd / snd / lan; ;;;;;;
dus eigenlijk zo :
HP PIV 1.7 GHz VL800 256 / 40 / cd / snd / lan ? 177,01
<?PHP
function echoColor() {
static $counter=0;
$kleur1="#FFF3E7";
$kleur2="********";
$counter++;
if ($counter%2) return $kleur1;
return $kleur2;
}
// Bestandsnaam van het comma-separated bestand
$filename = "producten.csv";
// Teken waarmee de velden van elkaar worden gescheiden
$delimiter = ";";
// Lees het bestand in
$fcontents = @file($filename);
// Kijk of het bestand werd gevonden
if (!$fcontents) {
// Fout: bestand niet gevonden
echo("<B>Fout</B><P>Het data-bestand werd niet gevonden.");
} else {
// Bestand dus wel gevonden, controleer of het wel inhoud bevat (of het meer
dan 1 regel lang is)
$regels = count($fcontents);
if ($regels < 2) {
echo("<B>Fout</B>Het data-bestand is leeg");
} else {
// kopregel
echo "<CENTER>";
echo ("<TABLE BORDER=0 WIDTH=\"600\" HEIGHT=\"20\" CELLSPACING=0
CELLPADDING=0>");
echo "<TR>
<TD WIDTH=\"600\" bgcolor=\"#ff9e0f\"><FONT color=\"#FFFF00\"><B><FONT
size=\"2\">Omschrijving</FONT></B></TD>
</TR>";
$even = -1; // toegevoegd !
// Ga het bestand regel voor regel af
while (list ($line_num, $line) = each ($fcontents)) {
// Sla eerste regel over (0 is geen regel overslaan)
if ($line_num>=0) {
// Splits de regel in aparte velden
$fields = explode($delimiter, $line);
// Benoem de velden voor de duidelijkheid. Nummering begint bij 0
$hoofd_cat = $fields[0];
$omschrijving = $fields[1];
$prijs = $fields[2];
echo ("<TABLE BORDER=0 WIDTH=\"600\" HEIGHT=\"20\" CELLSPACING=0
CELLPADDING=0>");
if ($hoofd_cat == "1") {
$kleur = echoColor();
if($even == -1) echo '<tr>'; // toegevoegd !
// echo "<TR>
<TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
size=\"3\">$sub_cat</FONT></TD>
<TD WIDTH=\"300\" BGCOLOR=\"$kleur\"><FONT color=\"#000000\"><FONT
size=\"3\">$omschrijving</FONT></TD>
<TD WIDTH=\"200\" BGCOLOR=\"$kleur\" align=\"right\"><FONT
color=\"#000000\"><FONT size=\"3\">$prijs</FONT></TD></TR>";
}
if($even == 1) echo '</tr>'; // toegevoegd !
$even *= -1; // toegevoegd !
if($even == 1) echo '<td colspan="3"></td></tr>'; // toegevoegd !
} // eind if $line_num
} // eind while($fcontents)
} // eind if ($regels)
} // eind if ($fcontents)
echo "</CENTER>";
echo "</TABLE>";
echo "</TABLE>";
echo "<BR>";
?>
"Jan" <janvh@hotmail.com> wrote:
> twee regels uit mijn csv bestand wat op een regel moet komen:
> 1;HP PIV 1.7 GHz VL800;? 177,01 ;;;;;;
> 1;256 / 40 / cd / snd / lan; ;;;;;;
>
> dus eigenlijk zo :
> HP PIV 1.7 GHz VL800 256 / 40 / cd / snd / lan ? 177,01
<knip | PHP script>
Er klopt in dat script veel niet; o.a. de maatvoering der elementen is
niet passend, het refereren aan niet bestaande variabelen (als bijv.
'$sub_cat') is, zeg, 'suboptimaal' en het werken met de even en oneven
rijen gaat daarbij niet op de manier die nodig is; maar dat zal deels
komen door een misverstand bij anderen...
Laat is een simpel maar volledig voorbeeldje geven dat m.i. al aardig doet
wat je wilt:
<html><head>
<title
>Example</title>
<style
type = "text/css"
>
body {
font-size : 100%;
background : #fff;
color : #000;
}
table.prodTable {
border-collapse : collapse;
}
table.prodTable th {
background : #000;
color : #fff;
border : 1px solid #fff;
}
table.prodTable td {
border : 1px solid #fff;
padding : .1em .5em;
}
tr.prodrow0 {
background : #ededca;
}
tr.prodrow1 {
background : #e8e8e8;
}
</style>
<script
type = "text/javascript"
>
</script>
</head>
<body><?php
$filename = "producten.csv";
$delimiter = ";";
$fcontents = @file($filename);
if (!$fcontents) {
echo("<B>Fout</B><P>Het data-bestand werd niet gevonden.");
}
else {
if (count($fcontents) < 2) {
echo("<b>Fout</b>Het data-bestand is leeg.");
}
else {
echo "<table",
" class = 'prodTable'",
" align = 'center'",
" cellspacing = '0'",
" cellpadding = '2'",
" border = '1'",
">";
echo "<tr>";
echo "<th>Omschrijving</th>",
"<th>Specificaties</th>",
"<th>Prijs</th>";
echo "</tr>";
$rowCount = 0;
for ($i=0; $i<count($fcontents); $i++) {
if (!($line = trim($fcontents[$i]))) continue;
$fields = explode($delimiter, $line);
$hoofd_cat = $fields[0] + 0;
$omschrijving = $fields[1];
$prijs = $fields[2];
$i++; if ($i==count($fcontents)) break;
if (!($line = trim($fcontents[$i]))) continue;
$fields = explode($delimiter, $line);
$spec = $fields[1];
if ($hoofd_cat == 1) {
echo "<tr",
" class = 'prodrow" . ($rowCount & 1) . "'",
">";
echo "<td>" . htmlspecialchars($omschrijving) . "</td>",
"<td>" . htmlspecialchars($spec) . "</td>",
"<td>" . htmlspecialchars($prijs) . "</td>";
echo "</tr>";
$rowCount++;
}
}
echo "</table>";
}
}
?></body></html>
WD
"Warden Dave" <warden_dave@mnsys.invalid> wrote:
> Laat is een simpel maar volledig voorbeeldje geven
<knip>
Ik vergat de voorbeeld URL: http://www.mnsys.org/temp/csv.php
WD