Kan dit misschien beter???

Overzicht

Sponsored by: Vacatures door Monsterboard

Full stack developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Teamlead PHP Developer

Functieomschrijving Voor een gewaardeerde werkgever in de buurt van Middelburg zijn wij op zoek naar een gemotiveerde teamlead PHP developer met affiniteit met Symfony/Laravel. Een enthousiast persoon die het ontwikkelteam komt versterken met het aanpakken van uitdagende projecten. Ben jij op zoek naar een uitdaging waar je de tijd en ruimte krijgt jezelf te ontwikkelen en je eigen IT-team aan te sturen? Lees dan snel verder! Die ga je doen: Bijdragen aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de PHP based applicaties; Ontwikkeling en beheer van de serviceportal in Symfony en de webshops in de tweede versie van

Bekijk vacature »

Medior Java developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Medior front-end developer gezocht (€3.300 -

Functie Wat ga je doen? Jij als front-end developer gaat werken binnen de teams van/voor onze klant. Je werkt in een team met starters en ervaren ontwikkelaars met allemaal 1 overeenkomst; passie voor het vak. Maak je een fout? Geen probleem, leer ervan en ga dan weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en jezelf dus snel ontwikkelen. Wat hebben we jou te bieden? • Uitdagende projecten bij mooie klanten (bij jou in de buurt, of binnenkort intern vanuit ons kantoor!) • Een jonge organisatie met talentvolle collega’s • Veel ruimte voor

Bekijk vacature »

Senior Node.js developer Digital Agency

Functie Door de groei van de organisatie zijn ze op zoek naar een Tech Lead. Als tech lead ben jij verantwoordelijk Als Back end Node.js developer kom je terecht in een van de 8 multidisciplinaire teams in het projectenhuis. Afhankelijk van jouw interesses, wensen en capaciteiten word je bij projecten en onderwerpen naar keuze betrokken. Als ervaren ontwikkelaar zul jij vaak leiding nemen in de projecten en in het team een aanvoerder zijn van technische discussies. Uiteindelijk wil jij natuurlijk de klantwensen zo goed mogelijk vertalen naar robuuste code. De projecten kunnen varieren van langlopende- tot kleinschalige trajecten. Voorheen werkte

Bekijk vacature »

Python developer Consultancy

Functie Als Python developer bij deze organisatie werk je voor verschillende klanten. Doordat de oprichter een groot netwerk heeft kun je zelf voorkeuren uitspreken in het type projecten dat je wilt gaan doen. Zo zijn er bijvoorbeeld langdurige of juist korte projecten, maar is ook het type klant, of project bespreekbaar. Werk jij bijvoorbeeld graag aan een nieuw, state-of-the-art web portaal of ben je liever betrokken bij een migratietraject van een bestaande applicatie? Wij gaan voor jou aan de slag! Eisen • Je bent een gedreven developer met sterke voorkeur voor Python • Je bent meer dan een codeklopper •

Bekijk vacature »

BizTalk/ Azure Developer

Dit ga je doen •Understanding the scope of required functionality, translate them within context of way of working of the team into developed solutions, whilst safeguarding documentation; •Planning based on assigned sprint tasks; •Acting as an expert in estimation techniques and planning; •Understanding your role in the agile process and act in this way; •Facilitating internal communication and effective collaboration; •Working closely with scrum master to handle backlogs and new requests; •Providing information to the third parties about activities and needs for compliance. Hier ga je werken Our client is a leading organization focusing on animal nutrition, offering solutions that

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

Bekijk vacature »

Python Developer

Dit ga je doen Als Python Developer ben je verantwoordelijk voor: Het ontwikkelen van Stuurprogramma's in Python zodat er verbindingen kunnen worden gelegd tussen besturingssystemen en (AV) hardware; Het testen en debuggen van Stuurprorgamma's; Het communiceren met noodzakelijke partijen in gevallen waar extra technische details nodig zijn om een Stuurprogramma te ontwikkelen of problemen op te lossen; Het maken van de nodige technische documentatie (in het Engels); Het participeren in een Scrum/Agile omgeving. Hier ga je werken Deze internationale organisatie is wereldwijd een succesvol producent en leverancier van professionele AV hard- en software. Klanten gebruiken de producten o.a. voor het

Bekijk vacature »

3D BIM Add-on Developer

Als 3D BIM add- on ontwikkelaar bij KUBUS ontwikkel je add-ons (BCF Managers genaamd) voor de toonaangevende building information modeling (BIM) programma's Revit, Navisworks, Archicad, AutoCAD en Tekla Structures. BCF Managers maken gegevensoverdracht mogelijk tussen BIM-software en BIMcollab. Je werkt zowel aan de front- als aan de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij een team met 12 programmeurs. Jullie zijn verantwoordelijk voor het huidige platform van deze organisatie. Als team werken jullie in tweewekelijkse sprints en starten jullie iedere dag met een stand-up. Jij werkt samen met jouw team aan het uitbreiden van het huidige platform door middel van nieuwe features. Daarnaast zorg jij er samen met jouw team voor dat het platform veilig is en gebruiken jullie de nieuwste technieken om deze veiligheid te waarborgen. Zo maken jullie gebruik van C# .NET, .NET Core, React, Azure, Kubernetes, ASP.NET, MVC. Jij gaat aan het werk in

Bekijk vacature »

Software Developer / .NET / Azure

Dit ga je doen Als Lead .NET Software Developer zal je je bezig houden met: Het vertalen van bedrijfswensen naar een technische roadmap; Uitwerken van nieuwe architectuur / designs; Het team aansturen en motiveren; Toezien op de kwaliteit van de code; Mee ontwikkelen van nieuwe features en applicaties. Hier ga je werken Deze organisatie is op dit momenteel marktleider in het ontwikkelen van productielijnen voor de voedselindustrie en heeft een wereldwijd klantnetwerk. Binnen deze organisatie is het team van software developers dagelijks bezig met het ontwikkelen van maatwerk oplossingen om alle productiemachines aan te sturen, maar ook bedrijf kritische applicaties

Bekijk vacature »

Software Developer PHP

Functie omschrijving We are looking for a dutch native speaker Voor een opdrachtgever in de regio van Geldrop ben ik op zoek naar een Software Developer PHP. Jij krijgt een rol met veel verantwoordelijkheid in een groeiende organisatie. In deze functie werkt je voornamelijk remote en op een vast moment kom je met het team samen, om samen te werken en nieuwe doelen te bepalen. Wat ga je doen? Je wordt verantwoordelijk voor de interne applicatie; Je zorgt voor de doorontwikkeling van de applicatie: zowel back-end, front-end; De basis van het werk betreft front-end technieken; Periodiek bepaal je samen met

Bekijk vacature »

Software Programmeur PHP

Functie Ben jij op zoek naar een nieuwe uitdaging als PHP developer en zoek je een leuke platte organisatie? Lees dan snel verder! Voor een opdrachtgever in omgeving Capelle aan den IJssel dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen PHP, JAVA en Node.js. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn

Bekijk vacature »

Fullstack developer - medior

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie willen werken? Voor een mooi softwarebedrijf in omgeving Ridderkerk zijn wij op zoek naar versterking voor op de afdeling Software Development! Als Fullstack developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Werkzaamheden Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met

Bekijk vacature »
Arno van Zanten

Arno van Zanten

19/04/2023 17:21:17
Anchor link
Ik weet, maar hier ben ik weer ;)
Ik neem alle adviezen zeker ten harte en ik leer er ook van en pas ze zeker toe (of later)
Maar ik ben even bezig geweest met het kijken of dit misschien goed is of beter kan.
wat het script doet, is kijken of de user een bepaalde service aan heeft of niet.
Ik heb het op deze manier gedaan en het werkt, maar ik vraag me af, kon/kan het het beter?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
        /* Services & Options page */
    
        /* In this table are all the user_id`s with the corrensponding services_id */

        $sql = 'SELECT * FROM Services ORDER BY ID';
        $result = mysqli_query($connect, $sql);
        $Options = mysqli_fetch_all($result, MYSQLI_ASSOC);
        
        foreach($Options as $option) {
            $MySql = 'Select UserServices.Services_ID, Services.Services FROM UserServices INNER JOIN Services ON Services.ID WHERE Services.ID = UserServices.Services_ID AND User_ID ='.$_SESSION['ID'].';';
            $myresult = mysqli_query($connect, $MySql);
            $uoptions = mysqli_fetch_all($myresult, MYSQLI_ASSOC);
                
                echo $option['Services'];
                    
                foreach($uoptions as $services) {
                    if(!empty($services['Services_ID'] == $option['ID'])){
                        echo " this is checked";
                    }
                }

                echo "<br>";
        }

