[PHP / MYSQL] AVG() functie bij een UNION

Pagina: 1
Acties:
  • 261 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • avs84
  • Registratie: Maart 2006
  • Laatst online: 01-03 10:41
ik heb even een vraag!!!!

ik ben bezig om een internetsite te creeren waar bedrijven hun omzetten en arbeidsuren, gemakkelijk kunnen vergelijken met elkaar zodat ze van elkaar kunnen leren.

Nu heb ik per bedrijf een tabel, waar de omzetcijfers & gewerkte uren per week in staan. ik ben op dit moment zover dat ik via verschillende drop down boxes, een tabel kan krijgen van de omzetten en arbeidsuren van de verschillende bedrijven, voor het geselecteerde jaar en weeknummer. dit heb ik gedaan via een UNION opdracht;

$sql = "SELECT * FROM $_POST[bedrijf]
WHERE jaar = '$_POST[jaar]'
AND week = '$_POST[week]' ";

while ($row = mysql_fetch_array($bedrijf,MYSQL_ASSOC))
{
$sql .= "UNION ALL
SELECT * FROM {$row['bedrijf']}
WHERE jaar = '$_POST[jaar]'
AND week = '$_POST[week]' ";
{

$bedrijf => haalt uit een bedrijvenlijst alle bedrijven die vallen binnen een bepaalde categorie.

door deze sql query krijg ik een tabel waar alle gegevens in staan van alle bedrijven van een bepaalde categorie. deze kan ik prima echo'en in een html- tabel. nu wil ik echter ook de gemiddelde van de bedrijven als uitkomst laten zien.

Bij een gewone tabel binnen MySql kun je de functie AVG() gebruiken. nl;

$sql=SELECT AVG(columnname) FROM tablename;


Echter wil ik nu deze functie gebruiken voor de UNION, dan lukt dit niet.

ik heb al een geruime tijd lopen zoeken via internet op verschillende forums en manuals, naar een passende oplossing. maar heb hier niks kunnen vinden dat mij kan helpen. dus nu zou ik graag willen weten of iemand mij hiermee kan helpen? Alvast bedankt

Acties:
  • 0 Henk 'm!

  • edeboeck
  • Registratie: Maart 2005
  • Laatst online: 11-09 13:47

edeboeck

mie noow noooothing ...

...
ik ben bezig om een internetsite te creeren waar bedrijven hun omzetten en arbeidsuren, gemakkelijk kunnen vergelijken met elkaar zodat ze van elkaar kunnen leren.
Als je hem toch nog aan het opzetten bent, lijkt het me logischer (hoewel niet echt sneller) dat je de gegevens van _alle_ bedrijven in 1 tabel stopt en een link maakt met een aparte bedrijventabel.
Voordeel is dat je query's over meerdere bedrijven heen eenvoudiger worden en dat er niet telkens een tabel moet bijkomen omdat er een bedrijf is bijgekomen.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Nou, als ik dat stukje code zo zie zou ik als bedrijf zijnde nooit mijn gegevens daar plaatsen. Je systeem is zo lek als een mandje. Naast het niet uitgenormaliseerd zijn van je db (zie boven. een tabel per bedrijf is onzin namelijk) heb je ook nog last van sql_injection. Zeker met dit soort gegevens lijkt me dat niet echt handig.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'