Abfrage mit dynamischen Var-Namen

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

  • Abfrage mit dynamischen Var-Namen

    Hi Leute,

    habe folgendes Problem: Ich habe ein SQL-Abfrage, die so aussieht:

    PHP-Code:

    for ($i 0$i <= 4$i++)
    {
         
    $query_lock_status_main "SELECT year_locked FROM $tablename_years WHERE year_number = '$minus_$i'"
    Hierbei soll die Abfrage WHERE year_number = '$minus_$i' dynamisch sein. Also ich habe 3 Möglichkeiten, welchen Wert die Variable $minus_1 haben kann: 0, 5 & 10. Und wenn ich die Abfrage in eine for-Schleife hänge, dann sollte jeweils der Wert von $minus_$i eingesetzt werden. Wenn ich das so mache, bekomme ich aber immer ein Query, das so aussieht:

    WHERE year_number = 'minus_1', dabei soll ja statt minus_1 einmal "0", "5" oder "10" stehen.

    Ich habe schon im Forum gefunden, dass man $$ verwenden muss. Nur habe ich keine Lösung, wie ich das in einem Query mache!

    Danke für eure Hilfe!

    Grüße Lukas

  • #2
    Re: Abfrage mit dynamischen Var-Namen

    Original geschrieben von skalu
    Ich habe schon im Forum gefunden, dass man $$ verwenden muss. Nur habe ich keine Lösung, wie ich das in einem Query mache!
    na ganz genauso natürlich!

    allerdings vielleicht den string mal auftrennen, wenn du variablen verwendest, anstatt immer alle variablen direkt in den string reinzukleistern - da kann PHP nämlich bei der erkennung schon mal probleme bekommen.

    böse: "blah $blubb";
    gut: "blah".$blubb;
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Mach was hiermit:
      PHP-Code:
      <?php
      $minus_1 
      'hallo';
      $i 1;
      $a 'minus';
      echo ${
      $a.'_'.$i};
      ?>

      Kommentar


      • #4
        Hi,

        danke für deine Antwort!

        Ähm, ich komme nicht ganz mit, was du mit String aufteilen meinst! Meinst du dass ich den Where-Teil extra dranhängen soll?

        Vielleicht kannst du mir meinen String so modifizieren, dass ich sehe, was du meinst!

        WHERE year_number = '$$minus_$i'" geht ja nicht. Auch nicht, wenn ich das so mache:

        $minus_result = "minus_".$i;

        WHERE year_number = '$$minus_result'"


        Danke, Lukas

        Kommentar


        • #5
          Original geschrieben von skalu

          Ähm, ich komme nicht ganz mit, was du mit String aufteilen meinst!
          er meint es so:
          PHP-Code:
          $b '.....';
          // statt 
          $a "bla bla $b bla bla";
          // machst du
          $a "bla bla ".$b." bla bla"

          Kommentar


          • #6
            Okay, danke! Ich habe es jetzt so hinbekommen!

            PHP-Code:
            for ($i 1$i <= 5$i++)
            {

                
            $minus_result "minus_".$i;

                
            $query_lock_status_main "SELECT year_locked FROM $tablename_years WHERE year_number = '${$minus_result}'"
            Danke vielmals für eure Hilfe!

            Grüße Lukas

            Kommentar


            • #7
              Original geschrieben von skalu
              Ähm, ich komme nicht ganz mit, was du mit String aufteilen meinst!
              wofür habe ich denn wohl extra ein beispiel darunter geschrieben ...?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Das Beispiel habe ich gesehen, nur habe ich in meiner Abfrage doch keine Leerzeichen drinnen!

                Oder meinst du, dass ich das so hätte schreiben sollen.

                PHP-Code:
                WHERE year_number '"minus_".$i' 
                Geht ja so nicht!

                Greetz

                Kommentar


                • #9
                  @skalu: denkst du auch ein bisschen nach, bevor du was schreibst/programmierst?

                  Kommentar

                  Lädt...
                  X