while loop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Software Developer je verantwoordelijk voor: - Je werkt voortdurend aan oplossingen voor het op afstand bewaken en besturen van oogstmachines; - Het visualiseren van gegevens in rapporten, apps of andere formaten; - Voorspellend machineonderhoud; - Taakplanning; - Je schrijft aangepaste plug-ins om gegevens te importeren of exporteren

Bekijk vacature »

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een ambitieuze werkgever in regio Tilburg waar jij volledig de mogelijkheid krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je gaat projecten gedurende het hele proces begeleiden. Je sluit aan bij afspraken met klanten om hun processen helder te krijgen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt aan nieuwe softwareoplossingen die de logistieke processen verbeteren of vernieuwen; Je houdt je bezig met het ontwikkelen van

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 »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

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

Low Code Developer voor o.a. overheidsprojecten!

Bedrijfsomschrijving Wil jij ook behoren tot de specialist in Low Code? Dan zou ik zeker aanraden om verder te lezen. Deze organisatie is ooit opgericht door twee studenten en is inmiddels uitgegroeid tot een serieuze werkgever met een groot aanzien op Low Code projecten. De sfeer is echter niet veranderd, er heerst een informele sfeer met een open deuren beleid, en hierin mag de eigen bar natuurlijk niet ontbreken. Momenteel maakt deze organisatie een flinke groei door en hier kan jij natuurlijk niet bij ontbreken. Daarom ben ik op zoek naar Low Code Developers met een degelijke technische achtergrond. Kennis

Bekijk vacature »

Java Developer

Java Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

.Net Front-end Ontwikkelaar

Wij zoeken een .Net Front-end Ontwikkelaar! Omschrijving Kun jij snel schakelen en ben je stressbestendig? Dan zoeken wij jou! Als .Net Front-end Ontwikkelaar help je mee aan de webapplicatie die over de hele wereld door allerlei bedrijven wordt gebruikt. Je werkt daarnaast mee aan nieuwe en verbeterde functionaliteiten en helpt met het oplossen van bugs. Over de opdrachtgever Je komt te werken in een ambitieus team dat zich blijft ontwikkelen. Dit is alle informatie die we nu kunnen delen over de werkplek. Als jij de .Net Front-end Ontwikkelaar bent voor deze job, vertellen we je snel nóg meer. Eisen Heb

Bekijk vacature »

.NET Developer te Naarden

Bedrijfsomschrijving Voor mijn klant ben ik op zoek naar een .NET Developer om het huidige team te komen versterken. Deze organisatie bevindt zich in de logistieke sector, en zij hebben een eigen ERP systeem ontwikkeld dat zij inzetten ter optimalisatie van de logistieke processen van haar eindklanten. Deze organisatie bestaat inmiddels al ruim 20 jaar, waarbij zij een duidelijke missie hebben, namelijk: het werk van de eindklant makkelijker maken door de systemen die zij leveren. Ze werken over heel de wereld, wat deze organisatie een echte internationale speler maakt. Binnen de organisatie kenmerken ze zich door een dynamische en professionele

Bekijk vacature »

C++ Ontwikkelaar

Functieomschrijving Ben jij toe aan een nieuwe uitdaging en werk je graag en goed in C++ en C#? Dan zijn we op zoek naar jou! Dit bedrijf is dé specialist op het gebied van automatiseringssoftware voor een specifieke branche en ze zijn per direct op zoek naar versterking in hun development team. Wat jij gaat doen binnen jouw rol als C++ ontwikkelaar; Je vertaalt de wensen van gebruikers naar een functioneel ontwerp. Je houdt je bezig met het ontwerpen, programmeren en testen van product aanpassingen. Je gaat nieuwe product releases implementeren in de projectteams. Je gaat de effecten van nieuwe

Bekijk vacature »

.NET Developer Shared Driving

