Mailinglisten-Archive |
> article_id | category_id | weight > -----------+-------------+------- > 1 | 1 | 9 > 1 | 7 | 5 > 1 | 9 | 7 > 1 | 11 | 6 > 2 | 2 | 4 > 2 | 6 | 9 > .........etc.................... > > Nun brauche ich die Summe aller Gewichte ("weight"-Feld), die in > bestimmten Kategorien für einen Artikel ("article_id") vorhanden sind; > > Wenn die gesuchten Kategorien also 1,6,9,11,15 und 16 sind sollte bei > obiger Tabelle als Ergebnis idealerweise 22 herauskommen. > > Die Summe macht mir via SQL Probleme, aber die könnte ich in PHP > bilden. Also habe ich auf folgendem Weg versucht, für EINEN BESTIMMTEN > Artikel alle "weights" zu ermitteln: > > SELECT weight > FROM correlations > WHERE article_id="1" > AND ( category_id="1" > OR category_id="6" > OR category_id="9" > OR category_id="11" > OR category_id="15" > OR category_id="16") > > (Einrückung nur zwecks übersichtlichkeit). > > Im Browser (PHP-API) bekomme ich nur eine Fehlermeldung ("Warning: > Invalid argument supplied for foreach() in path\prioritylist.php on > line xyz"). > > Derselbe Query (im Script ausgegeben und dann via Copy and Paste) > führt in mySQL-Front zu dem ebenso profanen wie falschen Ergebnis "9", > also offensichtlich nur dem "ersten" Wert aus der Tabelle. > > Was mache ich falsch? Ich bin für jeden Tipp dankbar, das Ganze ist > ein Studienprojekt und der Abgabetermin drückt ;))) keine ahnung was du falsch amchst, sehe hier keinen fehler aber um deine summer rauszubekommen würde ich das so machen: SELECT SUM(`weight`) FROM `correlations` WHERE `article_id` = "1" AND `category_id` IN ("1", "6", "9", "11", "15", "16") -- Sebastian Mendel www.sebastianmendel.de www.tekkno4u.de www.nofetish.com -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive