Suchergebnisse weiterverarbeiten

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

  • Suchergebnisse weiterverarbeiten

    Hallo

    ich habe ein suchscript (habe ich schon einmalmal hier gepostet) dass die ergebnisse die es findet in einer tabelle zeilenweise ausgibt.

    das klappt alles

    nun will ich dass ich die ergebnisse weiterverarbeiten kann.
    ich habe am anfang jeder neuen zeile ein checkbox hinzugefügt um die zeile auszusuchen.

    Wenn ich auf "weiter" klicke, sollen z.B. die zeilen die ich ausgesucht habe, eine neue tabelle aufbauen. diese tabelle will ich z.b. in eine csv-datei exportieren.
    oder
    ich will die personen die ich mit der checkbox ausgesucht habe in der datenbank bearbeiten (z.b alle ausgesuchten personen => Anrede = Frau) .

    ich habe aber keinen blassen schimmen wie das gehen soll.
    bzw.
    wie sage ich dem weiter-button dass er die zeilen die ich mit der checkbox ausgesucht habe weiterverarbeiten soll ...??

    bitte um HILFE!!

    hier ist der search_result.php script:
    PHP-Code:
    <?
      $abfrage = "SELECT * FROM Personen WHERE 1='1'";
            if (strlen($Personen_id))
               $abfrage .= " AND Personen_id = '$Personen_id'";
            if (strlen($anrede))
               $abfrage .= " AND Anrede = '$anrede'";
            if (strlen($vorname))
               $abfrage .= " AND Vorname = '$vorname'";
            if (strlen($nachname))
               $abfrage .= " AND Nachname = '$nachname'";

      $erg = mysql_query($abfrage,$connectionid);
      $menge = mysql_num_rows($erg);
      list($Personen_id,$Anrede,$Vorname,$Nachname) = mysql_fetch_row($erg);

      if ($menge==0)
        {
    ?>
          Keine Ergebnisse gefunden!
          <br>
          <input type="button" name="back" value="Back" onClick="javascript:history.back()">
    <?
        }
          else {
                  $id=0;
    ?>
    <form name="theform" action="" method="GET">
    <table bordercolor="#000000" style="border:1px solid black;">
     <tr bordercolor="#000000">
      <th></th>
      <th>Personennummer</th>
      <th>Anrede</th>
      <th>Nachname</th>
      <th>Vorname</th>
     </tr>
    <?php
         
    do {
    ?>
     <tr id=<? echo "\"row$id\"" ?> onMouseOver="this.bgColor = '#e3e3e3'" 
        onMouseOut ="this.bgColor = '#FFFFFF'" bgcolor="#FFFFFF">

      <td><input type="checkbox" name="checknr1" style="width:15px"
                onclick="changebkg(this,<? echo "$id" ?>)"></td>
      <td><label for="checknr1"><? echo $Personen_id ?></label></td>
      <td><label for="checknr1"><? echo $Anrede ?></label></td>     
      <td><label for="checknr1"><? echo $Nachname ?></a></label></td>
      <td><label for="checknr1"><? echo $Vorname ?></label></td>
     </tr>
    <?php
         $id
    =$id+1;
                 }while (list(
    $Personen_id,$Anrede,$Vorname,$Nachname) = mysql_fetch_row($erg));
    ?>
    </table>
    <br>
    <input type="button" name="zurueck" value="Zur&uuml;ck" onClick="java script:history.back()">
    <input type="button" name="weiter" value="Weiter">
        <hr>
    </form>
    <?php
    }
    ?>

  • #2
    PHP-Code:
    <input type="checkbox" name="check[<?=$id ?>]" ...>
    Damit hast du die ausgewählten Zeilen alle in einem Array.

    Kommentar


    • #3
      DANKE!

      Kommentar


      • #4
        Komme doch nicht weiter, bitte um mehr hilfe!!

        Kommentar


        • #5
          Mit Onemernerds Ansatz gibt die Werte in einem Array allerdings als Index des Arrays ...
          also
          PHP-Code:
          array(
              
          1=>1
              7
          =>1
              8
          =>1

          PHP-Code:
          <input type="checkbox" name="check[]" value="<?=$id ?>" ...>

          so gibt es im Array die Ids als 'Inhalt' des Arrays
          also
          PHP-Code:
          array(
              
          0=>1
              1
          =>7
              2
          =>8

          PHP-Code:
          <input type="checkbox" name="check[<?=$id ?>]" value="<?=$id ?>" ...>
          so gibt es einen Array nach dem Muster
          PHP-Code:
          array(
              
          1=>1
              7
          =>7
              8
          =>8

          Was manchmal hilfreich sein kann

          Sinnvoll ist jedoch auch den Checkboxen per inkrementellem Wert eine ID noch zuzuweisen um JS mitspielen zu lassen
          Zuletzt geändert von chansel0049; 06.07.2005, 10:02.
          chansel0049
          ----------------------------------------------------
          if you've reached the bottomline - dig further!
          Übersetzer gesucht? http://www.babelport.com

          Kommentar


          • #6
            und wie gebe ich dann einfach mal die werte der ausgewählten tabelle kommagetrennt aus?

            weil ich will die auswahl später als csv speichern.

            PHP-Code:

            if($weiter)
            {
                
            /*  Was muss hier stehen? */


            Kommentar


            • #7
              Implodiere den Array

              P.S.

              Bitte lerne wenigstens die Grundlagen,

              oder wenn Du's nicht kannst und nicht bereit bist zu lernen, beauftrage Leute damit, die es können - aber erwarte nicht, dass man Dir fertige Lösungen präsentiert...
              chansel0049
              ----------------------------------------------------
              if you've reached the bottomline - dig further!
              Übersetzer gesucht? http://www.babelport.com

              Kommentar


              • #8
                Ich will xy.

                <?php
                // was muß hier stehen
                ?>

                Kommentar


                • #9
                  Ich, Ich, Hier, Ich weiss es : xy?
                  chansel0049
                  ----------------------------------------------------
                  if you've reached the bottomline - dig further!
                  Übersetzer gesucht? http://www.babelport.com

                  Kommentar


                  • #10
                    ich bin grad dabei PHP zu lernen.
                    ich mache ja auch das projekt damit ich mich auch mal mit PHP und MySQL praktisch beschäftige.

                    ich habe ja auch nicht erwartet dass ihr mir alles fertig programmierts. das gaze soll ein CRM-applikation werden, ich habe schon 70% des projetks abgeschlossen und habe auf jedenfall eine menge dadurch gelernt.

                    nun zurück zum problem:

                    ich habe jetzt folgendes gemacht:
                    PHP-Code:
                    <?php
                    do
                    {
                    ?>
                    <tr id="<? echo "row".$id ?>" bgcolor="#FFFFFF">
                      <td><input type="checkbox" name="check[<? echo $id ?>]" value="<? echo $Personen_id ?>" style="width:15px" onclick="changebkg(this,<? echo "$id" ?>)"></td>
                      <td><label for="checknr1"><? echo $Personen_id ?></label></td>
                      <td><label for="checknr1"><? echo $Anrede ?></label></td>
                      <td><label for="checknr1"><? echo $Nachname ?></label></td>
                      <td><label for="checknr1"><? echo $Vorname ?></label></td>
                    </tr>
                    <?php
                      $id
                    =$id+1;
                      }while (list(
                    $Personen_id,$Anrede,$Vorname,$Nachname) = mysql_fetch_row($erg));
                    ?>
                    und habe zu testzwecken mal folgendes ausgegeben:
                    PHP-Code:
                    foreach($_POST['check'] as $antwort) {
                        echo 
                    $antwort."<br>";

                    ich habe mir überlegt mit den übergebenen Personen_id
                    nocheinmal die Datenbank abzufragen da ich es nicht hinbekomme die werte der ganzen zeile per array zu übergeben bzw. abzurufen..

                    Kommentar


                    • #11
                      PHP-Code:
                      <?php
                      do
                      {
                      ?>
                      <tr id="<? echo "row".$id ?>" bgcolor="#FFFFFF">
                        <td>
                      <input type="checkbox" name="check[<? echo $id ?>]" 
                      value="<? echo $Personen_id ?>" style="width:15px" 
                      onclick="changebkg(this,<? echo "$id" ?> )"></td>
                        <td><label for="checknr1"><? echo $Personen_id 
                      ?></label></td>
                        <td><label for="checknr1"><? echo $Anrede ?></label></td>
                        <td><label for="checknr1"><? echo $Nachname ?></label></td>
                        <td><label for="checknr1"><? echo $Vorname ?></label></td>
                      </tr>
                      <?php
                        $id
                      =$id+1;
                        }while (list(
                      $Personen_id,$Anrede,$Vorname,$Nachname) = mysql_fetch_row($erg));
                      ?>
                      Warum do-while? Beim ersten Durchlauf ist noch keine Ergebniszeile abgefragt! --> Also stattdessen While() {}

                      PHP-Code:
                      <?php
                      while (list($Personen_id,$Anrede,$Vorname,$Nachname) = mysql_fetch_row($erg))
                      {
                      ?>
                      <tr id="<? echo "row".$id ?>" bgcolor="#FFFFFF">
                        <td>
                      <input type="checkbox" name="check[<? echo $id ?>]" value="<? 
                      echo $Personen_id ?>" style="width:15px" 
                      onclick="changebkg(this,<? echo "$id" ?> )"></td>

                        <td><label for="checknr1"><? echo $Personen_id ?></label></td>
                        <td><label for="checknr1"><? echo $Anrede ?></label></td>
                        <td><label for="checknr1"><? echo $Nachname ?></label></td>
                        <td><label for="checknr1"><? echo $Vorname ?></label></td>
                      </tr>
                      <?php
                        $id
                      =$id+1;
                        }
                      ?>

                      Du Brauchst auch nicht die ganze "Zeile" die ID reicht ja (obwohl du natürlich in einem Hidden Field die Werte auch übergeben könntest - was aber glaubve ich nicht sinnvoll ist)

                      Stattdessen implodiere dein $_POST['check'], dann kannst per SQL (IN ($implodierterArray)) deine gewählten Daten in einer SQL Query abfragen ...

                      P.S. Die Verwendung von label macht wie oben keinen Sinn...
                      P.P.S. Sorge bitte für Umrüche
                      Zuletzt geändert von chansel0049; 06.07.2005, 16:22.
                      chansel0049
                      ----------------------------------------------------
                      if you've reached the bottomline - dig further!
                      Übersetzer gesucht? http://www.babelport.com

                      Kommentar


                      • #12
                        @chansel: do-while, weil direkt nach dem mysql_query() eine row gelesen wird. Aber ich finds auch unschick.

                        Kommentar


                        • #13
                          Ah, und das stand im ersten Post, den ich vor X Stunden gelesen haben ... Naja
                          chansel0049
                          ----------------------------------------------------
                          if you've reached the bottomline - dig further!
                          Übersetzer gesucht? http://www.babelport.com

                          Kommentar

                          Lädt...
                          X