Shawan: CVS auslesen per Suchmaske

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

  1. 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

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. 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ß

      1. 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

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. 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

          1. 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

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. 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

              1. 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

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }
                1.   
                  <?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

                  1. 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

                    --
                    /voodoo.css:
                    #GeorgeWBush { position:absolute; bottom:-6ft; }
                    1. 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

                      1. 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

                        --
                        /voodoo.css:
                        #GeorgeWBush { position:absolute; bottom:-6ft; }
                        1. 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

                          1. 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

                            --
                            /voodoo.css:
                            #GeorgeWBush { position:absolute; bottom:-6ft; }
                          2. 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

                            --
                            /voodoo.css:
                            #GeorgeWBush { position:absolute; bottom:-6ft; }