while loop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Traineeship Java Developer

Functie Wat ga je doen als Java Developer? Jij start via ons bij deze opdrachtgever als Trainee Java ontwikkelaar, tijdens het traineeship ga je in 1 jaar van de basis naar professioneel Java ontwikkelaar. Je start samen met een groep trainees, volgt de aangeboden cursussen en gaat aan de slag bij één van onze opdrachtgevers. Na een aantal maanden volgt de volgende opdracht. Door de groei in jouw rol kom je op steeds complexere opdrachten terecht. Veel afwisseling dus. Collega’s met ervaring helpen je bij deze groei en samen met jouw coach ga je een persoonlijke leerplan opzetten om jou

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 gewaardeerde werkgever in regio Tilburg waar jij de tijd en ruimte krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je houdt je bezig met het creëren en bouwen van MS SQL server databases; Je gaat projecten vanaf het begin tot het eind begeleiden. Je sluit aan bij meetings met klanten om hun processen in kaart te brengen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt

Bekijk vacature »

Fullstack developer (NodeJS, React, AWS)

Functie Als Fullstack developer kom je te werken in het ontwikkelteam, maar zoals gezegd komt er veel meer bij kijken dan alleen maar ontwikkelen. Je bent samen met je collega’s continu bezig om de software uit te breiden maar hiernaast doe je doorlopend onderzoek naar de inzet van bijvoorbeeld Machine Learning. Ze willen met hun software echt voorlopen op andere en toegevoegde waarde leveren voor de eindgebruiker. Mede hierom zijn ze erg benieuwd naar iemand zijn persoonlijkheid, of hij graag nieuwe dingen uitzoekt (Google!), en initiatief neemt. Maar waar staan ze nu? Na een onderzoeksfase van ruim een jaar zijn

Bekijk vacature »

Leidinggevend Full Stack Developer

Hé jij, nieuwe Pinkcuber! Ga aan de slag bij Pinkcube, online leverancier van promotieartikelen! Een innovatieve organisatie waar extra stappen zetten voor klanten de normaalste zaak van de wereld is. Ambitieus zijn we ook. ‘Naoberschap’ staat bij Pinkcube hoog in het vaandel; we helpen elkaar en iedereen is welkom. Pinkcube is Great Place to Work Certified, erkend leerbedrijf, maatschappelijk betrokken partner van stichting Present en partner van CliniClowns. En misschien wel jouw nieuwe werkgever. Wij zoeken namelijk een enthousiaste: Leidinggevend Full Stack Developer (40 uur, medior/senior) Ben jij klaar om baanbrekende ideeën tot leven te brengen en deel uit te

Bekijk vacature »

Lead Java Developer

Dit ga je doen Je taken bestaan onder andere uit: Het aansturen van een development team bestaande uit 8 collega's op technisch maar ook HR gebied; Het maken van strategische keuzes omtrent de (nieuw)bouw van deze applicatie; Het maken van technische ontwerpen; Hands-on mee ontwikkelen met het team (met o.a. Java, Spring, Angular, REST); Reviewen van code en feedback geven op collega developers. Hier ga je werken Als Lead Software Developer ben je verantwoordelijk voor één van de vier Agile Java ontwikkelteams die bouwen aan technologie die duizenden instanties wereldwijd verbindt. Dit Agile team, data Jira en Confluence gebruikt 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 »

SQL Database ontwikkelaar

Functie omschrijving Wil jij meewerken aan het creëren van slimme software om magazijnen als een geoliede machine te laten lopen? Wij zoeken een zorgvuldig persoon, iemand die niet snel de hand omdraait voor complexe algoritmes. Denk jij dat jij de SQL ontwikkelaar bent die wij zoeken? Lees snel verder en wie weet zitten we binnenkort samen aan tafel! Jouw werkzaamheden zullen er als volgt uitzien: Je houdt je bezig met het ontwerpen en ontwikkelen van MS SQL server databases, dit doe je met T-SQL als programmeer laag. Je gaat aan high-end software oplossingen werken, dit doe je voor de optimalisatie

Bekijk vacature »

SQL Developer

