array in url übergeben ??

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • array in url übergeben ??

    hallo!
    PHP Code:
    $offen=array_diff($skz_acl,$skz_tbl_unique); 
    $offen ist dann ein array wenn ich nicht irre! ok
    in diesem array können bis zu 5000 werte stehen .
    dann erzeuge ich einen link wo ich dieses array in der url übergebe:
    PHP Code:
    a href=\"offene_anzeigen.php?offen=$offen\" >anzeigen</a>; 
    wennnun die seit offene_skz_anzeigen.php öffne soll dann mit diesen werten sql atatement zusammengebaut werden:
    PHP Code:
    $offen=$_GET['offen'];//var aus url übernehmen
    foreach($offen as $skz){
      echo 
    $skz;
      
    $out[]="skz='".$skz."'";
      }
    $sql_skz "Select skz,name From schulen Where "implode(" OR "$out)."";
    $result_skz mysql_query($sql_skz,$schul_conn)or die (mysql_error());
    while(
    $ds_skz mysql_fetch_array($result_skzMYSQL_ASSOC)){
      
    $skz =$ds_skz['skz'];
      
    $name =$ds_skz['name'];
      echo
    "<tr>"
      echo
    "<td BGCOLOR=><center><B><FONT>$name</FONT></B></td>"
      echo
    "<td BGCOLOR=><center><B><FONT>$skz</FONT></B></td>"
      echo
    "</tr>";

    fehlermeldungen der zweiten seite:
    Invalid argument supplied for foreach() line...
    und
    implode() ... bad arguments
    habs auch schon anders versucht indem
    ich in der url gleich einen string mit den
    werten für die db anfrage
    übergeben haben und habe dann mit explode
    ein array edrzeugt dann funkt das
    problem wenn mehr als x werte in url übergebenwerden
    sollen geht das nicht mehr
    bitte um hilfe

  • #2
    nur deiner Überschrift gelesen:



    serialize / unserialize

    siehe www.php.net
    mfg
    marc75

    <Platz für anderes>

    Comment


    • #3
      re serialize

      auf seite 1:
      PHP Code:
      $offen=array_diff($skz_acl,$skz_tbl_unique);
      $test=serialize($offen); 
      nun der link:
      PHP Code:
      <a href=\"offene_skz_anzeigen.php?offen=$test\" >anzeigen</a> 
      auf der zweiten seite(link):
      PHP Code:
      $offen unserialize($_GET['offen']);
      echo
      "<table border=1>";
      echo
      "<tr>"
      echo
      "<td BGCOLOR=\"#000099\"><center><B><FONT COLOR=#FFFF00>Schule</FONT></B></td>"
      echo
      "<td BGCOLOR=\"#000099\"><center><B><FONT COLOR=#FFFF00>Skz</FONT></B></td>"
      echo
      "</tr>";
      foreach(
      $offen as $skz){
          echo 
      $skz;
          
      $out[]="skz='".$skz."'";
          }
      $sql_skz "Select skz,name From schulen Where "implode(" OR "$out)."";
      $result_skz mysql_query($sql_skz,$schul_conn)or die (mysql_error());
      while(
      $ds_skz mysql_fetch_array($result_skzMYSQL_ASSOC)){
          
      $skz =$ds_skz['skz'];
          
      $name =$ds_skz['name'];
          echo
      "<tr>"
          echo
      "<td BGCOLOR=><center><B><FONT>$name</FONT></B></td>"
          echo
      "<td BGCOLOR=><center><B><FONT>$skz</FONT></B></td>"
          echo
      "</tr>";

      jedoch die fehlermeldungen :

      Warning: Invalid argument supplied for foreach() ...
      Warning: implode() [function.implode]:....

      Comment


      • #4
        mach mal:
        PHP Code:
        echo "<a href=\"offene_skz_anzeigen.php?offen=".urlencode($test)."\" >anzeigen</a>"

        Comment


        • #5
          in diesem array können bis zu 5000 werte stehen
          Hat jetzt nichts mit Deiner Frage zu tun, aber bitte denk dran das der Querystring nicht beliegig groß sein kann, ich weiß ja nicht wie groß die Werte sind aber bei 5000 könnte was verloren gehen
          [Test] MySQL cli Emulator

          Comment


          • #6
            re

            bringt nichts
            ausser das der link nicht mehr zum anklicken ist das mit diesem link übergebende array hatt 800 6-stellige werte(weis nicht ob das was damit zu tun hat)

            hab keine ahnung mehr
            wie gesagt wenn ich auf seite eins einen string aus dem
            array mache und übergeb und auf seite zwei aus dem string
            wieder ein array baue funkt alles bis auf das , wenn der string
            zulange ist ich ihn nichtmehr in der url übergeben kann
            bzw mein link nicht anzuklicken ist

            Comment


            • #7
              Original geschrieben von NielsRunge
              ich weiß ja nicht wie groß die Werte sind aber bei 5000 könnte was verloren gehen
              jepp und zwar das meiste.
              mfg
              marc75

              <Platz für anderes>

              Comment


              • #8
                Re: re

                Original geschrieben von nakg
                bringt nichts
                ausser das der link nicht mehr zum anklicken ist das mit diesem link übergebende array hatt 800 6-stellige werte(weis nicht ob das was damit zu tun hat)

                hab keine ahnung mehr
                wie gesagt wenn ich auf seite eins einen string aus dem
                array mache und übergeb und auf seite zwei aus dem string
                wieder ein array baue funkt alles bis auf das , wenn der string
                zulange ist ich ihn nichtmehr in der url übergeben kann
                bzw mein link nicht anzuklicken ist
                wie NielsRunge schon sagte, du kannst nur eine bestimmte Länge insgesamt als URL haben. Warum machst du nicht mit Session oder Cookies?

                Comment


                • #9
                  re

                  und wie würde das mit session funken ?
                  die links werden in einer schleife erzeugt--> es müsste
                  also jede session var sozusagen einem link
                  zugeordnet sein
                  denn pro link werden immer andere werte übergebe.

                  Comment


                  • #10
                    http://www.google.com/search?hl=de&i...che&lr=lang_de
                    [Test] MySQL cli Emulator

                    Comment

                    Working...
                    X