Kan dit misschien beter???

Overzicht

Sponsored by: Vacatures door Monsterboard

Software Ontwikkelaar PHP

Functie omschrijving Full Stack Software Ontwikkelaar gezocht! Voor een bedrijf in de regio van Ermelo zijn wij op zoek naar een Software Ontwikkelaar die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van SaaS applicatie van dit bedrijf. Hierbij ga jij voor- en samenwerken met de klanten van de organisatie, het is hierbij dus van groot belang dat je communicatief vaardig bent en dat je beschikt over beheersing van zowel de Nederlandse als Engelse taal. Bedrijfsprofiel Waar ga je werken? Altijd al in een echt familiebedrijf willen werken? Dan is dit je kans! Het bedrijf waar je komt te

Bekijk vacature »

Back-end Developer Java

Dit ga je doen Het (door)ontwikkelen van een zelfgebouwde applicatie in Java, Spring Framework, SQL, HTML, CSS en Javascript; End-to-end beheer m.b.t. de applicatie en koppelen van applicaties binnen het landschap; Ontwikkelen van rapportages voor de interne organisatie; Ontwikkelen van aanvullende functionaliteiten m.b.t. de applicatie; Uitvoeren van testen en code reviews. Hier ga je werken Binnen deze organisatie kom je te werken op de afdeling die medische gegevens verzamelt vanuit het hele land. Denk hierbij aan vertrouwelijke persoonsgegevens. Het team verwerkt al deze data met als doel het waarborgen en verbeteren van de kwaliteit van de zorg in heel Nederland.

Bekijk vacature »

Full stack developer

Functie Binnen een ontzettend stimulerende werkomgeving kom jij te werken in een software team van 14 developers. Met ontzettend stimulerend bedoel ik een modern pand, wat voorzien is van alle nodige soft- en hardware, zodat jij jouw werk goed kan uitvoeren. Daarnaast zitten ze in een bos, waardoor je in een groene omgeving rustig kunt werken. Het team bestaat uit front end, back end en full stack developers. Jij krijgt dus de keuze hier waar jij jezelf het liefst op zou richten, maar de voorkeur gaat uit naar back end. Er wordt hier Scrum (agile) gewerkt in multidisciplinaire teams met

Bekijk vacature »

Software developer

Functieomschrijving Voor een gewaardeerde werkgever in de regio van Middelburg zijn wij op zoek naar een ambitieuze PHP/Symfony Developer. Een enthousiast persoon die het development team komt versterken met het aanpakken van complexe en nieuwe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor zowel persoonlijke als professionele groei? Lees dan snel verder! Dit ga je doen: Aanpassingssuggesties van collega’s in kaart brengen, vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Ontwikkeling en beheer van de serviceportal in Symfony en

Bekijk vacature »

Senior Developer Betty Blocks Blauwe Haven Rotterd

Functieomschrijving Voor de Politie zijn wij opzoek naar een Senior Developer Betty Blocks Blauwe Haven Rotterdam. De politieorganisatie heeft jaarlijks te maken met een aanzienlijk aantal politiemedewerkers die vanwege mentale overbelasting niet of beperkt inzetbaar zijn. De Blauwe Haven Rotterdam ondersteunt deze politiemedewerkers in hun herstel en re-integratieproces. De huidige digitale systemen van de Politie bieden onvoldoende ondersteuning in het herstel- en re-integratieproces van politiemedewerkers. Zowel voor de politiemedewerkers als voor de organisatie. Politiemedewerkers worden buitengesloten, waardoor zij eigen regie verliezen. Begeleiders kunnen de voortgang van de medewerkers niet goed monitoren. Management beschikt niet over de mogelijkheid trends te signaleren

Bekijk vacature »

SAP HANA Cloud Application Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 12662 Introductie HANA Cloud Application Developer at a High Tech company. The company is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. This role is situated in the Big Data Analytics (BDA) Domain. The teams have mixture of young talent and senior specialists and have a

Bekijk vacature »

Belastingdienst - Freelance Senior Cobol Applicati

