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..
Abstract denken is inderdaad niet zo mijn ding.. Mijn leervermogen is ook niet van topniveau hoor.. Maar om nu alles tegelijkertijd moet leren zie ik al helemaal niet zitten :-) Dat heeft lange tijd nodig eer ik deze materie een beetje begrijp ;-)Trouwens die tijd ontbreekt me ook. Wel mijn complimenten hoor dat je in een bericht zo'n analyse kan verwoorden. Knap.
Ik dacht dat wat ik nu zou willen wel inmiddels duidelijk is. Hoe te realiseren nog niet. Maar ik heb hier een op de vacature deel ook een oproep geplaatst. Hopelijk reageert iemand daar. Want dit is niet helemaal mijn ding merk ik wel. Ben al heel blij met het overzicht wat er nu staat hoor. Het geeft een mooi inzicht wie welke rol heeft. Maar het muteren zou een fantastische uitbreiding zijn.
dit zou dan betekenen dat voor iedere gebruiker een pagina moet worden geopend?
Je opent de pagina van de gebruiker waarvan je de rollen die aan hem gekoppeld zijn wilt wijzigen. Dit is niet meer dan een muisklik. Je hoeft maar één (dynamische) pagina te maken.
Dirk Huizinga op 26/08/2019 15:46:09
Let op.. ik hoef de rol van gebruiker niet aan te passen he.... alleen de rollen die aan een gebruiker zijn gekoppeld.
Oke maar dat maakt verder geen verschil
Dirk Huizinga op 26/08/2019 15:46:09
ps.. ingesloten link werkt niet
Klopt. Het is als voorbeeld bedoeld hoe je de pagina waarin je de gebruiker aan zijn rollen koppelt aan kunt roepen. Merk op dat je de gebruikers_id meegeeft als GET variabele.
[size=xsmall]Toevoeging op 27/08/2019 09:12:41:[/size]
Hallo Frank, ben hiermee aan het experimenteren.. en zo waar het lukt me om hyperlink te maken... deze ziet er op die velden waar geen link staat als volgt eruit
wanneer ik op link klik dan wordt een formulier getoond met twee gevulde velden met de waarden die ik heb meegegeven in de link.... ik zou dus zeggen nu ff op het knoppie Opslaan klikken en dan wordt de koppeling toegevoegd aan de database.... Maar dat lukt dus niet... er wordt niets weggeschreven... zit te puzzelen hoe dit kan en wat proberen...
Het zal ongetwijfeld met ON SUBMIT te maken hebben. we blijven proberen
Er kunnen diverse oorzaken zijn:
- De action van het formulier is niet correct
- De afhandeling van je formulier klopt niet
- Je query mislukt.
Het is een kwestie van debuggen, en stap voor stap een string plaatsen om te kijken waar het spaak loopt, en welke route wel wordt bewandeld door je script.
Debuggen is niets anders dan kijken wat je script precies doet. Gooi hier en daar een echo neer, kijk met print_r() of var_dump() naar de inhoud van variabelen.
Het is iets wat bij de basis hoort, als je iets wilt programmeren.
Zo te horen ben je er bijna.. Mocht het niet lukken dan zou je nog even wat relevante code kunnen plaatsen zodat we even met je mee kunnen kijken.
[size=xsmall]Toevoeging op 28/08/2019 09:41:53:[/size]
Algemene tip:
Op php.net vindt je uitgebreide informatie over iedere functie in php (bijvoorbeeld de functie mysqli_query). Bij het kopje Return Values staat beschreven wat de functie mogelijk voor waarden terug kan geven. Door deze waarden vervolgens te testen in je programma kun je achterhalen of er een fout optreedt. Wanneer dat het geval is zou je een nette melding kunnen tonen. Het resultaat is dat je minder hoeft te gissen en sneller fouten oplost.
<?php
$result = mysqli_query($con, 'SELECT * FROM table');
if(FALSE === $result) {
echo 'er gaat iets mis met de query! ' . mysqli_error($con);
}
?>
Voortbordurend op mijn vorige variant hier een "mockup" met jQuery/AJAX. Het enige wat ontbreekt is een koppeling met de database, met daarbij:
- het uitlezen van de rollen, gebruikers, en de koppelingen hiertussen
- communicatie met de koppeltabel in de AJAX-call
Het enige wat in wezen verschilt is dat ik enkele cellen heb voorzien van een id en wat data-attributen, de rest is wat jQuery. De syntax lijkt ingewikkeld, maar alle afzonderlijke operaties zijn in principe bij elkaar te Googlen. En ja, dat kost wat tijd als hier niet vertrouwd mee bent, maar met wat annotatie in code en fatsoenlijke naamgeving van de variabelen zou je hier toch chocola van moeten kunnen maken.
Uiteraard moeten deze scripts ook afgeschermd worden van de buitenwereld met authenticatie of wat dan ook... Het gaat hier puur om de werking, niet om security of precieze database-operaties of wat dan ook. Dat zou je zelf wel in moeten kunnen vullen. Dit alles zou je in ieder geval een idee/aanzet moeten geven.
Thomas kerel, je maakt er weer 'n hoogstandje van. Was al ver zoals door Frank Nietbelangrijk z'n methode dit via link een pagina te open waar de koppeling met de waarden in een form wordt geopend en met $_GET waarden wordt gevuld.. je hebt nog de mogelijkheid te annuleren en bij ok kan de mutatie toegevoegd worden aan de database.... dit heb ik nu werkend.
Maar tja... dan zie ik dit pareltje... Prachtig. Hier ga ik zeker mee aan de slag want dit was wel wat ik aanvankelijk bedoelde en er hoeft niet steeds een pagina geopend te worden.. als op deze manier koppelingen tussen rol/persoon kan toevoegen/intrekken in een tabel werkt dit vele malen eenvoudiger en sneller...