MySQL + PHP: Mehrere Abfragen auf einmal durchführen
Marc
- datenbank
0 Max Smily0 Philipp Hasenfratz0 Marc
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
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
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
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
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
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
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
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:
Viele Grüsse
Philipp
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
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