?>
 
PHP hulp

PHP hulp

22/12/2024 02:18:24
 
Ward van der Put
Moderator

Ward van der Put

19/04/2023 19:03:48
Anchor link
Het is hier geen afhaalbalie.

Ik ben geneigd je gemakzuchtige vraag op slot te zetten, maar ik gun je graag nog een laatste kans.

Leg bijvoorbeeld uit waarom je voor deze oplossing hebt gekozen. Of waarom je vermoedt dat het beter kan.

Zie je zelf waar het fout kan gaan? En waarom?
 

19/04/2023 20:52:58
Anchor link
Verbeterpunten:
- de eerste tab op elke regel voegt niets toe
- de PHP-sluit tag (?>) kan je beter vermijden
- variabelen die maar 1x gebruikt worden kunnen weg
- gemengd hoofdlettergebruik in variabele namen is verwarrend
- je code is onveilig op het gebied van SQL-injectie
- variabele definitie binnen for(each)-lus is onnodig traag
- SQL kan je beter in heredoc- of nowdow formaat in de code opnemen
- deze constructie is onduidelijk: if(!empty($services['Services_ID'] == $option['ID']))

Deze code heb ik niet kunnen testen, maar zo iets zou het kunnen zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$stmt
= $connect->prepare( <<<'EOQ'
SELECT
  UserServices.Services_ID,
  Services.Services
FROM UserServices
  INNER JOIN Services
    ON Services.ID = UserServices.Services_ID
WHERE UserServices.User_ID = ?
EOQ );
$stmt->bind_param('s', $_SESSION['ID']);
$stmt->execute();
$res = $stmt->get_result();          

