kostenloser Webspace werbefrei: lima-city


Mehrere Werte für eine Variable übergeben?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    laz

    laz hat kostenlosen Webspace.

    Hi ich hab folgendes Problem:
    Ich m?chte f?r $s den Wert 1 ?bergeben,aber gleichzeitig soll der Wert auch noch 2 sein.
    Also zB:
    Bei zwei zeichnet er mir ein Dreieck,bei eins ein Viereck,ich will jetz aber,dass er mir ein Dreieck UND ein Viereck zeichnet...
    Ich habs scho mit datei.php?s=1&s=2 und mit datei.php?s=1;2 versucht.Hab eindlich schon alles m?gliche ausprobiert,aber es geht nich :frown::frown:
    Wei? einer wie das geht?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. t*****b

    Frag doch einfach ab. Hierzu ist eine SWITCH-Abfrage sinvoll.

    switch($s)
    {
    case 1:
    echo "Dreieck...";
    // KEIN brack;!
    case 2:
    echo "Viereck...";
    breck;
    }

    Bei 1 wird "Viereck" UND "Dreieck" ausgegeben, bei 2 nur "Viereck". Oder habe ich was falsch evrstanen?, kannst ja schreiben was wo wann ausgegeben werden soll.
  4. w?rde das nicht auch so gehen?

    <?php
    $s = "1";
    $s = "2";
    ?>


    w?re doch so gemeint oder?

    mfg Hofnarr
  5. Autor dieses Themas

    laz

    laz hat kostenlosen Webspace.

    @trueweb:Danke f?r den Tipp,aber sowas bekomm ich ja auch mit ner normalen if-Abfrage hin.
    Aber mein Problem ist das ja eigentlich nicht das mit der if/switch-case-Schleife,sondern dass ich f?r $s praktisch ein Array mit 2 Werten in per get-Methode (also in der URL) ?bergeben m?chten.
    Also wenn ich dann $s==1 angebe,soll er mir Dreieck machen.
    Bei $s==2 dann ein Viereck.
    Jetz wollte ich nur wissen,wie ich es hinbekomme,dass er mir ein Dreieck UND ein Viereck ausgibt,indem ich die Wert 1 und 2 unabh?ngig von einander irgendwie abfragen kann.
    Tut mir sorry,aber bin bissl kompliziert im Ausdr?cken.:frown:
  6. t*****b

    ?bergebe dann doch zwei Variablen (zB $s1 und $s2).
  7. Autor dieses Themas

    laz

    laz hat kostenlosen Webspace.

    Hab ich mir auch schon ?berlegt.Aber das Problem is,dass ich dann f?r jede Variable eine "Aufgabe" haben muss un dass ich ja nicht wei?,wieviele Variablen es gibt.(also ob jetz nur $1 oder ob es von $1 bis $5 welche gibt).Und au?erdem w?rds mich echt interessieren,weil es doch rheinteorethisch m?glich sein muss...
  8. eigentlich ist das so
    <?php
    
    if!isset($next) == "home")
    
    $symbole = array("dreieck","viereck","f?nfeck");
    
    {
    
    echo "Hier sind die Symbole $symbole[0], $symbole[1] und $symbole[2]";
    
    echo "<a href="index.php?next=dreieck">weiter</a>";
    
    }
    
    if($next == dreieck"
    
    {
    
    echo "Hier ist das Symbol $symbole[0]";
    
    echo "<a href="index.php?next=viereck">weiter</a>
    
    }
    
    if($next == viereck)
    
    {
    
    echo "Hier ist das Symbol $symbole[1]";
    
    echo "<a href="index.php?next=f?nfeck">weiter</a>
    
    }
    
    if($next == f?nfeck)
    
    {
    
    echo "Hier ist das Symbol $symbole[2]";
    
    echo "<a href="index.php?next=home">zur?ck zum Start</a>
    
    }


    Ich hoffe das ist das was du meinst.

    Beitrag ge?ndert am 20.11 00:01 von unholyben

    Beitrag ge?ndert am 20.11 00:02 von unholyben
  9. Autor dieses Themas

    laz

    laz hat kostenlosen Webspace.

    Hm,tut mir Leid,das ist glaub ich nicht ganz das was ich brauche.
    Ich glaube ich mach folgendes:
    $s=1+2+3+4

    Dann split ich das mit preg_split auf (mit space als Trennzeichen)
    und ermittle dann je nachdem,
    wenn eine 1 da is --->Eineck ausgeben
    (if($_get['1'])){dann ausgeben)

    Wenn die 2 da is --->Zweieck.ausgeben
    Wenn die 3 da is --->Dreieck ausgeben
    Wenn die 4 da is--->Viereck ausgeben
  10. Also du m?chtest eine beliebige Anzahl von Daten in ein array speichern und dann per GET ?bergeben? Hab ich dich da richtig verstanden?

    Wenn mich nciht alles t?uscht, m?sste es so gehen:

    Du speicherst die Werte nacheinander in ein array, also

    $s[] = 1;
    $s[] = 2;
    ...

    Dann verwandelst du das array in einen String:

    $string = serialize($s)

    dann ?bergibst du den string per GET, also:

    seite.php?s=<?php echo $string; ?>

    Dann hohlst du dir den string wieder:

    $string = $_GET['s'];

    $s = unserialize($string);

    $s ist jetzt wieder ein array in dem alle deine Werte gespeichert sind.

    Wenn du ncoh fragen hast kannst du mir gerne eine PM schicken
  11. theuntouchables

    theuntouchables hat kostenlosen Webspace.

    Ich glaube mit einem serialize string in der adressleiste kommt nicht jeder browser zurecht oder???
    au?erdem siht der komisch aus...

    Mein tip: mit base64_encode() codieren dann ?bergeben und dann mit base64_decode() wieder decodieren eine url s?he dann ungef?hr so aus:
    http://adresse.com/file.php?u=YTozOntpOjE7czozOiJhYmMiO2k6MjtzOjM6ImRlZiI7aTozO2k6MTIzO30=

    Kleiner sch?nheitstipp meinerseits, aber ansonsten ist die ?ber mir genannten l?sung das beste, musst halt nur mit einer while schleife wieder jedes auslesen. Wenn du das hilfe brauchst meld dich mal...
  12. c******n

    Hi

    mach es doch einfach mit Arrays.
    Einer von oben hat ein Beispiel gepostet, welches aber nicht ganz fehlerfrei ist. Hier mal etwas ?berarbeit:

    <?
    &lt;?php



    if!isset($next) == "home")



    $symbole = array("dreieck","viereck","f&uuml;nfeck");



    {



    echo "Hier sind die Symbole $symbole[0], $symbole[1] und $symbole[2]";



    echo "&lt;a href="index.php?next=dreieck"&gt;weiter&lt;/a&gt;";



    }



    if($next == "dreieck") {



    echo "Hier ist das Symbol $symbole[0]";



    echo "&lt;a href="index.php?next=viereck"&gt;weiter&lt;/a&gt;



    }



    if($next == "viereck") {



    echo "Hier ist das Symbol $symbole[1]";



    echo "&lt;a href="index.php?next=f&uuml;nfeck"&gt;weiter&lt;/a&gt;



    }



    if($next == "f&uuml;nfeck") {



    echo "Hier ist das Symbol $symbole[2]";



    echo "&lt;a href="index.php?next=home"&gt;zur&uuml;ck zum Start&lt;/a&gt;



    }
    ?>


    ich hoffe, du hast Spa? damit!

    chefchen
  13. Autor dieses Themas

    laz

    laz hat kostenlosen Webspace.

    @korbiw ja,das hab ich gesucht.
    *Warumbinich da nicht selber drauf gekommen?!?!?!?!?!?:rolleyes:*
    Also wenn ich noch Fragen hab,meld ich mich bei dir :wink::wink:
    @theuntouchables:Die L?sung hab ich auch schon in meinem Skript,aber an einer anderen Stellen.Am besten ich verbinde die 2 Funktionen.
    :cool:
  14. Du hast auch ein fehler dort xDDD

    undzwar hier:
    if(!isset($next) == "home)  <---- du hast vor "!isset die "(" Klammer vergessen :)


    Beitrag ge?ndert am 20.11 14:11 von unholyben
  15. Autor dieses Themas

    laz

    laz hat kostenlosen Webspace.

    Ja,solche Fehler passieren doch jedem einmal,vor allem wenn man das aus dem ?rmel sch?ttelt.Aber dazu gibts ja Syntax Error Checking :biggrin::biggrin:
    Also ich hab das Problem jetz so gel?st:
    Ich geb f?r $s einfach verschiedene Zahlen (von eins bis 4) ein.
    Egal in welcher Reihenfolge.
    Dann pr?f ich mit preg_match(),ob eine 1 drin is--->Viereck
    wenn ne 2 drin is--> Dreieck usw
    So kann ich dann die Zahlen beliebig anordnen und bekomm immer mein gew?nschtes Ergebnis,weil ich das Manuell eingeben will.
  16. t**********e

    s = 1 => Dreieck
    s = 2 => Viereck
    s = 3 => Viereck und Dreieck

    wo is das problem? oder hab ich was nich versanden -.-
  17. Das problem ist oder war, dass s auch mehrere Werte haben kann ...
  18. t**********e


    Das problem ist oder war, dass s auch mehrere Werte haben kann ...


    meine vorschlag l?st das doch...
    s = 3 => s=1 && s=2
    das is doch alles nur ne frage einer vern?nftigen switch schleife! ich versteh echt das prob nich. eine ECHT variable kann nunmal nich 2 werte anngehmen. daf?r gibs ja arrays und hashes und wie die alle hei?en >_<
  19. da nimmt man 1 Array, die Daten und ein Trennzeichen und eine while-Schleife

    man ?bermittelt:

    datei.php?s=1|2|3

    dann

    $s = $_GET['s'];
    $variable = explode($s, "|");
    $count = 0;
    rsort($s);
    $gesamt = $s[0];
    sort($s);
    while ($count <= $gesamt){
      switch ($s[$count]){
         case 1...
         /*switch - zu lang um hinzuschreiben*/
         ...break;
      }
      $count++;
    }


    w?re wohl am einfachsten...

    MfG Asmodeus
  20. Konventionell w?rde man es durch setzten von verschiedenen Bits in einer Zahl machen und diese Zahl dann ?bergeben:

    Dreieck = 1 = 2^0
    Viereck = 2 = 2^1
    F?nfeck = 4 = 2^2
    ... usw ...

    will man eine Dreieck und ein Viereck addiert man die Werte (wie weiter oben schon mal jemand geschrieben hat :) )

    zum Auswerten der Zahl kann dann den bitweisen Vergleichsoperator benutzen:
    $a & $b Bits, die in $a und $b gesetzt sind werden gesetzt.

    vor der ?bergabe :
    $zahl = 1+2+4; // = 7 bin?r: 111

    Auswertung nach der ?bergabe:
    if(($zahl&1)!=0) zeichne_dreieck(); // im Beispiel $zahl&1=1 != 0
    if(($zahl&2)!=0) zeichne_viereck(); // im Beispiel $zahl&2=2 != 0
    if(($zahl&4)!=0) zeichne_fuenfeck(); // im Beispiel $zahl&4=4 != 0
    ... usw ...

    mfg
    Icy
  21. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!