Hallo liebe Forumsmitglieder,
bin zum ersten Mal hier und absolute Anfängerin in PHP. Habe vor kurzem begonnen PHP zu lernen, dazu auch ein Buch gekauft "Einstieg in PHP 5.3 und MySQL 5.5". Bin dabei mir anhand von Beispielübungen das bisher gelernte und gelesene zu festigen.
Ich habe ein Skript geschrieben wo in einer Textdatei mittels Eingabe aus einem erstellten Formular ein Name (Nachname) gesucht und ausgegeben wird. Es klappt soweit auch alles bestens. Zusätzlich wollte ich nun das wenn im Feld Nachname ein Name eingegeben wird der nicht existiert, eine Fehlermeldung erscheint wie zum Beispiel "keine Adresse gefunden".
Habe dies dann mit der else - Anweisung definiert. Nun passiert aber folgendes; jede Zeile wird durchsucht und wenn der Namen in dieser Zeile nicht vorhanden ist dann erscheint die Fehlermeldung.
Beispiel: (Meine Textdatei hat insgesamt 3 Zeilen und ich habe als such-Name "Muster" eingegeben)
Ich möchte aber das die Fehlermeldung erst erscheint wenn alle Zeilen durchsucht worden sind und der Name nicht vorhanden ist.
Ich denke der Fehler ist, dass ich "else" innerhalb der Anweisung setze wo definiert ist, dass es zeilenweise durchsucht werden soll und von daher ist es wohl logisch das er dann auch pro Zeile den Fehler ausgibt.
Sehe ich das richtig?
Muss ich nochmals eine separate if/else - Anweisung schreiben damit er dies nicht zeilenweise ausgibt?
Wo muss ich ansetzen? Könnt ihr mir da etwas weiterhelfen?
Hier den Code den ich dafür geschrieben habe:
Ich hoffe ich habe mich verständlich genug ausgedrückt. Bitte habt ein bisschen Verständnis bin absoluter Newbie.
Danke
Angi
bin zum ersten Mal hier und absolute Anfängerin in PHP. Habe vor kurzem begonnen PHP zu lernen, dazu auch ein Buch gekauft "Einstieg in PHP 5.3 und MySQL 5.5". Bin dabei mir anhand von Beispielübungen das bisher gelernte und gelesene zu festigen.
Ich habe ein Skript geschrieben wo in einer Textdatei mittels Eingabe aus einem erstellten Formular ein Name (Nachname) gesucht und ausgegeben wird. Es klappt soweit auch alles bestens. Zusätzlich wollte ich nun das wenn im Feld Nachname ein Name eingegeben wird der nicht existiert, eine Fehlermeldung erscheint wie zum Beispiel "keine Adresse gefunden".
Habe dies dann mit der else - Anweisung definiert. Nun passiert aber folgendes; jede Zeile wird durchsucht und wenn der Namen in dieser Zeile nicht vorhanden ist dann erscheint die Fehlermeldung.
Beispiel: (Meine Textdatei hat insgesamt 3 Zeilen und ich habe als such-Name "Muster" eingegeben)
HTML-Code:
Keine Adresse gefunden. Hans Muster Seestrasse 54300 Mustern 011 213 20 20 Keine Adresse gefunden.
Ich möchte aber das die Fehlermeldung erst erscheint wenn alle Zeilen durchsucht worden sind und der Name nicht vorhanden ist.
Ich denke der Fehler ist, dass ich "else" innerhalb der Anweisung setze wo definiert ist, dass es zeilenweise durchsucht werden soll und von daher ist es wohl logisch das er dann auch pro Zeile den Fehler ausgibt.
Sehe ich das richtig?
Muss ich nochmals eine separate if/else - Anweisung schreiben damit er dies nicht zeilenweise ausgibt?
Wo muss ich ansetzen? Könnt ihr mir da etwas weiterhelfen?
Hier den Code den ich dafür geschrieben habe:
PHP-Code:
[LEFT]<html>
<body>
<?php
if( !file_exists ("adressen.txt"))
{
echo "Datei konnte nicht gefunden werden";
exit;
}
$datei = fopen("adressen.txt","r");
if(!$datei)
{
echo "Datei konnte nicht geöffnet werden";
exit;
}
$datei = file("adressen.txt");
echo "<table border='1'>";
echo "<tr><td><b>Vorname</td></b>" . "<td><b>Nachname</td></b>" . "<td><b>Strasse</td></b>" . "<td><b>PLZ</td></b>" . "<td><b>Ort</td></b>" ."<td><b>Tel.</b></td></tr>";
foreach($datei as $ausgabe)
{
$daten = explode(";", $ausgabe);
echo "<tr><td>$daten[0]</td>" . "<td>$daten[1]</td>" . "<td>$daten[2]</td>" . "<td>$daten[3]</td>" . "<td>$daten[4]</td>" . "<td>$daten[5]</td>";
}
echo "</table>";
 
?>
<p>Bitte tragen Sie einen Nachnamen ein und<br />
senden Sie anschließend das Formular ab.</p>
<form action="" method="post">
<input type="text" name="nachname">
<input type="submit" name="cmd" value="Suchen">
</form>
<?php
 
/*
* Zeilenweise das Array durchsuchen und Ausgeben.
*/
if (isset($_POST['nachname'])) {
if ($_POST['nachname'] !='') {
$nachname = $_POST['nachname'];
}
foreach($datei as $ausgabe)
{
$daten = explode(";", $ausgabe);
if (strtolower($_POST['nachname']) == strtolower($daten[1])){
echo "<table border='1'>";
echo "<tr><td>$daten[0]</td>" . "<td>$daten[1]</td>" . "<td>$daten[2]</td>" . "<td>$daten[3]</td>" . "<td>$daten[4]</td>" . "<td>$daten[5]</td>";
echo "</table>";
}else
echo "Keine Adresse gefunden.";
{
}
}
}
?>
</body>
</html>[/LEFT]
Ich hoffe ich habe mich verständlich genug ausgedrückt. Bitte habt ein bisschen Verständnis bin absoluter Newbie.
Danke
Angi
Kommentar