mysql_query als globale Variable?

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

  • mysql_query als globale Variable?

    Ist es möglich eine mySQL-Query als globale Variable zu deklarieren um diese dann an verschiedenen Stellen zu nutzen und so queries einzusparen?

  • #2
    warum denn nicht? schon mal probiert?
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      Du meinst die Resource die du zurückgegeben bekommst? Klar.

      Schau dir mal $GLOBALS an.
      Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
      var_dump(), print_r(), debug_backtrace und echo.
      Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
      Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
      Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

      Kommentar


      • #4
        Aber wieso sollte dies helfen Queries einzusparen Ob die Var global ist oder nicht ändert doch nix daran wieoft mysql_query() aufgerufen wird

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          So - ich habe das jetzt ausprobiert und es funktioniert nur für einen abruf.

          ich hatte mir das folgender massen gedacht:

          Datei Kopf:
          PHP-Code:
          $test_sql FetchSQL("SELECT category_title, category_id, category_parent FROM ".$config['db_pref']."categories 
          WHERE category_active=1 ORDER BY category_parent, category_order ASC"
          ); 
          Stelle 1 in Datei:

          PHP-Code:
              while($row mysql_fetch_array($GLOBALS["test_sql"])) {
                  if (
          $row['category_parent'] == 1) {
                      
          array_push($genres$row['category_title']);
                  } else {}
              } 
          Stelle 2 in der Datei:

          PHP-Code:
              while($row mysql_fetch_array($GLOBALS["test_rsql"])) {
                  if (
          $row['category_parent'] > 1) {
                      
          $category_title ' — '.stripslashes($row['category_title']);
                  } else {
                      
          $category_title ' - '.stripslashes($row['category_title']);
                  }
                  
                  
          $category_id $row['category_id'];
                  if (
          $category_id == $category) {
                      
          $category_list .= '<option value="' $category_id '" selected>' $category_title '</option>';
                  } else {
                      
          $category_list .= '<option value="' $category_id '">' $category_title '</option>';
                  }
              } 
          Aber dann muss ich die Query wohl schon im Datei Kopf auswerten und die Daten dann Global weitergeben oder mache ich irgendwas falsch?
          Zuletzt geändert von HighPower; 21.02.2007, 18:26.

          Kommentar


          • #6
            Original geschrieben von HighPower
            oder mache ich irgendwas falsch?
            Du berücksichtigst nicht, dass der "Zeiger" nach einmaligem Durchlaufen am Ende steht.

            mysql_data_seek
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Okay und wie genau muss ich mysql_data_seek() verwenden? Sorry bin nub unnd habe diesbezüglich auch nix im inet gefunden bis auf die erklärung bei php.net die mich allerdings nicht weiterbringt...

              Vielen Dank!

              Kommentar


              • #8
                Was gibt es denn bitte an
                mysql_data_seek() bewegt den internen Datensatz-Zeiger eines Anfrageergebnisses zum Datensatz mit der übergebenen Nummer. Der nächste Aufruf von mysql_fetch_row() liefert den entsprechenden Datensatz.

                Die Datensatznummer beginnt bei 0.
                nicht zu verstehen?

                Und was an den Regeln, wo steht dass du deinen Code bitte umbrechen sollst? Nachholen, Bitte.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Sorry wegen dem nicht umgebrochenem Code.

                  Ich habe jetzt einfach

                  PHP-Code:
                      mysql_data_seek($core['sql_category_name'], 0); 
                  hinter die beiden while schleifen gesetzt und jetzt funktioniert es auch alles. Dank - aber verstanden habe ich es trotzdem nicht warum es jetzt geht. Wäre echt dank bar wenn mir das jemand kurz erklären könnte...


                  So und jetzt nochmal zu meiner eigentlichen frage: Spart dies nun queries ein oder nicht?

                  Zuletzt geändert von HighPower; 21.02.2007, 19:24.

                  Kommentar


                  • #10
                    Original geschrieben von HighPower
                    hinter die beiden while schleifen gesetzt und jetzt funktioniert es auch alles. Dank - aber verstanden habe ich es trotzdem nicht warum es jetzt geht. Wäre echt dank bar wenn mir das jemand kurz erklären könnte...
                    Wenn ich 300 Meter gehe und wieder von vorne anfangen will muss ich doch erstmal wieder zurück zum Start, oder?

                    So und jetzt nochmal zu meiner eigentlichen frage: Spart dies nun queries ein oder nicht?
                    Ja

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      gut - alles kalr - danke!

                      Kommentar


                      • #12
                        oder les es doch 1x aus und pack es in ein Array und den definierst du dann als das was du willst
                        Killerspiele sollten in der Größenordnung von Kinder********************grafie eingeordnet werden.(G. Beckstein)
                        - ...und solche Behauptungen in "falsches Resourcenmanagement"

                        Kommentar


                        • #13
                          das habe ich jetzt auch so gemacht - dann muss ich die query nur einmal verarbeiten. danke nochmal!

                          Kommentar


                          • #14
                            Original geschrieben von HighPower
                            das habe ich jetzt auch so gemacht - dann muss ich die query nur einmal verarbeiten. danke nochmal!
                            Jacke wie Hose... die Datenbank kriegt den Query nur einmal ab, bei erster Variante liegt er dann direkt im Speicher der MySQL-Funktionen, weil es ein buffered Query ist, beim Speichern im Array halt dort im Speicher ... im Zweifelsfall würde ich jetzt sogar sagen, dass erste Variante schneller ist, aber das ist nur ne Vermutung~

                            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                            Wie man Fragen richtig stellt

                            Kommentar

                            Lädt...
                            X