Bedrijfsomschrijving Onze klant richt zich op het toegankelijker maken van steden, een fantastisch mooi streven. Hoe ze dat doen? Met eigen ontwikkelde software, waarmee vervoersmiddelen gedeeld kunnen worden. Deze inspirerende werkgever maakt een maatschappelijke impact en dat doen ze nu al zo'n 25 jaar! Het bedrijf is gevestigd in het centrum van Rotterdam en kent ongeveer zo'n 90 medewerkers. Het personeel is lekker gewoon gebleven! Iedereen kleedt zich zoals hij of zij dat zou willen en de sfeer is er erg fijn. Een leuke werkgever om voor te werken, en bovendien zijn er voor jou als Software Developer veel mooie

Bekijk vacature »

Medior/senior Front-end developer (Vue.js)

Functie Als Front-end developer ben je uiteindelijk overkoepelend aan de slag voor de 3 ontwikkelteams die ieder aan een specifiek product werken. In samenwerking met de UX-designer en de huidige Front-end developer zorg je voor gebruiksvriendelijke software. Lijkt het jou interessant om complexe problemen op te lossen en feautures naar een hoger niveau te tillen? En vind je het niet erg om oudere delen van de applicaties te refactoren i.c.m. het toevoegen van nieuwe functionaliteiten? Dan komen wij graag met je in contact. Eisen • HBO werk- en denkniveau (ze kijken niet naar papieren, maar naar denkniveau, motivatie en zelfredzaamheid)

Bekijk vacature »

Ervaren PHP ontwikkelaar

Functie Jij als PHP ontwikkelaar komt te werken in een team van 4 andere PHP ontwikkelaars. Je zult je voornamelijk bezig houden met: – Het ontwikkelen van nieuwe features – Doorontwikkelen van de API – Nadenken over de technische infrastructuur – Datakwaliteit Samen met het team ben jij verantwoordelijk voor de verdere ontwikkeling van de software en om de positie als marktleider in Europa te behouden. Ze werken volgens SCRUM in 2 wekelijkse sprints, werken met Jira voor alle tickets en communiceren veel via Slack. Eisen • Minimaal 3 jaar ervaring als back end developer • Je hebt affiniteit met

Bekijk vacature »

C# .NET Developer

Functieomschrijving Voor dit leuke softwarre bedrijf in de omgeving Vught zijn we per direct op zoek naar een C#/.NET Developer. Is development jouw passie en doe je dit graag met C#/.NET? Lees dan snel verder! Jou werkzaamheden zullen zijn: Zorgen voor de optimalisatie van de huidige software en het automatiseren van bedrijfsprocessen. Naar aanleiding van de wensen van de klant ga je, met je collega's op zoel naar passende oplossingen en je werkt dit uit tot een mooi eindproduct. Je gaat webshops, websites en webapplicaties ontwikkelen door middel van ASP.NET, C# en MVC Framework. Bedrijfsprofiel Deze opdrachtgever houdt zich bezig

Bekijk vacature »

Senior Front end developer Digital Agency

Functie Jij als Front end developer komt te werken in een van de 8 multidisciplinaire teams binnen de organisatie. Deze teams werken op basis van Scrum agile in 2 wekelijkse sprints. De grootte van de teams varieert van 9-14 collega’s en bestaan altijd uit één of meerdere project managers en een project manager. Samen met je team werk je aan verschillende projecten voor uiteenlopende klanten zoals grote multinationals tot het kleine mkb. De stack waarmee gewerkt wordt is voornamelijk Javascript, ES6, Es.next, HTML, CSS, React.js en Node.js. Wat deze organisatie onderscheid is dat ze echt langdurige partnerships aangaan met hun

Bekijk vacature »
Racoon smasher

racoon smasher

28/05/2015 11:55:33
Quote Anchor link
Ik ben momenteel bezig met het ophalen van afbeeldingen die bij een sieraad horen, maar ik loop ergens tegen aan. Alles wordt weergegeven behalve de afbeeldingen die in de whileloop worden geladen. Aangezien ik eerder op de pagina al $queryFetch = mysql_fetch_array($querySelect); heb neergezet weet ik zo gauw niet wat er in de while loop moet komen om die te laten werken.

