Door
Molovhic designer
op 20-03-2016 02:44
gewijzigd op 20-03-2016 02:52
2.355 views
Allen
Daar ik absoluut geen kennis van php heb (alleen html en css) vraag ik om jullie hulp.
Ik heb een basic query die ik wil laten draaien maar niet alles verloopt volgens plan.
Zit nu een paar dagen alle mogelijke site's af te schuimen voor een oplossing, maar daar ik
weinig van php begrijp krijg ik het niet opgelost.
In onderstaande script is het de bedoeling om in 5 kolommen resultaten te krijgen.
De eerste query krijg ik gedaan en krijg men usernames te zien.
In de 2 de <td> zouden diezelfde usernames moeten geteld moeten worden (hoeveel keer ze in
de database voorkomen = query2) Deze krijg ik niet gefixt, ik vermoed dat
de while daar voor iets tussen zit.
select 'user name',count(veld2) as aantal from 'table 2' group by 'user name'
Het 2° kan je dan aanroepen met $row['aantal']
Verder Gebruik duidelijke veldnamen. probeer spaties in veld en tabel namen te vermijden.
Gebruik niet mysql commando's maar mysqli commando's. mysql is verouderd en wordt niet meer ondersteund.
Je spreekt van 5 kolommen maar er staan er maar 2. mogelijks zal je dus nog sum of zo ook nodig hebben.
select `user name`,count(*) as aantal from `table 2` group by `user name`
query 2 is daarmee overbodig en kan vervallen.
Probeer inderdaad met veldnamen zonder spatie te werken en laat de backtics: ` weg
Nice guys, het werkt.
de mysqli krijg ik niet echt omgezet dan geef hij errors aan, dus daar moet ik nog wat opzoekwerk doen.
De kolomnamen komen uit een csv file die in de database zit dus als ik de spatie weglaat krijg ik ook errors..
idem voor de backtics, als ik ze weglaat krijg ik alleen maar errors..
Voorlopig heeft deze het opgelost, en idd in de overige kolommen gaan formules moeten komen (vb zoals excel =SUM(IF(COUNTIFS maar dan php..)
<?php
$query="SELECT `User Name`,count(`User Name`) AS aantal FROM `table 2` GROUP BY `User Name`";
$result = mysql_query($query);
?>
<?php
while($row=mysql_fetch_array($result)){
echo("<tr>
<td>".$row['User Name']."</td>
<td style='text-align:center;'>".$row['aantal']."</td>
<td></td>
<td></td>
</tr>");
}
?>
Daarnaast, wanneer zijn twee usernames hetzelfde? Mogelijk is het veld User Name case-sensitive. In dat geval zijn henk, Henk en HENK alle "verschillende" gebruikersnamen? Mogelijk staan er ook voor en achter de gebruikersnamen spaties? En zo zijn er mogelijk nog meer nuances.
Ik zou in ieder geval een ORDER BY `User Name` toevoegen, dan komen sommige van dit soort zaken mogelijk direct naar voren (weet ook niet precies met hoeveel gebruikersnamen je van doen hebt).
Thomas, gebruikersnamen hangen af van dag tot dag, bedoeling is dus dat deze query heel het bestand uitleest en al die namen gaat opsommen enz. User Name is idd case-sensitive vermits "user name" niet werkte..
Voorlopig werkt het nu en we leren bij! alvast bedankt voor de suggesties en opmerkingen.