Markus: URL-Parameterübergabe mit Array ?

Hallo Forum,

ist es möglich bei der URL-Parameterübergabe ein Array anzugeben ?
Ich möchte das Ergebnis einer MySQL-Suche (z.B. alle passenden ID's) auf einer anderen Seite weiterverwenden.

Mit folgender Syntax
<a href='neueseite.php?ids=$id[]> ....

erhalte ich als Fehlermeldung:
Parse error: parse error, expecting T\_STRING' or T_VARIABLE' or `T_NUM_STRING' in ...

Hilft mir der array()-Befehl weiter ?

Danke .. Markus

  1. hi,

    ist es möglich bei der URL-Parameterübergabe ein Array anzugeben ?
    Ich möchte das Ergebnis einer MySQL-Suche (z.B. alle passenden ID's) auf einer anderen Seite weiterverwenden.

    Mit folgender Syntax
    <a href='neueseite.php?ids=$id[]> ....

    erhalte ich als Fehlermeldung:
    Parse error: parse error, expecting T\_STRING' or T_VARIABLE' or `T_NUM_STRING' in ...

    Hilft mir der array()-Befehl weiter ?

    du hast die möglichkeit, arrays mit der POST-methode an eine andere seite zu übergeben.
    wenn du die GET-methode verwenden willst, solltest du vor der übergabe das array in einen string umwandeln (zb. mit implode("|",$array)) und nach der übergabe kannst du das wieder rückgängig machen (mit explode("|",$array)).

    gruss
    bjoern

    1. Hi Bjoern

      du hast die möglichkeit, arrays mit der POST-methode an eine andere seite zu übergeben.
      wenn du die GET-methode verwenden willst, solltest du vor der übergabe das array in einen string umwandeln (zb. mit implode("|",$array)) und nach der übergabe kannst du das wieder rückgängig machen (mit explode("|",$array)).

      die POST-Methode kann ich ja nur über ein Formular anwenden ?
      Der direkte Weg mit der URL-Adresse ist die GET-Methode ?

      Normalerweise erzeuge ich über folgende Syntax mein array:
       while ($row = mysql_fetch_array ($result)) {
        $ids[] = $row["id"];
       }

      Wie mache ich das dynamisch mit dem array()-Befehl, dessen Inhalt in allen bisher gesehenen Beispielen vorher statisch in Grösse und Inhalt festgelegt war ?

      Gruss .. Markus

      1. Hi

        du hast die möglichkeit, arrays mit der POST-methode an eine andere seite zu übergeben.
        wenn du die GET-methode verwenden willst, solltest du vor der übergabe das array in einen string umwandeln (zb. mit implode("|",$array)) und nach der übergabe kannst du das wieder rückgängig machen (mit explode("|",$array)).

        die POST-Methode kann ich ja nur über ein Formular anwenden ?

        ja. allerdings hast du natürlich die möglichkeit, ein formular nur mit hidden-felder aufzubauen. man sieht dann kein formular und die hidden-felder werden durch eine deiner php-funktionen gefüllt. einen submit-knopf brauchst du noch. du kannst natürlich auch deinen link für den submit benutzen mit href="javascript:document.form.submit()".

        Der direkte Weg mit der URL-Adresse ist die GET-Methode ?

        ja. du übergibst halt mit <a href="page2.php?ids=<? echo implode("|",$id); ?>">page2</a>. auf page2 liest du $ids aus der url und machst $id=explode("|",$ids); und schon hast du dein array $id auf der seite2.

        Normalerweise erzeuge ich über folgende Syntax mein array:
        while ($row = mysql_fetch_array ($result)) {
          $ids[] = $row["id"];
        }

        Wie mache ich das dynamisch mit dem array()-Befehl, dessen Inhalt in allen bisher gesehenen Beispielen vorher statisch in Grösse und Inhalt festgelegt war ?

        das ist doch dynamisch. den array-befehl kannst du nicht statt dieser funktion benutzen. zuerst musst du nämlich aus der db die daten irgendwohin abspeichern. das geht genauso, wie du es machst. du kannst dir vielleicht noch überlegen, mysql_fetch_row oder mysql_fetch_field zu verwenden, da du ja nur eine spalte deiner tabelle haben willst. das hätte evtl. einen minimen geschwindigkeitsvorteil.

        gruss
        bjoern