Is er iemand die de oplossing weet?

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
    include "include/header.php";

    if(isset($_GET['id']))
    {

        $id = $_GET['id'];
    }

    
    $querySelect = mysql_query("SELECT     tbl_jewelry.j_id,
                                        tbl_jewelry.j_name,
                                        tbl_jewelry.j_price,
                                        tbl_jewelry.j_information,
                                        tbl_jewelryphotos.jp_id,
                                        tbl_jewelryphotos.jp_location,
                                        tbl_jewelryphotos.j_id
                                 FROM   tbl_jewelry
                                 JOIN    tbl_jewelryphotos ON tbl_jewelryphotos.j_id = tbl_jewelry.j_id
                                WHERE    tbl_jewelry.j_id = '$id'"
);
    $queryFetch = mysql_fetch_array($querySelect);
?>


<div class="Wrapper">
    <h1>Sieraad</h1>
    <div class="buttons">
        <a href="add_photos.php?id=<?php echo $queryFetch['j_id'] ?>" class="greyBtn">Foto's toevoegen</a>
    </div>

    <table>
        <tr>
            <th>Naam</th>
            <td><?php echo $queryFetch['j_name'];?></td>
        </tr>
        <tr>
            <th>Prijs</th>
            <td><?php echo $queryFetch['j_price'];?></td>
        </tr>
        <tr>
            <th>Informatie</th>
            <td><?php echo $queryFetch['j_information'];?></td>
        </tr>
    </table><br />

    <?php
        $numrows
= mysql_num_rows($queryFetch);
        echo "<table><tr><th>Foto's</th></tr>";
        if ($numrows > 0) {
            while ()
            {

                echo "<tr>";
                echo "<td><img src='".$queryFetch['jp_location']."'></td>";
                echo "<td><a href='delete_order.php?id=".$queryFetch['jp_id']."' onclick=\"return confirm('Weet je zeker dat je deze afbeelding wilt verwijderen?');\"><img src='UI/images/delete.png'></a></td>";
                echo "</tr>";
            }
        }

        else
        {
            echo "<tr><td colspan='2'>Geen data</td></tr>";
        }

        echo "</table>";
    ?>

</div>

<?php
    include "include/footer.php";
?>
 
PHP hulp

PHP hulp

05/05/2024 11:28:33
 
Johan K

Johan K

28/05/2015 12:03:43
Quote Anchor link
Wat heel handig is om te weten hier, is wat de bron vermeling zegt over wat er uit word geprint.
Als je dan de URL klikt is de link die je hem hier geeft dan wel de juiste?
 
Racoon smasher

racoon smasher

28/05/2015 12:07:39
Quote Anchor link
Wat bedoel je daarmee?
 
Thomas van den Heuvel

Thomas van den Heuvel

28/05/2015 20:19:27
Quote Anchor link
Als ik naar je query kijk dan lijkt het alsof je de data van één jewelry-item ophaalt in combinatie met mogelijk bijbehorende jewelry-foto's.

Wanneer je de eerste keer mysql_fetch_array() aanroept haal je één resultaat op. Dit zal in de meeste gevallen de jewelry-data + de data van de eerste foto zijn.

Als je vervolgens met een while-loop de rest van de records ophaalt sla je mogelijk de eerste foto over.

Je zit dus met deze ene query een beetje in een vreemde spagaat als je dit vervolgens in je layout wil verwerken. Of je moet ook je tabel met sieraad-data in de while-loop opnemen en deze alleen afdrukken als je het eerste record ophaalt maar dat lijkt mij een beetje suf. Je zou je kunnen afvragen of de performance-winst die het uitvoeren van 1 query opweegt tegen de code-structuur waarin je dit moet vatten.

Ik kan mij zo voorstellen dat alle sieraden foto's hebben, maar is dit ook gegarandeerd? Een veiliger strategie zou misschien een LEFT JOIN zijn, of je zou kunnen overwegen om het ophalen van de sieraad-data en de bijbehorende foto's te splitsen (jaja, dit is een extra query... separation of concerns okay).