header('Content-type: text/plain');  // geen HTML nodig
$res = $connect->query($connect, 'SELECT * FROM Services ORDER BY ID');
foreach (mysqli_fetch_all($res, MYSQLI_ASSOC) as $option) {
  echo $option['Services'];  
  foreach($res->fetch_array() as $services) {
    if(!empty($services['Services_ID'] == $option['ID'])){
      echo " this is checked";
    }
  }

  echo PHP_EOL;
}


$stmt->free();
?>
(minus de PHP-sluit tag van PHPHulp)

Vervolgens vergelijk je in PHP de uitkomsten van 2 SQL queries, terwijl de database daar veel beter in is. Dat kan ook in 1 query en scheelt de helft van de PHP-code.
Gewijzigd op 19/04/2023 21:24:56 door
 
Ivo P

Ivo P

19/04/2023 21:12:55
Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
SELECT * FROM Services ORDER BY ID

Select UserServices.Services_ID, Services.Services
FROM UserServices
INNER JOIN Services ON Services.ID
WHERE Services.ID = UserServices.Services_ID AND User_ID ='.$_SESSION['ID'].

die 2e query is raar.

Dat zou ik schrijven als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
Select UserServices.Services_ID, Services.Services
FROM UserServices
INNER JOIN Services ON Services.ID = UserServices.Services_ID
WHERE User_ID ='.$_SESSION['ID'].


Maar is er een verband tussen die 2 query's?

Je voert eerst de eerste uit. Zeg dat daar 20 resultaten uitkomen.
Dan ga je in een loop 20x de 2e query uitvoeren?
En vervolgens test je de resultaten van de 2e query om alles te negeren dat niet de ID van de eerste query heeft.


Dat doe je dus liever in 1 query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
Select Services.*,  UserServices.Services_ID
FROM Services
LEFT JOIN UserServices ON UserServices.Services_ID = Services.ID
INNER JOIN Services ON Services.ID
WHERE Services.ID = UserServices.Services_ID AND User_ID ='.$_SESSION['ID'].
ORDER BY Services.ID
 

19/04/2023 21:20:56
Anchor link
@Ivo, we zijn het eens, alleen:
- is het onnodig om 2x met dezelfde tabel te joinen
- is de join conditie van de inner join onvolledig, die staat in de where als eerste
- moet er nog wel iets gedaan worden tegen SQL-injectie
- de logica in PHP voor weergave kan ook meteen in de SQL query

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
SELECT
  CONCAT(Services.Services,
    CASE WHEN UserServices.User_ID IS NOT NULL
      THEN ' this is checked'
      ELSE ''
    END
  ) AS optie
