Hallo, ik heb een script gemaakt waarbij een tekstbestand (adressen) wordt uitgelezen en vanuit dit bestand wil ik een zoekopdracht doen.
Echter pakt ie steeds de laatste naam.De anderen kan ie niet vinden.
Iemand een idee wat ik verkeerd doe?
Alvast bedankt, zie onder het script

<?php
include "header.inc.php"; //header
kader("Adressen-bestand");

?>


<?php


//creeren van een file pointer

$fp=fopen("readfile.txt","r");
//als het bestand niet geopend is
//door wat van een rede dan ook.

if (!$fp){
echo "File is niet te openen";

}

else{


$gegevens=file("readfile.txt");
$adressen=count($gegevens);
for($i=0; $i<$adressen; $i++){
$items=explode(";",$gegevens[$i]);

$voornaam=$items[0];
$achternaam=$items[1];
$adres=$items[2];
$postcode=$items[3];
$plaats=$items[4];
$telefoonnummer=$items[5];


echo "
<table border=\"0\" width=\"700\" >
<tr width=100><td>".$achternaam."</td>
<td width=100>".$voornaam."</td>
<td width=200>".$adres."</td>
<td width=80>".$postcode."</td>
<td width=100>".$plaats."</td>
<td width=100>".$telefoonnummer."</td>
</tr>
</table>";


}

}
if ( $achternaam == $_POST["naam"])

{
echo
"
Adresgegegevens:
<table class=\"pers\" border=\"1\" width=\"200\">
<tr><td>".$voornaam." ".$achternaam."</td></tr>
<tr><td>".$adres. "</td></tr>
<tr><td>".$postcode. " ".$plaats. "</td></tr>
<tr><td>".$telefoonnummer. "</td></tr>
</table><p>";

}else{
echo "<font color=\"red\">Vul de juiste naam in aub</font>";
}

echo "<form method=\"post\">
Zoeken op achternaam: <input type=\"text\" name=\"naam\" ><br>\n
<input type=\"submit\" value=\"Zoeken\">
</form>";


fclose($fp);

?>

<?php
include "footer.inc.php"; //footer
footer($voettekst);

?>
In $achternaam staat alleen de laatste waarde die uit die lijst is gehaald. Je moet zorgen dat je alle achternamen in een array opslaat. En dan gaat kijken of de achternaam in die array staat.
Direct na het lezen van de file mag je de file sluiten.

Verder: (niet uitgeprobeerd)

<?php


//creeren van een file pointer

$fp=fopen("readfile.txt","r");
//als het bestand niet geopend is
//door wat van een rede dan ook.

if (!$fp)
{
echo "File is niet te openen";
}
else
{
$gegevens=file("readfile.txt");
fclose($fp);
$adressen=count($gegevens);
$geposte_persoon = "";
for($i=0; $i<$adressen; $i++)
{
$items=explode(";",$gegevens[$i]);

$voornaam=$items[0];
$achternaam=$items[1];
$adres=$items[2];
$postcode=$items[3];
$plaats=$items[4];
$telefoonnummer=$items[5];

if ( $achternaam == $_POST["naam"])
{
$geposte_persoon =
"
Adresgegegevens:
<table class=\"pers\" border=\"1\" width=\"200\">
<tr><td>".$voornaam." ".$achternaam."</td></tr>
<tr><td>".$adres. "</td></tr>
<tr><td>".$postcode. " ".$plaats. "</td></tr>
<tr><td>".$telefoonnummer. "</td></tr>
</table><p>";
}
echo "
<table border=\"0\" width=\"700\" >
<tr width=100><td>".$achternaam."</td>
<td width=100>".$voornaam."</td>
<td width=200>".$adres."</td>
<td width=80>".$postcode."</td>
<td width=100>".$plaats."</td>
<td width=100>".$telefoonnummer."</td>
</tr>
</table>";
}

}

{
if ($geposte_persoon != '')
echo $geposte_persoon;
else
{
echo "<font color=\"red\">Vul de juiste naam in aub</font>";
}

echo "<form method=\"post\">
Zoeken op achternaam: <input type=\"text\" name=\"naam\" ><br>\n
<input type=\"submit\" value=\"Zoeken\">
</form>";

?>

Laat maar weten mocht het niet zijn wat je wou.
Hallo Emmanuel,

hartstikke bedankt, je hebt me hier enorm mee geholpen.
het was een opdracht (PHP cursus) waar ik nu al een geruime tijd mee heb geworsteld.
Ook Martijn bedankt voor je reaktie.

Groet
Mario

Reageren