Marc: MySQL + PHP: Mehrere Abfragen auf einmal durchführen

Hallo,

wie kann ich eine grössere Menge (so 20 oder so) MySQL Abfragen auf einmal auszuführen. All diese Abfragen beziehen sich auf die selbe Tabelle und die selben Felder allerdings alle Abfragen mit unterschiedlichen WHERE bedingungen. Kann ich das irgendwie durch absetzten eines mysql_query() lösen oder muss ich echt für jede Abfrage einen extra ausführen?

Grüsse

Marc

  1. Hallo Marc

    allerdings alle Abfragen mit unterschiedlichen WHERE bedingungen.

    Was hältst du von dem hier:

    SELECT * FROM tabelle WHERE bedingung=1 OR bedingung=2 OR bedingung=3

    Drei Abfrage in einer, toll nicht!

    Max

    1. Hiho,

      jetzt arbeiten wir noch am Umgangston und alle sind happy... Trotzdem danke, da habe ichd en Wald vor lauter Bäumen net gesehen

      Marc

      1. Hallo,

        jetzt arbeiten wir noch am Umgangston und alle sind happy...

        War mein Umgangston wirklich so schlimm? Das tut mir aber leid.
        Da ist mir mal wieder nicht bewusst gewesen, wie schnell man doch andere Leute mit unbedarften Worten vor den Kopf stoßen kann.

        Ich hoffe, du vergibst mir.

        Max

        1. Ich hoffe, du vergibst mir.

          Jo, mache ich. Dafür habe ich aber auch noch meine eigenen Dummheit einzugestehen. Und zwar habe ich bei dieser Frage das eigentliche Problem vergessen. Ich mache jetzt nochmal ein neues Thema auf. Wenn dir danach ist, kannst du da ja auch mal reinschaun, vielleicht weisst du auch da ne Antwort

          Marc

  2. Halihallo Marc

    wie kann ich eine grössere Menge (so 20 oder so) MySQL Abfragen auf einmal auszuführen. All diese Abfragen beziehen sich auf die selbe Tabelle und die selben Felder allerdings alle Abfragen mit unterschiedlichen WHERE bedingungen. Wichtig ist, das ich count() Abfragen machen will. Also ich brauche die Anzahl der ergebnisse pro WHERE Bedingung getrennt. Ein WHERE OR WHERE liefert dann ja die gesamtanzahl zurück, ich muss es aber Getrennt haben. Also 10 Ergebnisse bei bedingung 1, 20 bei bedingung2 und so weiter. Kann ich das irgendwie durch absetzten eines mysql_query() lösen oder muss ich echt für jede Abfrage einen extra ausführen?

    Nein, das geht nur mit mehreren mysql_query - Abfragen.
    Was stört dich daran?

    Viele Grüsse

    Philipp

    1. Nein, das geht nur mit mehreren mysql_query - Abfragen.
      Was stört dich daran?

      An sich nichts. ich bin nur bemüht mich weiterzubilden und nach eleganteren methoden als

      mysql_query();
      mysql_query();
      mysql_query();
      mysql_query();
      mysql_query();
      mysql_query();
      mysql_query();
      ....

      zu suchen

      Marc

      1. Halihallo Marc

        Nein, das geht nur mit mehreren mysql_query - Abfragen.
        Was stört dich daran?

        An sich nichts. ich bin nur bemüht mich weiterzubilden und nach eleganteren methoden als
        zu suchen

        Die wird es wahrscheinlich geben, nur, dass man dir aufgrund fehlender Informationen
        nicht viel weiterhelfen kann. Du musst uns schon sagen, wonach du abfragst, was du
        gruppieren willst und wie die Daten vorliegen. Das einzige was ich aufgrund der mir
        vorliegenden Informationen sagen kann ist, dass du mehr als einen Query dafür benötigen
        wirst.

        Eine interessante Frage wäre z. B.: Was willst du überhaupt machen? - Ist es eine Art
        Suchmaschine, wo du nach verschiedenen Kriterien abfrägst und jeweils zu einem Kriterium
        angibtst, wieviele Treffer da zu erzielen wären? - Oder liegt dir eine mathematische
        Repräsentation unserer DNS vor, wo du versuchst eine Struktur mit gew. Merkmalen zu
        finden?

        Wie soll man dir helfen, wenn wir nicht wissen, was du _eigentlich_ willst? - Du wirst
        mir wohl zustimmen, wenn ich sage, dass die Lösung (sei's nun SQL oder PHP) ziemlich
        stark von der Aufgabenstellung und dem Ziel abhängt...

        Also:

        • Was sind die Eingabedaten (mach mal ein Beispiel dass man sich was vorstellen kann)
        • Wie sieht die gewünschte Aussabe aus?

        Viele Grüsse

        Philipp

        1. Hiho,

          das ganze ist eine Karte für ein Online Spiel. Ich habe in einer Tabelle die Position eines jeden Spielers (definiert über eine Spalte x und eine Spalte y, die das genaue Feld angibt). logischerweise können auch mehrere Spieler auf einem Feld sein. Ich will gerne für jedes Feld des angezeigten Kartenausschnittes ausgeben wieviele Spieler auf diesem Feld sind (also wieviele Einträge in der Spieler DB einen bestimmten x Wert und einen bestimmten y wert haben). Danach das ganze für das zweite feld auf dem Kartenausschnitt. Und das dritte und so weiter...

          Grüsse

          Marc

          1. Halihallo Marc

            das ganze ist eine Karte für ein Online Spiel. Ich habe in einer Tabelle die Position eines jeden Spielers (definiert über eine Spalte x und eine Spalte y, die das genaue Feld angibt). logischerweise können auch mehrere Spieler auf einem Feld sein. Ich will gerne für jedes Feld des angezeigten Kartenausschnittes ausgeben wieviele Spieler auf diesem Feld sind (also wieviele Einträge in der Spieler DB einen bestimmten x Wert und einen bestimmten y wert haben). Danach das ganze für das zweite feld auf dem Kartenausschnitt. Und das dritte und so weiter...

            Och, jetzt hab ich dich gar noch angelogen... Da gibt's ja doch eine Lösung über einen
            Query!

            SELECT x, y, COUNT(*) AS 'Anzahl'
            FROM spieler_positionen
            GROUP BY CONCAT(x,'-',y)

            Viele Grüsse

            Philipp