FROM UserServices
  LEFT JOIN Services
    ON Services.ID = UserServices.Services_ID
    AND UserServices.User_ID = ?
ORDER BY Services.ID
Gewijzigd op 19/04/2023 21:22:49 door
 
Ozzie PHP

Ozzie PHP

19/04/2023 23:26:19
Anchor link
@Ad en @Ivo

Opmerking Ward gelezen?

Ward van der Put op 19/04/2023 19:03:48:
Het is hier geen afhaalbalie.

Ik ben geneigd je gemakzuchtige vraag op slot te zetten, maar ik gun je graag nog een laatste kans.

Leg bijvoorbeeld uit waarom je voor deze oplossing hebt gekozen. Of waarom je vermoedt dat het beter kan.

Zie je zelf waar het fout kan gaan? En waarom?

Ik snap dat jullie het goed bedoelen, maar laten we eerst even het antwoord van de TS (Arno) op de vragen van Ward afwachten.
 
- Ariën  -
Beheerder

- Ariën -

19/04/2023 23:32:16
Anchor link
Zo blijkt maar weer. Je kan 1.001 verbeteringen aangediend krijgen. Je zou dit zelfs in een MVC model kunnen gieten, in losse functies, of in een Symfony framework. Hoever zou je willen gaan? Dus kom gewoon met een goede argumentatie en beredeneringen in plaats van dat je hier een lap code neersmijt.

Maar als je gewoon een goede tutorial volgt, dan weet je dat:

- escaping van je query belangrijk is
- het filteren van schadelijke tekens met htmlspecialchars() in je uitvoer belangrijk is.
- dat je beter met mysqli_fetch_assoc een result kan halen uit je database, en als je expliciet meerdere records hebt gebruik je while. De combinatie van mysqli_fetch_all en foreach() heb ik nooit eerder gezien.
- foutafhandeling zeer handig is.
- En verder zijn er nog meer tips gegeven. Doe er wat mee!!!!!!

Dus ik hoop dat de volgende topics van beter niveau zijn dan dit topic is. Ik laat deze open, maar ook ik zou bijna de neiging gekregen hebben om dit topic te sluiten.
Gewijzigd op 19/04/2023 23:33:09 door - Ariën -
 
Arno van Zanten

Arno van Zanten

20/04/2023 00:26:08
Anchor link
Ward van der Put op 19/04/2023 19:03:48:
Het is hier geen afhaalbalie.

Ik ben geneigd je gemakzuchtige vraag op slot te zetten, maar ik gun je graag nog een laatste kans.

Leg bijvoorbeeld uit waarom je voor deze oplossing hebt gekozen. Of waarom je vermoedt dat het beter kan.

Zie je zelf waar het fout kan gaan? En waarom?


De code moet als volgt te werk gaan.
Kijk welke services is aangevinkt bij de des betreffende User, zet daar checked bij, is dit niet het geval, zet er dan niks achter.

In principe werkt het, echter bij een andere gebruiker is maar 1 services aangevinkt, maar zet bij 2 services een checked achter.
Dus dat ben ik aan het uitzoeken hoe dat kan, maar kan ook zijn dat hij de ID`s met User_ID en Services_ID verdraaid of vergelijkt.
Bij de andere gebruiker werkt het wel en staat alles gewoon goed.Vreemd genoeg snap ik even niet hoe dat weer kan.

En alles moet in een form terecht komen met checkboxen.

Klein voorbeeld hoe ik het nu heb.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
        /* Services & Options page */
    if($_GET['menu'] == 'services' && $_GET['action'] == 'postservices') {
        if(isset($_POST['submit'])) {
            
            $test = $_POST['services'];
                foreach($test as $mytest) {
                    $mysql = 'SELECT * FROM Services WHERE Services ="'.$mytest.'" ';
                    $result = mysqli_query($connect, $mysql);
                    while($cool = mysqli_fetch_object($result)) {
        
                        echo $cool->ID." - ".$mytest."<br />";
                    }
                }
        }
    }
else {
    
        /* In this table are all the user_id`s with the corrensponding services_id */
        $sql = 'SELECT * FROM Services ORDER BY ID';
        $result = mysqli_query($connect, $sql);
        $Options = mysqli_fetch_all($result, MYSQLI_ASSOC);
        
        $checkbox = ">";
        echo "<form action='index.php?menu=services&action=postservices' method='POST'>
                <div class='services-grid'>"