Als je de foto's apart ophaalt dan haal je elke stap van je while-loop een query-resultaat op waarbij je tegelijkertijd controleert of je ook nog op-te-halen-query-resultaten hebt op de gebruikelijke manier.

Query voor tonen van sieraad info:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT ... FROM tbl_jewelry WHERE j_id = <id>
Dit levert 0 of 1 resultaat op.

Query voor tonen van bijbehorende foto's:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT ... FROM tbl_jewelryphotos WHERE j_id = <id>
Dit levert 0 of meer resultaten op waar je doorheen zult moeten lo(o)pen.
 
Racoon smasher

racoon smasher

28/05/2015 20:25:58
Quote Anchor link
Deze hulp komt van pas. Ik heb het nu inderdaad opgelost met 2 query's, maar dit vind ik zelf niet zo netjes. Als ik met die left join werk, moet ik dan nog rekening houden met andere dingen?

EDIT: geprobeerd, maar hij geeft dan geen data weer
Gewijzigd op 28/05/2015 20:29:53 door racoon smasher
 
Thomas van den Heuvel

Thomas van den Heuvel

28/05/2015 22:09:03
Quote Anchor link
Sommige mensen vinden meerdere queries een doodzonde als je alles in één query kan frotten... de leesbaarheid van het geheel even buiten beschouwing latend. Ik ga als het even kan altijd voor eenvoud en leesbaarheid, tenzij de performance in het gedrang komt omdat queries zwaar zijn. Dit soort queries zijn niet wereldschokkend maar elke query is er een, dat is waar.

Algemene vorm JOIN query:
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
<?php
$res
= mysql_query('... je join query ...');
$first = true; // geeft aan of we met de eerste resultaatrij bezig zijn

// haal de resultaten op

while ($row = mysql_fetch_assoc($res)) {
    if ($first) {
        // dit is de eerste rij, druk hier sieraad details af (zitten in $row)
        // ...

        // start hier(na) eventueel ook een tabel of container voor je foto's
        // ...


        $first = false; // voor volgende resultaatrijen wordt dit blok overgeslagen
    }
    // druk hier je foto-data af (zitten ook in $row)
    // ...

} // while

// geef resultaat vrij

mysql_free_result($res);
?>

Voor een aparte query voor enkel foto's maak je een while-loop zoals hierboven minus het $first-if-blok.

Advies: ga MySQLi of PDO gebruiken in plaats van mysql_-functies als je nieuwe code schrijft.
 
Racoon smasher

racoon smasher

28/05/2015 22:16:46
Quote Anchor link
Als goed is snap ik je uitleg en zal het vanavond of morgen nog toepassen en kijken of het lukt.

Verder weet ik dat het belangrijk is te verdiepen in vernieuwde technologie, maar aangezien ik wil overstappen naar het maken van websites met ASPX.NET en C#.NET heb ik hier niet echt behoefte aan.

Heel erg bedankt en ik laat hier nog van me horen of het gelukt is of niet.

Toevoeging op 29/05/2015 14:58:03:

Aangezien alles in 1 query zit zal ik altijd een melding krijgen dat ik 1 row heb en dus kan ik niet aangeven bij de afbeeldingen dat er geen data is met behulp van $numrows > 0

Moet ik dan toch 1 query erbij doen of is hier een andere oplossing voor?
 
Thomas van den Heuvel

Thomas van den Heuvel

29/05/2015 15:11:38
Quote Anchor link
Racoon smasher op 28/05/2015 22:16:46:
Aangezien alles in 1 query zit zal ik altijd een melding krijgen dat ik 1 row heb en dus kan ik niet aangeven bij de afbeeldingen dat er geen data is met behulp van $numrows > 0

Moet ik dan toch 1 query erbij doen of is hier een andere oplossing voor?

Hm? Die JOIN kan er toch voor zorgen dat je meerdere resultaatrijen hebt? Maar -zoals eerder aangegeven- als het niet gegarandeerd is dat elk sieraad een of meer foto's heeft is het misschien verstandiger om er een aparte query van te maken (of een LEFT JOIN te gebruiken). Maar je noemt dus nu alweer een reden waarom het dus handiger zou zijn om het sieraad en (eventueel) bijbehorende foto's apart te behandelen.
 
