mysql abfrage in for schleife heeeelp

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mysql abfrage in for schleife heeeelp

    hallo leute,

    ich habe aus mehreren scripten ein script erstellt, aber irgendwo ein fehler.

    PHP-Code:
    <form method="POST" action=" <?=$_SERVER['PHP_SELF'];?> "> 
    <textarea name="textfeld"></textarea> 

    <br><br> 

    <input type="submit"> 

    <br><br> 
    </form> 
    <?php 
    //Mit dieser Funktion ist es möglich, eine bestimmten Datensatz aus einer MySql Tabelle auszulesen 

    function mysql_get_row($table$fields$add){ //Wir definieren die Funktion 


      
    $query "SELECT ".$fields." FROM ".$table." ".$add." LIMIT 0 , 1"//Wir weisen der Variable $query Sqlcode zu, den wir durch die an die Funktion übergebenen Daten vervollständigen 
        
      
    $result mysql_query($query); //Wir senden ihn an die Datenbank 
        
      
    $row=mysql_fetch_array($result); //und lassen den Datensatz in ein Array packen 

    return $row//Wir geben als Rückgabewert das Array mit dem Datensatz an 


    $textfeld $_POST['textfeld']; 
    $textfeld explode("\n"$textfeld); 

      for(
    $i=0$i count($textfeld); $i++) { 
    $zahl mysql_get_row("products""*""WHERE products_model = '".$textfeld[$i]."'"); 
        echo 
    $textfeld[$i] . " und " $zahl["products_id"] . "<br>"
      } 
    ?>
    gebe ich im textfeld folgendes ein:
    1013521
    101353
    887743C

    bekomme ich das als ergebnis:
    1013521 und
    101353 und
    887743C und 12096

    das problem ist, dass die id immer von dem letzten artikel angezeigt(gefunden) wird, obwohl in diesem fall für die ersten beiden die ids in der tabelle vorhanden sind.

    gruß coder90[

  • #2
    Hi,

    ein Zeilenumbruch besteht manchmal aus \n, manchmal aus \r und meistens aus \r\n.

    Wenn du nun splittest, spittest du in:
    ID1\r
    ID2\r
    ID3

    Das \r ist ja ein unsichtbares Zeichen und eine ID mit diesem unsichtbaren Zeichen hinten drann gibt es nicht in deiner Datenbank.
    D.h. du musst deine Einträge noch trimmen.

    $textfeld[$i] --> trim($textfeld[$i])


    gruß
    Piremilok

    Kommentar


    • #3
      ich würde ganz anders vorgehen:
      PHP-Code:
      $textfeld explode("\n"$textfeld);
      $modellist implode(',' $textfeld);
      $query 'SELECT * FROM products WHERE products_model IN ('.$modellist.')'
      so vom prinzip her. da benötigst du nicht mal eine schleife.

      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        explode + implode = str_replace

        Kommentar


        • #5
          Original geschrieben von onemorenerd
          explode + implode = str_replace
          geht doch bei "\n" nicht. höchstens preg_replace

          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            Doch, das geht auch bei "\n".

            http://de2.php.net/manual/de/function.str-replace.php
            Assembler ist eine Methode,
            Programme, die zu langsam laufen,
            so umzuschreiben,
            dass sie überhaupt nicht mehr laufen.

            Kommentar


            • #7
              Original geschrieben von TheFish511
              Doch, das geht auch bei "\n".

              http://de2.php.net/manual/de/function.str-replace.php
              OffTopic:
              ich sollte heute meinen mund halten und mich auf meine arbeit konzentrieren. beides geht wohl nicht.

              peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar

              Lädt...
              X