while loop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# Ontwikkelaar

In het kort Als C# .NET Core ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan we deze uitdaging

Bekijk vacature »

PHP Developer

Dit ga je doen Professionaliseren van het plaform Bouwen aan mooie innovaties Testen van het plaform Werken in een Scrumteam Hier ga je werken Je komt als PHP ontwikkelaar te werken in een jonge, innovatieve én snel groeiende scale-up die een gespecialiseerde verkoopplatform heeft opgebouwd. De organisatie is in eerste instantie begonnen in de bouw. Het moederbedrijf bestaat nog steeds en heeft nu ruim 300 medewerkers. De organisatie waarvoor je komt te werken heeft nu 20 man in dienst, waarvan 8 man in het IT-team. Zij zoeken versterking in het IT-team, omdat ze de ambitie hebben om steeds meer te

Bekijk vacature »

Randstad - Oracle Forms Developer (Freelance/ZZP)

Startdatum: ZSM Max tarief per uur: 85€ Uren per week: 32-40 Bij RGN IT werken we steeds meer en meer volgens de Agile Way of Working. Dat betekent dat je in het team met het Scrum Proces werkt. Je zult actief deelnemen aan refinement sessies en helpen bij het opstellen van user stories. Je draagt mede bij het stellen van acceptatiecriteria en bepaalt wat het effect en/of impact kan zijn op aanpalende systemen. Tevens draag je bij aan mogelijke oplossingen voor het gevraagde in de user story. Je werkt samen met de andere developers in je team, de product owner

Bekijk vacature »

Freelance Applicatieontwikkelaar (ZZP)

Belastingdienst B/cao Startdatum inzet : 19 december 2022 Tijdelijke functie, met optie op vast Uren per week : 36 Standplaats (in overleg): Apeldoorn We zoeken een consultant/developer met ervaring in de ontwikkeling van back-end systemen. Als consultant heb je kennis en ervaring met de wijze waarop Open Formulieren is opgezet. Je bent een vraagbaak voor collega’s en deelt waar nodig je kennis. Je hebt ervaring met het werken in een open source omgeving. Je bent thuis in verschillende frameworks of je kunt je die snel eigen maken. Je hebt aantoonbaar ruime kennis van en ervaring met Python, Django, HCL Websphere

Bekijk vacature »

Freelance Applicatieontwikkelaar (ZZP)

Belastingdienst B/cao Startdatum inzet : 19 december 2022 Tijdelijke functie, met optie op vast Uren per week : 36 Standplaats (in overleg): Apeldoorn We zoeken een consultant/developer met ervaring in de ontwikkeling van back-end systemen. Als consultant heb je kennis en ervaring met de wijze waarop Open Formulieren is opgezet. Je bent een vraagbaak voor collega’s en deelt waar nodig je kennis. Je hebt ervaring met het werken in een open source omgeving. Je bent thuis in verschillende frameworks of je kunt je die snel eigen maken. Je hebt aantoonbaar ruime kennis van en ervaring met Python, Django, HCL Websphere

Bekijk vacature »

Freelance Applicatieontwikkelaar (ZZP)

Belastingdienst B/cao Startdatum inzet : 19 december 2022 Tijdelijke functie, met optie op vast Uren per week : 36 Standplaats (in overleg): Apeldoorn We zoeken een consultant/developer met ervaring in de ontwikkeling van back-end systemen. Als consultant heb je kennis en ervaring met de wijze waarop Open Formulieren is opgezet. Je bent een vraagbaak voor collega’s en deelt waar nodig je kennis. Je hebt ervaring met het werken in een open source omgeving. Je bent thuis in verschillende frameworks of je kunt je die snel eigen maken. Je hebt aantoonbaar ruime kennis van en ervaring met Python, Django, HCL Websphere

Bekijk vacature »

PHP Developer

Als PHP Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn. Wat doe je als PHP Developer bij Coolblue? Als PHP Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Hoewel je een PHP Developer bent, sta je open om C# of Typescript in te zetten of te leren. Ook PHP Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen pure PHP code schrijven. Samenwerken met de klantreiziger om onze klanten

Bekijk vacature »

Randstad - Oracle Forms Developer (Freelance/ZZP)

Startdatum: ZSM Max tarief per uur: 85€ Uren per week: 32-40 Bij RGN IT werken we steeds meer en meer volgens de Agile Way of Working. Dat betekent dat je in het team met het Scrum Proces werkt. Je zult actief deelnemen aan refinement sessies en helpen bij het opstellen van user stories. Je draagt mede bij het stellen van acceptatiecriteria en bepaalt wat het effect en/of impact kan zijn op aanpalende systemen. Tevens draag je bij aan mogelijke oplossingen voor het gevraagde in de user story. Je werkt samen met de andere developers in je team, de product owner

Bekijk vacature »

Senior back-end .NET Developer Nieuw team