Racoon smasher

racoon smasher

29/05/2015 15:13:19
Quote Anchor link
Nouja ik heb het nu zo opgelost

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
47
<?php
    if(isset($_GET['id']))
    {

        $id = $_GET['id'];
    }

    $res = mysql_query("SELECT     tbl_jewelry.j_id,
                                tbl_jewelry.j_name,
                                tbl_jewelry.j_price,
                                tbl_jewelry.j_information,
                                tbl_jewelry.so_id,
                                tbl_jewelryphotos.jp_id,
                                tbl_jewelryphotos.jp_location,
                                tbl_sort.so_id,
                                tbl_sort.so_name
                         FROM   tbl_jewelry
                         JOIN   tbl_sort ON tbl_sort.so_id = tbl_jewelry.so_id
                    LEFT JOIN   tbl_jewelryphotos ON tbl_jewelryphotos.j_id = tbl_jewelry.j_id
                        WHERE    tbl_jewelry.j_id = '$id'"
);
    $cw = mysql_query("SELECT tbl_jewelryphotos.jp_id FROM tbl_jewelryphotos WHERE tbl_jewelryphotos.j_id = '$id'");
    $ns = mysql_num_rows($cw);
    $first = true;
    
    while ($queryFetch = mysql_fetch_assoc($res)) {
        if ($first) {
            echo "<table>";
            echo "<tr><th>Naam</th><td>" .$queryFetch['j_name'] . "</td></tr>";
            echo "<tr><th>Naam</th><td>" .$queryFetch['j_price'] . "</td></tr>";
            echo "<tr><th>Naam</th><td>" .$queryFetch['j_information'] . "</td></tr>";
            echo "<tr><th>Naam</th><td>" .$queryFetch['so_name'] . "</td></tr>";
            echo "</table><br />";
            echo "<table><tr><th>Foto's</th><th>Verwijderen</th></tr>";
            $numrows = mysql_num_rows($res);
            $first = false;
        }

        if ($ns > 0) {
            echo "<tr>";
            echo "<td><img src='".$queryFetch['jp_location']."'></td>";
            echo "<td><a href='delete_photo.php?jpid=".$queryFetch['jp_id']."&id=".$queryFetch['j_id']."' onclick=\"return confirm('Weet je zeker dat je deze afbeelding wilt verwijderen?');\"><img src='UI/images/delete.png'></a></td>";
            echo "</tr>";
        }
else {
            echo "<tr><td colspan='2'>Geen data</td></tr>";
        }
    }

    echo "</table>";
    
    mysql_free_result($res);
?>
 
Thomas van den Heuvel

Thomas van den Heuvel

29/05/2015 15:21:32
Quote Anchor link
Uhm, dat is een beetje een vreemde constructie, je eerste query geeft ook eigenlijk te vaak teveel informatie terug? Als je dit nu eens herstructureert?
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
$res = <je query voor het opvragen van sieraad info>; // levert 1 resultaat
if (mysql_num_rows($res) == 1) {
    $row = mysql_fetch_assoc($res);
    // druk hier sieraad info af mbv $row

    // haal fotos op
    $res2 = <je query voor het opvragen van foto-data bij sieraad $id>; // levert 0 of meer resultaten
    if (mysql_num_rows($res2) > 0) {
        while ($row2 = mysql_fetch_assoc($res2)) {
            // druk foto data af mbv $row2
        }
    } else {
        // geen foto's beschikbaar mededeling
    }
    mysql_free_result($res2);
}
mysql_free_result($res);

Maar dan met mysqli dus :p.
 
Racoon smasher

racoon smasher

29/05/2015 15:35:21
Quote Anchor link
Klopt daar heb je een heel goed punt. De manier die je nu aangeeft was ook de manier hiervoor. Deze ga ik dus weer toepassen.

Heel erg bedankt!
 



Overzicht Reageren

 
 

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.