2 MYSQL Abfragen
Blackwane
- datenbank
0 Alexander (HH)0 EKKi
Meine MYSQL Daten: MySQL - 5.0.32-Debian_7etch10-log
Nabend,
ich möchte gerne 2 MYSQL Abfragen zusammen fügen. Und hoffe das jemand eine Idee hat, wie ich es realisieren kann.
Hier mal meine gekürzten MYSQL Abfragen:
<?php
$result_score = mysql_query("SELECT SUM(globalScore) as summe_globalScore FROM stat_playerAtt");
if (!$result_score) {
echo 'Die Abfrage konnte nicht ausgeführt werden.';
} else {
$summen_score = mysql_fetch_assoc($result_score);
}
?>
und
<?php
$result_score = mysql_query("SELECT SUM(roadtojalalabadTime) as summe_roadtojalalabadTime FROM stat_Maps");
if (!$result_score) {
echo 'Die Abfrage konnte nicht ausgeführt werden.';
} else {
$summen_score = mysql_fetch_assoc($result_score);
}
?>
Das sind meine 2 Abfragen aus 2 verschiedenen Tabellen. Ich habe schon bei google gesucht und folgenden Tip gefunden.
<?php
$query1 = mysql_query(SELECT * FROM `einsatz`);
$query2 = mysql_query(SELECT * FROM `datails`);
while(mysql_fetch_array($query1) AND mysql_fetch_array($query2))
{
// Tabelle erstellen ....
}
?>
Nur leider bekomme ich das so nicht hin.
Fehler: Die Abfrage konnte nicht ausgeführt werden.
Hier mal meine Kompletten MYSQL abfragen, also ungekürzt.
http://joomlachat.de.pastebin.com/d1052905
Ich hoffe jemand hat eine Idee, wie ich das umsetzten kann.
Vielen Dank erstmal für eure Hilfe
mfg Blackwane
Moin Moin!
Suchst Du vielleicht UNION?
Ich weiß nicht, ob MySQL SELECT ... UNION SELECT ... überhaupt kann, das steht im Handbuch. Und ob das mit Aggregatfunktionen auch noch funktioniert, steht dort auch.
SELECT * ist generell eine sehr schlechte Idee, das wurde hier bereits bis zum Erbrechen ausdiskutiert.
Auch fehlen in dem Fetzen, den Du aus der allwissenden Müllhalde gezogen hast, die Quotes rund um das SQL-Statement, das wird so ohnehin nicht laufen.
Die Fehlermeldung hast Du selbst geschrieben, die ist also wenig hilfreich. Warum gibst Du nicht stattdessen den Fehler aus, den MySQL zurückgegeben hat? Wie das geht, steht in der PHP-Dokumentation.
Alexander
Hallöchen,
Suchst Du vielleicht UNION?
Ich weiß nicht, ob MySQL SELECT ... UNION SELECT ... überhaupt kann, das steht im Handbuch. Und ob das mit Aggregatfunktionen auch noch funktioniert, steht dort auch.
Mit UNION habe ich es versucht, aber es funktioniert nicht. Die 2te Abfrage wird dann nicht ausgeführt.
SELECT * ist generell eine sehr schlechte Idee, das wurde hier bereits bis zum Erbrechen ausdiskutiert.
hm... wo steht bei mir SELECT * ?
Auch fehlen in dem Fetzen, den Du aus der allwissenden Müllhalde gezogen hast, die Quotes rund um das SQL-Statement, das wird so ohnehin nicht laufen.
Ich habe wohl vergessen zu erwähnen, das ich erst seid 1 Woche MYSQL lerne^^
Wie würdes du denn diese abfragen machen?
Ein Beispiel wäre mir sehr Hilfreich.
Vielen Dank für die Hilfe
mfg Blackwane
yo,
Suchst Du vielleicht UNION?
UNION wäre hier fatal und falsch, wenn dann UNION ALL
SELECT SUM(globalScore) Summe, 'stat_playerAtt' Tabelle
FROM stat_playerAtt
UNION ALL
SELECT SUM(roadtojalalabadTime), 'stat_Maps'
FROM stat_Maps
;
Ilja
Hallöchen,
SELECT SUM(globalScore) Summe, 'stat_playerAtt' Tabelle
FROM stat_playerAtt
UNION ALL
SELECT SUM(roadtojalalabadTime), 'stat_Maps'
FROM stat_Maps
;
Sieht gut aus, in phpmyadmin funktioniert es.
Ich glaube aber ich mache irgendwas noch beim code falsch.
Hier mal mein Code:
result_score = mysql_query("SELECT SUM(globalScore), 'stat_playerAtt' FROM stat_playerAtt")
UNION ALL
$result_score = mysql_query("SELECT SUM(roadtojalalabadTime), 'stat_Maps' FROM stat_Maps");
if (!$result_score) {
echo 'Die Abfrage konnte nicht ausgeführt werden.';
} else {
$summen_score = mysql_fetch_assoc($result_score);
}
Kommt das UNION ALL da überhaupt hin?
Vielen Dank
mfg Blackwane
Moin Moin!
result_score = mysql_query("SELECT SUM(globalScore), 'stat_playerAtt' FROM stat_playerAtt")
UNION ALL
$result_score = mysql_query("SELECT SUM(roadtojalalabadTime), 'stat_Maps' FROM stat_Maps");
if (!$result_score) {
echo 'Die Abfrage konnte nicht ausgeführt werden.';
} else {
$summen_score = mysql_fetch_assoc($result_score);
}
>
> Kommt das UNION ALL da überhaupt hin?
Du fragst uns, wie man aus ZWEI Abfragen EINE baut. Und Dein neuer Code hat weiterhin ZWEI Abfragen? Und PHP mault fürchterlich rum, weil Du nach PHPs Meinung wirres Zeug redest. Wie mag da wohl die Antwort lauten?
Und mal so am Rande: Gib im Fehelrfall die [MySQL-Fehlermeldung](http://www.php.net/manual/en/function.mysql-error.php) aus, sonst rätst Du nur sinnlos rum!
Alexander
--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
Okay,
ich bin jetzt weiter gekommen. Jetzt habe ich nur noch eine MYSQL abfrage.
Jedoch möchte er mir nicht die 2te abfrage anzeigen lassen.
Ich bekomme auch keine fehlermeldung, hier mal meine PHP Datei.
<?php
//hier Datenbank angaben
$host = "localhost"; // Adresse des Datenbankservers, meistens localhost
$user = "******"; // Ihr MySQL Benutzername
$pass = "******"; // Ihr MySQL Passwort
$db = "bf2"; // Name der Datenbank
$link = mysql_connect($host, $user, $pass) or die ("Keine Verbindung zu der Datenbank möglich.");
mysql_select_db($db, $link);
$result_score = mysql_query("
SELECT SUM(globalScore) as summe_globalScore, 'stat_playerAtt' FROM stat_playerAtt
UNION ALL
SELECT SUM(kubradamWins) as summe_kubradamWins, 'stat_Maps' FROM stat_Maps");
if (!$result_score) {
echo 'Die Abfrage konnte nicht ausgeführt werden.';
} else {
$summen_score = mysql_fetch_assoc($result_score);
}
?>
<table width="100%" border="1">
<tr>
<td><?php echo $summen_score['summe_globalScore'] ?></td>
<td><?php echo $summen_score['summe_kubradamWins'] ?></td>
</tr>
</table>
So sollte es doch eig. funktionieren.
Er zeigt mir aber nur das ergebniss von
?php echo $summen_score['summe_globalScore'] ?>
an.
mfg Blackwane
Hallöchen,
also ich bin jetzt den ganzen Tag nur an dieser einen Sache. Probiere hier und da alles aus, was ich weiß. Bei google habe ich auch schon Stunden gesucht. Ich versteh nicht wieso er die 2te Abfrage nicht anzeigen möchte.
Ich hoffe ihr könnt mir nochmal bei meinem Problem helfen.
Hier nochmal meine Datei:
<?php
//hier Datenbank angaben
$host = "localhost"; // Adresse des Datenbankservers, meistens localhost
$user = "******"; // Ihr MySQL Benutzername
$pass = "******"; // Ihr MySQL Passwort
$db = "bf2"; // Name der Datenbank
$link = mysql_connect($host, $user, $pass) or die ("Keine Verbindung zu der Datenbank möglich.");
mysql_select_db($db, $link);
$result_score = mysql_query("
SELECT SUM(globalScore) as summe_globalScore, 'stat_playerAtt' FROM stat_playerAtt
UNION ALL
SELECT SUM(kubradamWins) as summe_kubradamWins, 'stat_Maps' FROM stat_Maps");
if (!$result_score) {
echo 'Die Abfrage konnte nicht ausgeführt werden.';
} else {
$summen_score = mysql_fetch_assoc($result_score);
}
?>
<table width="100%" border="1">
<tr>
<td><?php echo $summen_score['summe_globalScore'] ?></td>
<td><?php echo $summen_score['summe_kubradamWins'] ?></td>
</tr>
</table>
Vielen Dank für eure Hilfe
mfg Blackwane
yo,
Sieht gut aus, in phpmyadmin funktioniert es.
Ich glaube aber ich mache irgendwas noch beim code falsch.
grundsätzlich sollte man immer unterscheiden, ob man ein problem mit einer sql anweisung hat oder mit dem php code. wenn es mit phpmyadmin geht, dann ist das ein guter hinweis, dass die sql anweisung gut ist und das problem am php code liegt. und dafür gibt es bessere spezialisten als mich, meine "arbeit" ist getan. ;-)
Ilja
Mahlzeit Blackwane,
Ich hoffe jemand hat eine Idee, wie ich das umsetzten kann.
Nachdem ich mir den gesamten bisherigen Thread durchgelesen habe, ist mir immer noch nicht klar, was Du *eigentlich* willst ... vielleicht solltest Du einmal *kurz* *fachlich* beschreiben, was Du mit den Daten überhaupt anfangen willst - ich bin mir *sehr* sicher, dass es einen viel besseren Lösungsweg zum Erreichen Deines *eigentlichen* Ziels gibt.
MfG,
EKKi