Hoi beste php'ers,

ik ben nog niet heel lang bezig met php maar heb toch een wens. Gaat om het maken van een query voor 'n kruistabel te laten weergeven. Poosje geleden heb ik me hier ook al me beziggehouden maar ik kan me helaas niet in verdiepen doordat ik kennis niet op niveau heb om dit te kunnen maar ook tijd speelt een rol.

ik ben op zoek naar iemand die me hierbij wil helpen. Dit hoeft uiteraard niet kosteloos te zijn. Ga graag met iemand daarover in onderhandeling buiten het forum om.

Wat is de vraag?

ik heb in een database drie tabellen. tabel medewwerkers, tabel rollen en een tabel waarin een relatie staat tussen die twee.
wat ik nu graag zou willen is dat een dmv een SQL opdracht de waarden van tabel medewerkers verticaal wordt weergegeven en de waarden van tabel rollen horizontaal wordt weergeven. Daar waar een match tussen die twee zitten zou het mooi zijn dat via een symbool (plusje ofzo) wordt getoond op het scherm.

Ik heb geen idee hoe dit werkt vandaar dat ik de vraag hier parkeer. Hoop dat iemand me hier mee wil helpen
Kunnen we onderling de vraag fine tunen waar nodig..

Alvast bedankt,
Dirk
Ik denk dat je het niet begrijpt. Zie mijn privébericht met wat meer duidelijkheid.
Ik hoop dat dit de zaak opheldert en dat we je alsnog kunnen helpen hier met je hulpvraag.

Want nu wordt het topic juist extra warrig, en dat willen we voorkomen. Ik hoop niet dat je dit ziet als pesterijen of iets dergelijks, maar je moet het enkel zien als een sturing zodat het forum en het topic overzichtelijk blijft.
---- STOP ----

Misschien even opnieuw beginnen?

@ Dirk Huizinga

Dit is een openbaar forum. Alles wordt hier in de openbaarheid besproken. Wil je privé-contact of privé-begeleiding dan kun je inderdaad beter, zoals Ariën voorstelde, een vacature plaatsen.

De opties zijn dus:
1) In de openbaarheid je probleem bespreken, zodat iedereen zich op het forum ermee kan bemoeien
2) Een vacature plaatsen als je 1-op-1 contact wil met iemand die het probleem tegen betaling oplost

Je moet voor jezelf uitmaken welke optie jouw voorkeur heeft.

Hoe jij jouw vraag stelt, ik citeer "Dit hoeft uiteraard niet kosteloos te zijn. Ga graag met iemand daarover in onderhandeling buiten het forum om." lijkt het alsof je voor optie 2 kiest waarbij je dus een vacature dient te plaatsen.

Als een vacature niet de bedoeling is, dan kun je je vraag gewoon hier op het forum stellen, maar dan kan dus ook iedereen erop reageren en is er geen sprake van 1-op-1 contact. Indien je voor deze optie kiest, dan is het wel de bedoeling dat je aangeeft wat je zelf al hebt geprobeerd met wat code erbij.

Hoop dat het zo wat duidelijker voor je is.
hoi guyz.... diegene die me een trap onder kont heeft gegeven om toch ff door te pakken.THNKS
Ben alweer bijna een hele zaterdag bezig om een kruistabel in elkaar te flansen... Tjee zeg.. in tegenstelling at jullie zeggen dat het allemaal voorgekauwd is blijft het wel puzzelen voor mij hoor ;-)

Maar ik denk dat ik mijn query voor elkaar heb. Ik krijg zonder foutmelding de data uit de tabellen die voor nu voldoende is.
Dit kan ik ook in kruistabel format op scherm krijgen... verticaal de rollen en horizontaal de personen van een bepaalde afdeling.

Maar bij de opbouw van de tabel lijkt er toch wat mis te gaan wat ik niet begrijp waarom.
Het lijkt erop dat dat de verticale regels met 1 regel zakt zodat bovenaan een lege regel ontstaat maar wel een match wordt gevonden.. (sorry, beter kan ik het omschrijven).

