Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Dynamische Variablen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Dynamische Variablen

    Hallo,

    zu erst sry wenn ich irgendwas nicht genau erkläre oder wenn meine fragen total Idiotisch sind oder irgendwas anderes alles was ich von php weis habe ich mir gegoogled aber jetzt komm ich garnicht weiter, ist das erste mal das ich was in einem Forum reinschreibe .

    Ich habe ein kleines Problem mit Variablen und ich hoffe mir kann jemand helfen und es auch erklären so jetzt mein Problem:

    Ich habe mich im Internet wegen Dynamischen Variablen erkundet komm damit irgendwie nicht viel weiter ich habe eine Website wo ich Sachen in einer Session speichere, um sie in Warenkorb wieder aufzurufen.
    PHP-Code:
    // ID wurde durch von einer Seite vorher übergeben
     
    if (isset($_GET["ID"])){
     
    $DruckerID $_GET["ID"];
     
    $_SESSION['$DruckerID'] = $DruckerID;
    }
    $DruckerID $_SESSION['$DruckerID'];
    if (isset(
    $_GET["DruckerAnzahl"])){ //Wenn diese IF abfrage stimmt werden die Variablen in Session gespeichert die ich später auf der anderen Seite brauche
          
        
    if (isset($_SESSION['$DruckerID'])){
        
    $DruckerrID $_SESSION['$DruckerID'];
        
    $_SESSION['$DruckerrID'] = $DruckerrID;
        }
        
    $DruckerrID $_SESSION['$DruckerrID'];
        } 
    Von hier werden die Daten in Session eingespeichert Also die DruckerID und die Anzahl des Druckers damit funktioniert es zwar, jedoch nur ein Drucker wenn der Kunde jetzt aber 2 Verschiedene Drucker haben will überschreibt er die Variable mit einer anderen ID und ich kann nicht 10.000 verschiedene Variablen Namen erstellen weil das erstens: Eine Riesige If Frage wird und Zweitens: weil ich die ID brauche um im meiner MySQL Datenbank die namen usw. abzufragen
    heir beispiel
    PHP-Code:
    <?php//if abfrage ob die ID exestiert
    if (!isset($_GET['DruckerL'])){ // Unwichtig
    if (isset($_SESSION ['$DruckerrID'])){
    $DruckerrID = $_SESSION['$DruckerrID'];
    if (isset($_SESSION['$DruckerAnzahl'])){
    $DruckerAnzahl = $_SESSION['$DruckerAnzahl'];
     $DruckerAnzahl = $_SESSION['$DruckerAnzahl'];}  
     }

    ?>

    <div id="Artikel">
    <?php

    if (!isset($_SESSION['$DruckerrID'])){
    }
    else                    {

    // Verbindung zum Datenbankserver
        
    mysql_connect("Server""User""PW") or die (mysql_error ());

        
    // Datenbank auswählen
        
    mysql_select_db("Datenbank") or die(mysql_error());

        
    // SQL-Query
        
    $strSQL "SELECT * FROM Drucker where ID = $DruckerrID";

        
    $abfrage "Select * FROM Drucker where ID = $DruckerrID";
        
    // Schließt die Datenbankverbindung
        
        
    $abfrage "SELECT * FROM Drucker where ID = $DruckerrID";
        
    $ergebnis mysql_query($abfrage);
        while(
    $row mysql_fetch_object($ergebnis))
        
        {

    echo 
    "$row->Model";
    }
            
    ?>
    Jetzt meine Frage wie kann ich den Variablen namen ändern z.B.
    $Drucker1 = 1
    $Drucker2 = 2
    usw. und die dann auch noch in session abspeichern und auf andere Seite wieder abfragen?

    PS: Tut mir Leid wenn ich zuviel geschrieben habe ich wollte nur nicht zu wenig information geben und wenn das mit dem php nicht zu erkennen ist.
    PS.PS: Wie kann ich die frage als gelöst makieren wenn es so weit ist?

    Vielen Dank schonmal im Vorraus

  • #2
    Ähm...Verwende Arrays?

    Kommentar


    • #3
      zu erst sry wenn ich irgendwas nicht genau erkläre oder wenn meine fragen total Idiotisch sind
      sage ich doch .


      mit den Arrays hätt ich früher drauf kommem müssen Vielen dank
      kann ich den in ein Array 10.000 Daten abspeichern? oder gibt es da eine Maximale größe?

      Kommentar


      • #4
        Die Arraygröße ist nur durch deinen Arbeitsspeicher (Den Wert, den du PHP zugewiesen hast z.B. durch php.ini) beschränkt.
        Konkret:

        You could be running out of memory, as your array size is (in theory) only limited by the amount of memory allocated to the script. Put ini_set('memory_limit', '1024M'); in the beginning of your script to set the memory limit to 1 GB. You may need to increase this even higher for best results.
        Quelle:
        http://stackoverflow.com/a/5925915/4024751

        Kommentar


        • #5
          Arrays sind nur die die größe des Speichers der PHP zur Verfügung steht begrenzt.
          Zitat von derwunner
          "Ein FISI ist auf gut-deutsch der Netzwerker. Das heißt Du gehst rauß zum Kunden oder auf die Straße und verlegst Leitungen" - derwunner 2015

          Kommentar


          • #6
            Ich weiß ich habe das Thema schon als Gelöst markiert aber ich noch ein Problem mit dem Array.
            Ich Speichere mehrere Werte in den Array so ab
            PHP-Code:
            $array = array("a""b""c""d"); 
            und füge zwischen durch so welche hinzu
            PHP-Code:
            array_push($array,"d","e","f","g"); 
            Aber wie frage ich die Vernünftig ab?
            Um Alle Werte Auszugeben muss ich das mit einer Schleife machen
            PHP-Code:
            $ID 0;
            $anzahl 10000;
            for(
            $i=0;$i<$anzahl;$i++){
                if (isset(
            $array[$ID])){
            echo 
            "<br>".$array[$ID];
            $ID $ID 1;
            }

            und wenn ich nur ein Wert abrage geht das auch
            Beispiel:
            PHP-Code:
            echo "<br><br>".$array[1]; 
            So jetzt zu meinem Eigentlichen Problem:
            Ich wollte mehrere Werte Abfragen aber nicht in der Reihenfolge wie sie gespeichert sind ich habe das schon mit der möglichkeit getestet.
            PHP-Code:
            echo $array[0,3,4,5,6,12,9];//wegen den Zahlen keine Sorge ich habe noch mehr Werte gespeichert als die die ich bis jetzt augezählt habe 
            hier gibt es den Fehler:
            Parse error: syntax error, unexpected ',', expecting ']' in ...\Array.php on line 38
            Also darf ich keine Kommas verwenden aber wie frage die Werte Ohne Schleife und ohne das ich jedesmal Echo Array[...] schreiben muss ab?

            Kommentar


            • #7
              PHP-Code:
              $ID 0;
              $anzahl 10000;
              for(
              $i=0;$i<$anzahl;$i++){
                  if (isset(
              $array[$ID])){
              echo 
              "<br>".$array[$ID];
              $ID $ID 1;
              }

              Das ist Quatsch...

              hier gibt es den Fehler:
              Parse error: syntax error, unexpected ',', expecting ']' in ...\Array.php on line 38
              Also darf ich keine Kommas verwenden aber wie frage die Werte Ohne Schleife und ohne das ich jedesmal Echo Array[...] schreiben muss ab?
              Garnicht.
              Schreib dir halt ne funktion:
              PHP-Code:
              function concatArrayValues($arr$keys){
                
              $str '';
                foreach(
              $keys as $key)
                  
              $str .= $arr[$key];
                return 
              $str;
              }

              $test = ["a""b""c""d"];
              echo 
              concatArrayValues($test, [130]); 
              [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

              Kommentar


              • #8
                PHP-Code:
                $anzahl 10000;
                for(
                $i=0;$i<$anzahl;$i++){ 
                Um die Größe eines Arrays herauszufinden gibt es sizeof():
                PHP-Code:
                for($i 0$i sizeof($array); i++){ 

                Kommentar


                • #9
                  Sry dass schon wieder eine frage hier reinkommt aber ich finde es wär unnütz für jede weitere Frage ein neues Thema zu eröffnen

                  So ich habe das mit den Arrays jetzt versucht und es funktioniert auch. Allerdings möchte ich jetzt auch noch dass man auch Werte in Array Löschen kann. Jedoch habe ich da meine Probleme

                  Auf Meiner Seite sind Buttons die Automatisch erstellt werden (meine damit genau so viele Button wie Waren auf der Seite sind) die Verlinken Auf die selbe Seite aber mit ?DruckerL = (0 bei button 1, 1 bei Button 2 usw.) jetzt habe ich versuche ich bestimmte Werte aus dem Array zu Löschen in dem ich das Abfrage:
                  PHP-Code:
                  if (isset($_GET['DruckerL'])){
                  $DruckerL $_GET['DruckerL'];
                  unset(
                  $ArrayDruckerID[$DruckerL]);
                  unset(
                  $ArrayDruckerAnzahl[$DruckerL]);
                  $_SESSION['$ArrayDruckerID'] = $ArrayDruckerID;
                  $_SESSION['$ArrayDruckerAnzahl'] = $ArrayDruckerAnzahl
                  Jetzt habe ich folgendes Problem wenn ich z.B. Button 1 Drücke Lösht er nicht nur eintrag 0(hoffe wisst was ich mit 0 meine) sondern auch alles was darüber ist wie kann ich nur diesen Einen Wert Löschen ohne das ich die anderen Werte mit Lösche (Info falls man das nicht rausließt es Werden nur Werte = oder höher gelöscht nicht die kleineren im Array)

                  Kommentar


                  • #10
                    Kann ich so nicht nachvollziehen.

                    PHP-Code:
                    <?php

                    $ArrayDruckerID 
                    = array('foo''bar''baz');

                    $_GET['DruckerL'] = '1';

                    if (isset(
                    $_GET['DruckerL'])){
                        
                    $DruckerL $_GET['DruckerL'];
                        unset(
                    $ArrayDruckerID[$DruckerL]);
                    }

                    var_dump($ArrayDruckerID);

                    // array(2) {
                    //   [0]=>
                    //   string(3) "foo"
                    //   [2]=>
                    //   string(3) "baz"
                    // }
                    Vielleicht erwartet dein Auslese-Code ein Array mit lückenlosen Indizes?

                    Kommentar

                    Lädt...
                    X