Startdatum: 01.06.2023 Richttarief: €65,00 - €75,00 Duur van de opdracht: 7 maanden Uren per week: 36 Taal: Nederlands vereist! Gelieve in het Nederlands te solliciteren. Functieomschrijving: In de applicatie ETM zijn nu de inningsvoorzieningen voor ongeveer 25 aangifte- en aanslagmiddelen opgenomen. ETM is een extern aangeschafte service en het huidige contract met leverancier Oracle loopt af op 31-12-2022. Het programma uitfaseren ETM heeft als doel om vervanging te realiseren waarmee alle nu in gebruik zijnde ETM ondersteuning wordt overgenomen in nieuwe Inningsvoorzieningen om de continuïteit van de inningsprocessen te waarborgen. Eén van de inningsvoorzieningen die voor het einde van 31-12-2022

Bekijk vacature »

.NET Developer Medior Senior

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Herbruikbare componenten maken; Testen; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als .NET Developer kom jij terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als .NET Developer werk jij aan het ontwikkelen van verbeterde software voor

Bekijk vacature »

Senior java ontwikkelaar integratie

Functieomschrijving Voor de gemeente Rotterdam zijn wij op zoek naar een senior java ontwikkelaar integratie. Taken Binnen een zelfsturend Scrumteam voer je geheel zelfstanding je opdrachten uit en levert het eindresultaat op aan het Integratieteam. Jij voelt je net als alle teamleden verantwoordelijk voor alle aspecten, vanaf de vraag tot en met de oplevering in productie. Je bent kritisch, je helpt de klant om zijn wensen helder te krijgen, je schrijft zelfstandig clean code die van hoge kwaliteit is, met bijbehorende unit- en integratietesten, je ondersteunt zo nodig bij deployments naar productie. Het Integratieteam bouwt componenten (Endpoints) op de ESB.

Bekijk vacature »

Full stack developer Node.js, React Remote

Functie Als fullstack JavaScript developer vind jij het uitdagend om op basis van concrete klantvragen nieuwe functionaliteiten te ontwikkelen. Bij voorkeur worden deze functionaliteiten op een bepaalde manier geprogrammeerd, zodat ze door meerdere klanten te gebruiken zijn. Je hebt dus vaak te maken met abstracte vraagstukken. Om dit te kunnen realiseren sta je nauw in contact met de product owner en/of klant. Je bent niet alleen onderdeel van het development team, maar hebt ook vaak contact met de product-owner en/of klanten om daardoor inzichten te verzamelen die leiden tot productverbeteringen. • Inzichten verzamelen bij de klant en/of product owner •

Bekijk vacature »

Software developer - C Sharp

Functie omschrijving Voor een opdrachtgever, met een prachtig kantoor in omgeving Wateringen zijn wij op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind jij het leuk om in een Agile/Scrum omgeving te werken? Wil jij

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Software Ontwikkelaar PHP gezocht! Wij zijn op zoek naar een ervaren PHP Software Ontwikkelaar om het team van onze opdrachtgever te versterken! De ideale kandidaat zal fungeren als verlengstuk van klanten en complexe technische vraagstukken met enthousiasme benaderen. Naast het werken met de nieuwste technologieën, ben je in staat om aan meerdere projecten tegelijkertijd te werken. Als je deze uitdaging aangaat, werk je nauw samen met front-end developers en draag je bij aan het realiseren van grote veranderingen bij klanten. Het bedrijf zoekt iemand die zichzelf graag uitdaagt en altijd streeft naar het leveren van de beste resultaten.

Bekijk vacature »

Ervaren Software Developer

Functie omschrijving Ben jij een ervaren Software Developer, en heb je ervaring met technieken zoals C#, MS Access & SQL? Vind jij het leuk om maatwerk software te ontwikkelen voor klanten in een specifieke branche? Dan is dit de baan voor jou! Als ontwikkelaar ben jij samen met een team van 12 collega’s verantwoordelijk voor het bouwen van nieuwe functionaliteiten en het uitbreiden van de core applicatie. Belangrijk is dat je ervaring hebt met C# en MS Access. Je bent flexibel en klantvriendelijk ingesteld, omdat het belangrijk is om de klanten zo goed mogelijk van dienst te kunnen zijn. Thuiswerken

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

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 »
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

18/06/2025 04:52:19
 
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.