Functie omschrijving Altijd al willen werken bij een snelgroeiend bedrijf, actief in de logistieke sector? Dit is je kans! Ik ben op zoek naar een ervaren SQL Developer in de omgeving Tilburg. Dit bedrijf is gespecialiseerd in in de ontwikkeling van software en maatwerk oplossingen voor het automatiseren van logistieke processen. Klanten zijn o.a. BOL en andere grote distributiecentrums. Jouw taken worden vooral: Verantwoordelijk voor ontwikkelen van stored procedures, voor snelle afhandeling van data; Optimalisatie van de SQL query's en T-SQL query's; Jij gaat je bezig houden met ontwerpen, ontwikkelen en optimaliseren van de MS SQL Databases; In deze functie

Bekijk vacature »

Medior Java developer (fullstack)

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 »

Software Developer Mendix / Maatschappelijk Betrok

Dit ga je doen Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Werken met Scrum methodiek; Ontwikkelen van vooruitstrevende oplossingen; Meedenken over nieuwe applicaties en ontwikkelingen; On the job eigen maken van de Mendix omgeving. Hier ga je werken Deze dynamische en snelgroeiende organisatie begeeft zich in de recyclingbranche. Zij nemen op duurzame en efficiënte manier de recycling op zich. Vanwege hun snelle groei zijn zij op zoek naar een young professional die zich graag wilt ontwikkelen als Mendix Developer. Je komt te werken binnen een IT team van +/- 15 medewerkers. Het huidige ‘vaste’

Bekijk vacature »

Front-end Developer

Gezellige team, passie en een groene toekomst! Lees hier de vacature van Front-end Developer bij All in Power! All in power heeft zich tot doel gesteld écht bij te dragen aan de energietransitie. Dit doen wij door de markt voor energie volledig op zijn kop te zetten. Producenten van schone (wind- of zonne-)energie verkopen via ons platform hun energie rechtstreeks aan gebruikers. Of dit nu huishoudens, bedrijven of bijvoorbeeld laadpalen zijn ons platform maakt het uitwisselen van energie mogelijk. Zo maken we de business case van onze klanten veel sterker en loont het om (meer) te investeren in vergroening voor

Bekijk vacature »

.NET Developer

Functie omschrijving Ervaren .NET Developer gezocht! Wij zoeken een ervaren .NET developer die aan de slag gaat voor een softwarebedrijf in de regio Rhenen. In deze rol ben jij zowel zelfstandig als in teamverband verantwoordelijk voor het ontwikkelen en verbeteren van bestaande producten. Daarnaast houdt jij je bezig met de nieuwbouw van websites, webapplicaties en mobiele applicaties die zowel intern als extern gebruikt worden. Je werkt hierbij nauw samen met andere developer, productmanagers en product specialisten om mooie producten te creëren. Bedrijfsprofiel Waar kom je te werken? Je komt te werken voor snelgroeiende softwareleverancier en allround dienstverlener. Klanten van deze

Bekijk vacature »

Back end developer PHP, Laravel

Functie Jij komt te werken in ons webdevelopment team, wat bestaat uit 8 ervaren collega’s. Hiernaast hebben wij nog een team van 2 ontwikkelaars die aan native applicaties werken. Bij ons zijn er korte lijntjes en er hangt een gezellige informele werksfeer. Maar het belangrijkste is natuurlijk dat je aan geweldige applicaties zult gaan werken! Wij willen als organisatie niet te groot worden, we willen gewoon toffe dingen maken. Onze techstack bestaat momenteel uit: PHP, Laravel, Javascript, Typescript, Git, MySQL, Java, Kotlin, Xamarin. Samen met ons ga jij zorgen dat we puik werk leveren! Waarbij je bij elke fase in

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 »

Developer

Functie omschrijving Gaat jouw hart sneller kloppen van software developen in C#.NET? Voor een softwarebedrijf in regio Den Bosch zijn wij op zoek naar een C# programmeur. Lees snel verder! Wat ga je doen? Je gaat werken met C# en ASP.NET MVC Framework om onder meer webapplicaties, webshops en websites te ontwikkelen. Je optimaliseert de bestaande software en helpt mee aan het automatiseren van bedrijfsprocessen. Je gaat samen met je collega's de juiste oplossing op basis van de wensen van de klanten uitwerken tot een mooi product. Bedrijfsprofiel Het ontwikkelen van softwareoplossingen en kantoorautomatiseringen is waar dit bedrijf voor staat.

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

20/04/2024 05:38:06
 
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.