query opbouwen en resultaten afdrukken
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.
Hopelijk kan iemand mij op weg helpen.
Thx!
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$query="SELECT DISTINCT`User Name` FROM `table 2` ORDER BY `User Name` ASC";
$result = mysql_query($query);
$query2="SELECT `User Name` count(*) FROM `table 2`";
$result2 = mysql_query($query2);
?>
$query="SELECT DISTINCT`User Name` FROM `table 2` ORDER BY `User Name` ASC";
$result = mysql_query($query);
$query2="SELECT `User Name` count(*) FROM `table 2`";
$result2 = mysql_query($query2);
?>
<table id="performancetable">
<tr class="titels"><td>User Name</td><td>Picked Lines Total</td><td>Total %</td><td>Worked Hours</td></tr>
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
while($row=mysql_fetch_array($result)){
echo("<tr>
<td>".$row['User Name']."</td><td>[b][u]??query2???[/u][/b]</td><td></td><td></td>
</tr>");
}
?>
while($row=mysql_fetch_array($result)){
echo("<tr>
<td>".$row['User Name']."</td><td>[b][u]??query2???[/u][/b]</td><td></td><td></td>
</tr>");
}
?>
</table>
Gewijzigd op 20/03/2016 02:52:29 door Molovhic designer
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.
Jan
query 2 is daarmee overbodig en kan vervallen.
Probeer inderdaad met veldnamen zonder spatie te werken en laat de backtics: ` weg
Gewijzigd op 20/03/2016 10:10:01 door John D
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..)
Code (php)
1
2
3
4
2
3
4
<?php
$query="SELECT `User Name`,count(`User Name`) AS aantal FROM `table 2` GROUP BY `User Name`";
$result = mysql_query($query);
?>
$query="SELECT `User Name`,count(`User Name`) AS aantal FROM `table 2` GROUP BY `User Name`";
$result = mysql_query($query);
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?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>");
}
?>
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>");
}
?>
Daarom moet je backtics gebruiken.
Maar beter geen backtics maar een goede naam geven.
SELECT `User Name`
Vervang de spatie bv. door een underscore.
SELECT User_Name
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).
Voorlopig werkt het nu en we leren bij! alvast bedankt voor de suggesties en opmerkingen.
Ik bedoelde niet de naam van de kolom maar de waarde van die kolom in de verschillende records...