Bedrijfsomschrijving Deze organisatie gevestigd in onder andere Rotterdam richt zich al jaren op het leveren van software voor de vastgoed sector, industrie, scheepsbouw, grond- weg en waterbouw. De software ontwikkeling vindt plaats met de Microsoft Technology Stack en er wordt altijd gewerkt met de laatste updates en software versies. In totaal werken hier nu ongeveer 30 personen, waarvan het grootste deel als ontwikkelaar. De sfeer is informeel en erg prettig. Als .NET software ontwikkelaar heb je het hier goed: een professioneel (scrum) team, vele collega's waar je van kunt leren, goede arbeidsvoorwaarden en volop ruimte om door te groeien naar

Bekijk vacature »

Webdeveloper

Bij VGZ hebben we een heldere missie: samen werken aan een gezonder Nederland, elke dag weer. Jij draagt binnen de rol van Webdeveloper bij VGZ direct bij aan het realiseren van deze missie. Benieuwd hoe? Bekijk hier de vacature. Hoe ook jij het verschil maakt Als Webdeveloper is het jouw taak om met .Net en Angular softwarecomponenten, applicaties en interfaces voor onze online omgevingen te ontwikkelen, te optimaliseren en te beheren. Denk hierbij aan onze afgeschermde Mijn-omgevingen, de publieke websites van onze verschillende merken (zoals vgz.nl en bewuzt.nl), onze chatbot of ons werkgeversportaal. Daarbij opereer je in een dynamische omgeving

Bekijk vacature »

React Developer

Samengevat: Wil jij werken als Front End Developer? Deze werkgever is een digitaal bureau. Heb jij ervaring als Front End Developer. Vaste baan: Front End Developer React Scrum 3.000 - 4.200 Front End Developer Deze werkgever is een digitaal bureau. We zijn blauwvingers én we slaan graag onze vleugels uit om mooie reizen te maken. En nee, we zijn geen standaard bureau. We zijn betrokken bouwers. We bouwen graag aan websites, marketing campagnes en aan goede relaties met onze klanten. Maar we bouwen ook aan jouw ontwikkeling, de ontwikkeling van het team en het bedrijf. En dat doen we net

Bekijk vacature »

.NET developer

Over deze functie Als .NET developer bouw je mee aan innovatieve dienstverlening en draag jij bij aan de groei van de organisatie. Kenter groeit namelijk hard op het gebied van kwaliteit, professionaliteit en innovatie en is altijd op zoek naar verbeteringen. Zij richten zich op de ontwikkeling van moderne meetoplossingen, ook juist op korte termijn. Zo kunnen zij vooruitlopen op het gebied van IoT, realtime data en andere innovatieve oplossingen. Als .NET developer ben je van onschatbare waarde. Je werkt samen met ruim 20 IT professionals aan zowel greenfield- als legacy-projecten. Dat doe je in samenwerking met ontwikkelaars, data engineers,

Bekijk vacature »

Freelance Frontend Developer (ZZP)

Belastingdienst B/cao Startdatum inzet : 19 december 2022 Tijdelijke functie, met optie op vast Uren per week : 36 Standplaats (in overleg) : Apeldoorn Op dit moment hebben wij frontend developers met een nieuwsgierige en pro actieve houding nodig die zich hoofdzakelijk richten op het helpen bij het bouwen van open formulieren. Deze formulieren worden gemaakt met verschillende producten. Wij werken met Bold (het Belastingdienst Design System), form.io, moderne frameworks en integratiemogelijkheden. Op het gebied van de overige tooling wordt je voor zover nodig ingewerkt. Van jou als frontend developer wordt verwacht dat je deze producten op de juiste manier

Bekijk vacature »

Front end Developer

Dit ga je doen Je werkt aan de ontwikkeling van de frontend van de online systemen en webapplicaties; Je onderhoud en beheert de documentaties; Je maakt een vertaling van grafische ontwerpen naar technische implementaties; Je zorgt voor oplossingen bij operationele storingen; Je werkt volgens het informatiebeveiligingsbeleid. Hier ga je werken Je komt als Front-end Developer te werken bij een organisatie die gespecialiseerd is in software die real-time wordt gebruikt. De software constateert waar werk moet worden uitgevoerd en de chauffeurs worden met een andere applicatie hierop geattendeerd. Ook wordt er direct een planning 'uitgerold' dat de chauffeurs kunnen aanhouden. De

Bekijk vacature »

Junior Robot Programmeur

Bedrijfsomschrijving: Locatie: regio Eindhoven Deze organisatie ontwikkelt, test & released robots en verzorgt het product lifecycle management, vanaf potloodschets tot implementatie. Producten worden geschikt gemaakt voor seriefabricage. Als Junior Robot Programmeur werk je samen met de Product Engineers, Cost Engineers, Test Engineers, Process Engineers en Workshop Technicians. Ze streven naar robuuste producten die onder uitdagende omstandigheden, over de hele wereld goed blijven functioneren. Lijkt het jou leuk om dagelijks met innovatie bezig te zijn en robots te ontwikkelen in een multidisciplinair team met een projectmatig karakter? Wil je als Junior Robot Programmeur meewerken aan het ontwerpen en ontwikkelen van state

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/12/2022 12:19:19
 
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.