;
        foreach($Options as $option) {
        
            $MySql = 'Select UserServices.Services_ID, Services.Services FROM UserServices INNER JOIN Services ON Services.ID WHERE Services.ID = UserServices.Services_ID AND User_ID ='.$_SESSION['ID'].';';
            $myresult = mysqli_query($connect, $MySql);
            $uoptions = mysqli_fetch_all($myresult, MYSQLI_ASSOC);
                
                echo "<div class='services-item'><input type='checkbox' name='services[]' value='".$option['Services']."'".$checkbox, $option['Services']."</div>";
                    
                foreach($uoptions as $services) {
                    if(empty($services['Services_ID'] == $option['ID'])){
                        $checkbox = " checked>";
                    }
else {
                        $checkbox = ">";
                    }
                }
        }

        echo"    </div>
                <div class='button'><input type='submit' name='submit' value='Preview'></div>
            </form>"
;
    }

?>

Deels werkt het, maar bij de andere gebruiker waar maar 1 optie aangevinkt staat, zet hij bij 2 en 4 een checked achter, terwijl het alleen bij 2 moet zijn.
De andere gebruiker heeft 2 en 3 en daar staat wel alles goed met checked.
Dus er is iets in de code wat ik fout heb staan, maar ik zie het niet.
Gewijzigd op 20/04/2023 00:29:33 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

20/04/2023 00:31:35
Anchor link
Er is al vaker de tip gegeven om te debuggen met wat echo's rond te strooien, en de informatie uit variabelen uit te lezen.
Probeer die stap in het vervolg eens te volgen. Zo weet je wat er gebeurt en komt dit niet over als een afhaalbalie opdracht. Ik hoor je nu alleen over aannames, en daar heb je niks aan.

We willen je hier echt niet weg hebben, maar ik denk dat je zo wel een gros van je topics kan besparen. Het begint namelijk wel op te vallen als je per week een grote hoeveelheid topics opent, en vaak opeens na korte tijd al het probleem opeens opgelost hebt.

Zie het forum niet als eerste redmiddel. Ga eerst debuggen, en in je hoofd of op papier redeneren wat er aan de hand is. Check ook php.net, benut var_dump, print_r en de echo's, en kijk wat er gebeurt. Vaak zul je zien dat een topic dan overbodig is.
Gewijzigd op 20/04/2023 00:37:59 door - Ariën -
 
Arno van Zanten

Arno van Zanten

20/04/2023 05:16:51
Anchor link
Nu weet ik het zeker, hij pakt ook de $_SESSION['ID'] en vergelijkt die met de Services_ID.
Dat moet dus niet, ik heb alles met een echo nagekeken en daar zag ik dat de Services_ID gelijk is aan de $_SESSION['ID']. Hoe kan ik zorgen dat hij die niet vergelijkt?
Post even de code mee, die ik deels aangepast heb.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
        echo "<form action='index.php?menu=services&action=postservices' method='POST'>
                <div class='services-grid'>"
;
        
        $MySql = 'SELECT * FROM UserServices WHERE User_ID = '.$_SESSION['ID'].'';
        $Myresult = mysqli_query($connect, $MySql);
        $uoptions = mysqli_fetch_all($Myresult, MYSQLI_ASSOC);
                $checkbox = ">";
                
               foreach($uoptions as $services) {

                    $IDA = $services['ID'];
                    $USID = $services['User_ID'];
                    $SEID = $services['Services_ID'];
                    
                    $sql = 'SELECT * FROM Services';
                    $result = mysqli_query($connect, $sql);
                    $Options = mysqli_fetch_all($result, MYSQLI_ASSOC);
                    
                        foreach($Options as $option) {
                            
                            $ID = $option['ID'];
                            $Serv = $option['Services'];
                            $SID = $option['Serv_ID'];
                            
                            echo "<div class='services-item'><input type='checkbox' name='services[]' value='".$option['Services']."'".$checkbox, $option['Services']."</div>";
                                if($SID != $SEID) {
                                    $checkbox = " checked>";
                                }
else {
                                    $checkbox = ">";
                                }
                        }
                }


        echo"    </div>
                <div class='button'><input type='submit' name='submit' value='Preview'></div>
            </form>"
