while loop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Oracle Apex Developer

Dit ga je doen Jouw taken bestaan uit: Het bouwen maatwerk Oracle applicaties voor Europese business units; Het implementeren van de nieuwste technieken om te blijven innoveren; Actief meedenken en aandragen van verbetervoorstellen. Hier ga je werken Deze organisatie in de regio Veenendaal is een van wereld grootste retailers met ruim 16.000 winkels in 27 markten en jaarlijks ruim 5,3 miljard klanten die winkelen bij een van hun welbekende retailmerken. Binnen de organisatie is er een IT Group actief die dient als IT Service Provider voor de hele organisatie en waar dagelijks IT'ers werken aan state-of-the-art IT oplossingen. Dit doen

Bekijk vacature »

Fullstack Developer

Functieomschrijving Voor een erkende werkgever in regio Etten-Leur zijn wij op zoek naar een Fullstack Developer met PHP/Laravel ervaring. Je gaat aan de slag met het bouwen van maatwerk software voor klanten die actief zijn in een specifieke markt. Als fullstack developer ben je samen met een enthousiast team van 7 collega’s verantwoordelijk voor de ontwikkeling, beheer en innovatie van informatiesystemen voor klanten in een specifieke branche. Verder ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Ervaring met Laravel is een must. Om de klant zo goed mogelijk te

Bekijk vacature »

Front-end Developer

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

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 »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde Java professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze top-opdrachtgevers. Geen werkdag is hetzelfde! Je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfs kritische systemen voor onze klanten in regio Noordoost zoals DUO, ING, CJIB en Tendernet. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We organiseren regelmatig technische Meetups en doen veel aan kennisdeling. Sogetisten hebben plezier in hun werk en staan

Bekijk vacature »

Full Stack .NET Developer

Dit ga je doen Als developer nieuwe gave features ontwikkelen; Werken met technieken als C#, Angular 12 en Javascript,; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een team van 7 professionals ben je als Full Stack .NET Developer verantwoordelijk voor het ontwikkelen van applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Wil je van meerwaarde

Bekijk vacature »

Senior Java developer

Als Senior Developer bij Sogeti ben je onderdeel van onze toonaangevende best-gecertificeerde Java community. Deze bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze top-opdrachtgevers. Geen werkdag is hetzelfde! Je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Aval en de Nationale Politie. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We

Bekijk vacature »

Software Developer

Functie omschrijving Psst hé jij daar! Op zoek naar een nieuwe uitdaging als developer? Wacht niet langer en reageer direct. In deze functie ga je bij een familiebedrijf werken als developer. Je gaat maatwerk software ontwikkelen met de Microsoft stack. Je gebruikt technieken als C#, ASP.NET en MVC. Je werkt in een leuk team van andere developers. Je krijgt veel vrijheid in je werk en kan flexibel werken. Dagje thuiswerken? Geen probleem! Daarnaast is er veel ruimte om écht mee te denken met het bedrijf en met de klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Vanaf

Bekijk vacature »

C#.NET-developer - JUNIOR

Functie omschrijving Voor een leuke opdrachtgever in omgeving Brielle zijn wij op zoek naar een junior developer. Werk jij graag met de volgende tools & technieken? C#, .NET, ASP.NET, MVC en SQL? Kijk dan snel of dit iets voor jou is! Als programmeur bij een productiebedrijf zal je voornamelijk nieuwe software schrijven maar ook bestaande software verbeteren. Verder werk je veel samen in back end projecten met leuke collega's. Bedrijfsprofiel Met een team van ruim 130 personen staan ze elke dag weer klaar om IT en Business te combineren door het ontwikkelen van producten op maat. Er zijn 3 teams,

Bekijk vacature »

Back end developer PHP

Functie Heb jij altijd al eens bij een bedrijf willen werken waar jij géén nummertje bent, die alleen maar uitvoerend werk doet? Dan zou je hier perfect passen! Tuurlijk, je werkt aan projecten voor grote of kleine bedrijven… Het enige verschil hier is, jouw mening telt hier écht. Jouw inbreng wordt gewaardeerd, serieus genomen en gebruikt. En vergeet niet, je werkt niet alleen aan deze projecten. Er werken in totaal ruim 25 developers en designers, onderverdeeld over 3 development teams. Voornamelijk bestaande uit Medior en Senior developers, die samen voor een inspirerende en ambitieuze omgeving zorgen. Hun visie is namelijk

Bekijk vacature »

PHP Web Developer

Functie omschrijving Voor een klein softwarebedrijf in de omgeving Roosendaal, zijn wij op zoek naar een PHP web developer met een aantal jaar werkervaring. Wil jij graag werken aan in-house software projecten voor diverse klanten? Voel jij je prettige in een klein team developers, waar jouw inbreng enorm gewaardeerd wordt? Lees dan snel verder! Jouw werkzaamheden zien er als volgt uit: Je wordt verantwoordelijk voor de ontwikkeling van diverse applicaties. Dit kan de ene keer een online platform voor aanbiedingen zijn, en de andere keer een software pakket dat gebruikt wordt om interne processen te automatiseren. Het zijn stuk voor

Bekijk vacature »

Python Developer

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

Bekijk vacature »

Software Developer C# / ASP .Net

Functie omschrijving Ben jij een software ontwikkelaar die bekend is met termen ASP .NET, C# en SQL? Lees dan snel verder! Voor een bedrijf binnen de agrarische sector zijn wij namelijk op zoek naar een zelfstandige, enthousiaste en proactieve Software Developer die open staat voor een afwisselende functie met veel uitdaging. Binnen deze organisatie ben jij als Software Developer samen met één andere collega verantwoordelijk voor de ontwikkeling en modificatie van het support en controle programma dat binnen dit bedrijf gebruikt wordt. Hierbij draag jij bij aan de vertaling van klantwensen naar effectieve softwareoplossingen. Daarnaast ben je verantwoordelijk voor: Schatten

Bekijk vacature »

Medior Java developer

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

Bekijk vacature »

Medior Java developer

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

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

22/12/2024 09:42:36
 
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.