CVS auslesen per Suchmaske
Shawan
- php
Hallo
ich möchte gern eine CSV Datei auslesen lassen. Habe das Script benutzt
<?PHP
$haendlerdaten = "haendlerdaten.csv";
$fp = fopen($haendlerdaten,"r");
while($zeile = fgetcsv($fp,500,"#")){
for($x=0;$x<count($zeile);$x++){
if($x != 1)
echo $zeile[$x] . "<br>";
}
echo "<br>";
}
fclose($fp);
?>
Problem dabei ist ich würde gerne per eingabe der PLZ die ausgabe generiren! Also ein Textfeld wo man die 23 eingibt und er gibt in einer Divbox die Kundendaten aus.
Händler Name
Adresse
usw.
Leider weiss ich nicht wie ich die übergabe mache :/
Grüss Shawna
hi,
Problem dabei ist ich würde gerne per eingabe der PLZ die ausgabe generiren! Also ein Textfeld wo man die 23 eingibt
In welchem Land ist 23 eine gültige Postleitzahl?
und er gibt in einer Divbox die Kundendaten aus.
Wenn ich jetzt mal, was eigentlich deine Aufgabe gewesen wäre, die Aufgabenbeschreibung verständlich auszuformulieren versuche - dann willst du also alle Datensätze ausgeben, in denen die Postleitzahl mit dem eingegebenen Suchbegriff (vollständig oder teilweise) übereinstimmt?
Leider weiss ich nicht wie ich die übergabe mache :/
Also möchtest du wissen, wie du Formulareingaben per PHP verarbeitest?
http://php-faq.de/ch/ch-webvariablen.html
http://tut.php-q.net/formulare.html
gruß,
wahsaga
sry zu der PLZ 23 gehört natürlich ne Eklärung. Du hast sie schon gegeben ja es sollen dann alle händler untereinander ausgewertet werden die PLZ 23 z.b. haben oder auch alle zu plz 1 usw.
Das script gibt alles aus und weiss nicht wie ich vorgehen muss um es nach der gesuchten PLZ sotiert ausgeben zu lassen.
Gruß
hi,
Das script gibt alles aus und weiss nicht wie ich vorgehen muss um es nach der gesuchten PLZ sotiert ausgeben zu lassen.
Mache dich mit den Grundlagen der Formulardatenverarbeitung vertraut (siehe Links in vorheriger Antwort) - und "filtere" dann einfach während der Ausgabe die Datensätze, in dem du einfach den Inhalt des Feldes aus dem jeweils aktuellen Datensatz mit dem Suchbegriff vergleichst. Ist der Vergleich positiv, gibst du den Datensatz aus, sonst nicht.
gruß,
wahsaga
Hallo
habe mir die Links mal angeschaut und einwenig rumgefummelt aber leider ist im Mom das script solangsam das ich nicht wirklich weiss was falsch ist!
<?php
echo '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
echo '<textarea name="PLZ" cols="50" rows="10">';
if (isset($_REQUEST["PLZ"])) {
echo $_REQUEST["PLZ"];
}
echo '</textarea>';
echo '<input type="submit" value="Prüfen...">';
echo '</form>';
$csvtest = "csvtest.csv";
$fp = fopen($csvtest,"r");
while($zeile = fgetcsv($fp,500,"#")){
for($x=0;$PLZ<count($zeile);$PLZ++){
if($PLZ != 1)
echo $zeile[$PLZ] . "<br>";
}
echo "<br>";
}
fclose($fp);
?>
lG Shawna
hi,
while($zeile = fgetcsv($fp,500,"#")){
for($x=0;$PLZ<count($zeile);$PLZ++){if($PLZ != 1)
echo $zeile[$PLZ] . "<br>";
}
echo "<br>";
}
An der Stelle ist die Abfrage unsinnig.
Die For-Schleife dient dir doch zur kompletten Ausgabe einer Zeile - auf die willst du aber auch komplett verzichten, wenn die Postleitzahl nicht der gesuchten entspricht.
Also gehört diese Abfrage sinnvoller weise _vor_ die Ausgabe, also um die For-Schleife herum.
gruß,
wahsaga
Ok war mir fast klar das die Schleife nicht mehr gebraucht wird aba naja PHP ist noch ned so klar für mich aber ich versuche es :/
Aber ich komme nun garnicht weiter :(
<?php
echo '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
echo '<textarea name="PLZ" cols="50" rows="10">';
if (isset($_REQUEST["PLZ"])) {
echo $_REQUEST["PLZ"];
}
echo '</textarea>';
echo '<input type="submit" value="Prüfen...">';
echo '</form>';
$csvtest = "csvtest.csv";
$fp = fopen($csvtest,"r");
while($zeile = fgetcsv($fp,500,"#")){
if($PLZ != 1)
echo $zeile[$PLZ] . "<br>";
}
echo "<br>";
}
fclose($fp);
?>
Bekomme nun fehler in den Zeilen zwischen Echo und Echo aber diese Klammern benötige ich doch :(
gRuss
hi,
Bekomme nun fehler in den Zeilen zwischen Echo und Echo
Eine der Grundregeln beim Verfassen von Problembeschreibungen:
Rede nicht von ominösen Fehlern, sondern beschreibe, wie die exakte Fehlermeldung lautet, und wo sie gemeldet wird (Zeilennummer; auch im Code angeben, welche Zeile das ist).
gruß,
wahsaga
<?php
echo '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
echo '<textarea name="PLZ" cols="50" rows="10">';
if (isset($_REQUEST["PLZ"])) {
echo $_REQUEST["PLZ"];
}
echo '</textarea>';
echo '<input type="submit" value="Prüfen...">';
echo '</form>';
$csvtest = "csvtest.csv";
$fp = fopen($csvtest,"r");
while($zeile = fgetcsv($fp,500,"#")){
if($PLZ != 1)
echo $zeile[$PLZ] . "<br>";
}
echo "<br>";
}
fclose($fp);
?>
Parse error: parse error, unexpected '}' in /var/www/code-malan.com/public_html/Subdomains/csv/form.php on line 22
Shawna
hi,
while($zeile = fgetcsv($fp,500,"#")){
if($PLZ != 1)
echo $zeile[$PLZ] . "<br>";
}
echo "<br>";
}
fclose($fp);
?>
[/code]Parse error: parse error, unexpected '}' in /var/www/code-malan.com/public_html/Subdomains/csv/form.php on line 22
Du hast insgesamt zwei öffnende und drei schliessende geschweifte Klammern in deinem Code.
Also entweder entfernst du die schliessende unter dem IF - da du nur eine einzige Anweisung vom IF abhängig machen willst, kann die Klammerung entfallen - oder du setzt hinter das if(...) eine öffnende.
(Letzteres würde ich empfehlen, denn wenn du den Anweisungsteil, der vom IF abhängt später doch noch mal erweitern willst, brauchst du sie wieder, vergisst sie dann aber nicht so leicht.)
gruß,
wahsaga
Ok nun entsteht jedenfalss kein Fehler. Aber eine Ausgabe gibt es immer noch nicht! Oder sie wird nicht geprintet!
http://code-malan.com/Subdomains/csv/form.php
Hast du da evtl noch ne Idee?
lG
hi,
http://code-malan.com/Subdomains/csv/form.php
Hast du da evtl noch ne Idee?
Soll ich raten, wie der hinter dieser Seite steckende Code aktuell aussieht?
gruß,
wahsaga
Hmm Sry
<?php
echo '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
echo '<textarea name="PLZ" cols="50" rows="10">';
if (isset($_REQUEST["PLZ"])) {
echo $_REQUEST["PLZ"];
}
echo '</textarea>';
echo '<input type="submit" value="Prüfen...">';
echo '</form>';
$csvtest = "csvtest.csv";
$fp = fopen($csvtest,"r");
while($zeile = fgetcsv($fp,500,"#")){
if($PLZ != 1){
echo $zeile[$PLZ] . "<br>";
}
echo "<br>";
}
fclose($fp);
?>
Gruss
hi,
echo '<textarea name="PLZ" cols="50" rows="10">';
Warum benutzt du hier eigentlich eine Textarea?
Wenn mehrere Werte eingegeben werden sollen, müsstest du diese im Script dann erst mal wieder auseinandernehmen (und dafür auch eine Vorschrift definieren), bevor du sie zu Vergleichen nutzen kannst.
if (isset($_REQUEST["PLZ"])) {
Hier prüfst du den vom Formular übergeben Parameter noch korrekt auf Vorhandensein.
while($zeile = fgetcsv($fp,500,"#")){
if($PLZ != 1){
Wo soll denn hier $PLZ herkommen?
echo $zeile[$PLZ] . "<br>";
Selbst wenn $PLZ eine Zahl enthalten würde - warum willst du hier auf das Array-Element mit dem Index zugreifen, der dieser Zahl entspricht?
Wenn die gesuchte Zahl 63, 4711 oder 65137 wäre - hätte deine CSV-Zeile denn auch so viele Spalten?
gruß,
wahsaga
P.S.:
Solltest du dein error_reporting noch nicht auf E_ALL stehen haben, dann stelle es bitte so ein.
Das ist während der Entwicklung dringends zu empfehlen - nur so hat PHP die Chance, dich auch auf nicht-fatale Fehler, die den Scriptabluaf nichts desto trotz beeinflussen können, auch hinzuweisen.
gruß,
wahsaga