;

?>
 
- Ariën  -
Beheerder

- Ariën -

20/04/2023 08:42:21
Anchor link
Waarom krijg ik een gevoel dat ik en de anderen genegeerd worden, Arno? Je lijkt enkel als een stier op een rode lap gefocusd op je code, maar empathie mist gewoon.

Eerlijk gezegd wordt dit gewoon vermoeiend. Zwaar vermoeiend!
Gewijzigd op 20/04/2023 09:17:38 door - Ariën -
 
Ivo P

Ivo P

20/04/2023 09:17:21
Anchor link
probveer eerst eens je query goed te krijgen.

Gewoon los van je php-script.
Die query kun je gewoon in een database-tool draaien. Bijvoorbeeld PhpMyadmin.

Ik was hierboven te slordig met de copy/paste, maar bottom line is dat deze info met 1 query opgehaald kan worden.
Zorg dat je dat eerst werkend hebt.

Je draait nu 2 query's, deels over dezelfde tabel, waarbij de 2e query vaak herhaald wordt. Naast dat dat extra werk voor php is, is dat ook onoverzichtelijk. (en zoals ook in een eerder topic al aangehaald en hierboven ook opgemerkt: je ON clause bevat normaal een vergelijking tussen 2 velden uit 2 tabellen. Niet 1 veld.

--
en voor je opmerking "het werkt voor 1 testcase, maar niet voor een andere"

los op: 2x2 = 4.
Mijn script klopt, want $antwoord = 2 + 2; geeft 4.
En het klopt ook voor 0.

Maar waarom werkt het niet voor 1 en 3??

Probeer niet blind te staren op dat het soms werkt. Dat kan een uitzondering zijn.
 
Arno van Zanten

Arno van Zanten

20/04/2023 17:08:06
Anchor link
Okay,

Heb er een hele nacht over geslapen en goed nagedacht, dit werkt deels.
Nu wil ik alles van de database in een array wegzetten en deze vergelijken met wat de user geselecteerd heeft.
Deels werkt, maar ik zit met een klein probleem.

output :
Yes => 2

Warning: Undefined array key "Schep" in /data/sites/web/[cut]/www/Users/inc/services.php on line 24

Yes => 3

Warning: Undefined array key "Paraplu" in /data/sites/web/[cut]/www/Users/inc/services.php on line 24
de code :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
    $Serving
= array("1"=>"Emmer", "2"=>"Schep", "3"=>"Paraplu", "4"=>"Bril");
        
    $Selection1 = $Serving['1'];
    $Selection2 = $Serving['2'];
    $Selection3 = $Serving['3'];
    $Selection4 = $Serving['4'];
/*    
    echo $Selection1." => ".$Selection2." => ".$Selection3." => ".$Selection4;
*/    
    // Database where users has their selected services //

        $MySql = 'SELECT * FROM UserServices WHERE User_ID = '.$_SESSION['ID'].'';
        $Myresult = mysqli_query($connect, $MySql);
        $uoptions = mysqli_fetch_all($Myresult, MYSQLI_ASSOC);
            
            foreach($uoptions as $data => $value) {
                $val = $value['Services_ID'];
                $Uselct = array($data);
                
                if($Uselct = $Serving) {
                    echo "Yes => ".$val."<br />";
                }

                if($val = $Serving[$val]) {
                    $gotcha = $Serving[$val]; // <= hier zit het probleem in, hoe los ik dat op?
                    echo $gotcha."<br />";
                }

/*                echo"<pre>";
                print_r($Uselct);
                echo"</pre>";
*/

            }
?>
Gewijzigd op 20/04/2023 17:11:07 door Arno van Zanten
 
- Ariën  -
Beheerder

- Ariën -

20/04/2023 17:21:27
Anchor link
Leer het verschil tussen =, == en ===.

Verder word ik moe van de afhaalbalie-vragen die je zo kan googlen. Lees de tips eens!

Dit topic gaat dicht.
 
 

Dit topic is gesloten.



Overzicht

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.