Hier een plaatje met wat ik bedoel:


dan de code.


<?php
require_once('../inc/connect.php');

$sqlUitlezen = mysqli_query($connection, 
$sql = "SELECT	
		CONCAT(idm_person.CALLNAME, ' ', idm_person.MX_LASTNAME, ' <br>(', idm_person.EMPLOYEENUMBER, ')' ) naam,
		idm_person.MSKEYVALUE_MEDEWERKER,
		idm_role.MSKEYVALUE_ROL rol,
		idm_role.DISPLAYNAME,
		idm_role.ROLETYPE
		
	FROM `idm_person`
		
	LEFT JOIN `idm_person2role` 
		ON idm_person.MSKEYVALUE_MEDEWERKER = idm_person2role.MSKEYVALUE_MEDEWERKER
		
	LEFT JOIN `idm_role`
		ON idm_role.MSKEYVALUE_ROL = idm_person2role.MSKEYVALUE_ROL

	WHERE idm_person.REF_OU = 'OU:60000203'

	ORDER BY idm_role.ROLETYPE, idm_role.MSKEYVALUE_ROL
	");
	
					
$data = mysqli_fetch_all($sqlUitlezen, MYSQLI_ASSOC);
			
	foreach($data as $rij) {
	$namen[$rij['rol']] = $rij['rol'];
	$draai[$rij['naam']][$rij['rol']] = true;
	}
		echo '<table cellspacing="0" cellpadding="2" border="1" bordercolor="#e1e3e6">' . PHP_EOL;
		echo '<tr><td></td>';
		
	foreach($draai as $key=>$rol) {
		echo '<td nowrap><font size="2">' . $key . '</font></td>';
	}
		echo '</tr>';
	   
	foreach ($namen as $naam) {
		echo '<tr><td nowrap><font size="2">'. $naam . '</font></td>' . PHP_EOL;
		foreach($draai as $key=>$rol) { 
			if(isset($draai[$key][$naam])) {
				echo '<td align="center" valign="middle">?</td>';
			}else{
				echo '<td></td>';
			}
		}
		echo '</tr>';
	}
		echo '</tr>
	</table>';
?>	


Kortom ik ben er nog niet. Maar ik wordt 'n beetje draaierig van de tabelopbouw...
waar zit 'm nu het feit dat ik een blanco regel heb?


Waar zie je een blanco regel? Vanuit welke statement?
- Ariën - op 17/08/2019 15:21:54
el
Waar zie je een blanco regel? Vanuit welke statement?


Zie ingesloten image.. aangeven met pijltje.. voor mijn gevoel hoor de lege cel op de 2e rij daar niet te zijn. Lijkt of de rollen allemaal 1 cell naar beneden zijn geschoven. Beetje lastig uitleggen..
Het beste advies om dit te tackelen is met maken van een mock-up in HTML, en te kijken waar het in de geparste HTML fout gaat. Zorg dat je exacte dezelfde data toont.

Met een simpele diff (kan elke goede editor) zie je zo de verschillen.

PS: onthoud wel dat font-tags in het museum thuishoren. Tegenwoordig hebben we CSS ;-)
Waar komt de </tr> op regel 51 vandaan?

Het makkelijkste is gewoon de broncode te bekijken van de uitgedraaide HTML (Ctrl-U in de meeste browsers).

Naar alle waarschijnlijkheid zit er een fout in de opmaak van de HTML.
- Ariën - op 17/08/2019 15:28:11

Het beste advies om dit te tackelen is met maken van een mock-up in HTML, en te kijken waar het in de geparste HTML fout gaat. Zorg dat je exacte dezelfde data toont.

Met een simpele diff (kan elke goede editor) zie je zo de verschillen.

PS: onthoud wel dat font-tags in het museum thuishoren. Tegenwoordig hebben we CSS ;-)


Ik mis wat tekst naast een quote?

Reageren