include in while loop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nils

Nils

29/03/2007 11:58:00
Quote Anchor link
He,

Ik moet een verzendbrief generegen automatisch aan hoeveel bedrijven er in de database zitten.

Dus zitten er 2 bedrijven in moet hij dit 2x doen.
Nou heb ik dus een pagina verzendbrief.php die controleerd hoeveel bedrijven erin zitten en een pagina documentverzendbrief2.php waar de document informatie enz in zit. Hier zitten ook sql queries en vanalles in.

Alleen het nadeel is dat hij als ik een include in een while loop gooi dat deze maar 1 keer uitgevoerd wordt en er staan op dit moment 2 bedrijven in de database.

Haal ik de include weg werkt het wel prima.
Is dit niet mogelijk met een include in een while loop of doe ik iets fout ?

Alvast bedankt

Mvg,
Nils van Woensel



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
session_start();
$_SESSION["opmerkingen"]= ($_POST["opmerkingen"]);

?>


<br /><br /><br /><br /><br /><br /><br />


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
<?php

include("inc_connect_mysql.php");

$query="SELECT * FROM verzendbrief_bedrijf WHERE naam_persoon='" . $_SESSION["name"] . "' ";
$result=mysql_query($query) or die (mysql_error());
while ($row= mysql_fetch_array($result)){
echo ("<br>");
echo $row["contactpersoon"];
echo ("<br>");
echo $row["naam_bedrijf"];
echo ("<br>");
echo $row["adres"];
echo ("<br>");
echo $row["postcode"];
echo (" ");
echo $row["plaats"];
echo ("<br>");


include("documentverzendbrief2.php");


}


?>
</table>
 
PHP hulp

PHP hulp

20/11/2024 16:22:31
 
Dennis Jongerden

Dennis Jongerden

29/03/2007 12:05:00
Quote Anchor link
Hoi Nils,

Als je het verzenden van de uiteindelijke brief nu eens in een functie plakt, welke de variabelen uit je eerste query accepteerd. Dus bijvoorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

verzendbrief($var1, $var2, $var3);

?>


En deze functie dan aanroept in je while loop, dan moet het volgens mij goed gaan. Dus waar nu include staat, roep je je functie aan.

De functie zelf plaatst je middels een require_once commando bovenaan je pagina.

Hoop dat je hier wat mee kan.
 
Jurgen assaasas

Jurgen assaasas

29/03/2007 12:06:00
Quote Anchor link
het zou moeten werken, misschien heb je een fout in documentverzendbrief2.php
 
Nils

Nils

29/03/2007 12:14:00
Quote Anchor link
@Jongerden:

Ik zal het eens proberen alshowel ik niet zo goed ben in die functies

@Jurgen:

Hij doet het ook 1 x prima dus waarom pakt hij hem dan niet voor de 2e keer. Dus ik zou zeggen dat er geen fout in zit ?
 
Dennis Jongerden

Dennis Jongerden

29/03/2007 12:16:00
Quote Anchor link
Haal je include commando anders eens weg en kijk dan of hij inderdaad wel twee bedrijven weergeeft in je tabel!

Indien dat wel werkt, dan kan het ook wel in je documentverzendbrief2.php zitten..
 
Nils

Nils

29/03/2007 12:20:00
Quote Anchor link
jep dan voert hij hem 2 x uit
Ik zal mijn documentverzendbrief2.php hieronder posten.
Excuses voor mijn onduidelijke uitlijning:$

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
session_start();
?>

<html>
<head>
<LINK HREF="brief.css" REL="stylesheet" TYPE="text/css">
<title></title>
</head>
<body>

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
<?php


include("inc_connect_mysql.php");

    $datum = date("j F Y");
    $dagvanweek = date("l");
    $arraydag = array(
    "Zondag",
    "Maandag",
    "Dinsdag",
    "Woensdag",
    "Donderdag",
    "Vrijdag",
    "Zaterdag"
    );
    $dagvanweek = $arraydag[date("w")];
    $arraymaand = array(
    "Januari",
    "Februari",
    "Maart",
    "April",
    "Mei",
    "Juni",
    "Juli",
    "Augustus",
    "September",
    "Oktober",
    "November",
    "December"
    );
    $datum = date("j ") . $arraymaand
    [date("n") - 1] . date(" Y");
      
    ?>


<br /><br /><br /><br />
<table width="150%">
<tr>
<td align="left">Ons Kenmerk</td>
<td align="left">Datum</td>
</tr>
<tr>
<td align="left">13</td>
<td align="left">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo "$dagvanweek, $datum"; ?>
</td>
</tr>
<tr>
<td align="left">Uw Kenmerk</td>
</tr>
<tr>
<td></td>
<td align="left">Doorkiesnummer</td>
</tr>
<tr>
<td></td>
<td align="left">

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    $personeel
="SELECT telefoonnummer FROM personeel WHERE naam='" . $_SESSION["naam"] . "'  && achternaam='" . $_SESSION["achternaam"] . "'  " ;
        $result= mysql_query($personeel) or die (mysql_error());
        while($row= mysql_fetch_array($result)){
            echo ($row["telefoonnummer"]);
}


    
    ?>
</td></tr></table>
<br /><br />
Onderwerp</b><br />

<b>Project
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
<?php
    
    $prteller
= 0;
        
    $project="SELECT projectnummer FROM verzendbrief_document WHERE naam_persoon='" . $_SESSION["name"] . "' ";
    $result2= mysql_query($project) or die (mysql_error());
    while($row= mysql_fetch_array($result2)){
        $projectnummer=($row["projectnummer"]);
    
    if ($prteller >= 1)
    {
    
    
    }
else{
    echo ($projectnummer);
    $prteller ++;
    }
    
    }

    ?>
</b>
<br /><br />
Geachte heer/mevrouw,<br />
Bijgaand treft u de volgende documenten aan:

<hr><table align="center" width="100%">
<tr>
<td><b>Aantal</td>
<td><b>Documentcode</td>
<td><b>Bedrijf</b></td>
<td><b>Revisie</td>
<td><b>Ontwerp datum</td>
<td><b>Omschrijving</td>
<td><b>Status</td>
<td><b>Soort</td>
<td><b>Doel</td>
<td><b>Uiterlijk retour</td>
</tr>
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
<?php
$project
="SELECT * FROM verzendbrief_document WHERE naam_persoon='" . $_SESSION["name"] . "' ORDER BY bedrijf";
    $result2= mysql_query($project) or die (mysql_error());
    while($row= mysql_fetch_array($result2)){
        echo ("<tr><td>");
        echo ($row["aantal"]);
        echo ("</td><td>");
        echo ($row["documentcode"]);
        echo ("</td><td>");
        echo ($row["bedrijf"]);
        echo ("</td><td>");
        echo ($row["revisie"]);
        echo ("</td><td>");
        echo ($row["datum_ontworpen"]);
        echo ("</td><td>");
        echo ($row["omschrijving"]);
        echo ("</td><td>");
        echo ($row["status"]);
        echo ("</td><td>");
        echo ($row["documentsoort"]);
        echo ("</td><td>");
        echo ($row["doel"]);
        echo ("</td><td>");
        echo ($row["datum_uiterlijk_retour"]);
        echo ("</td></tr>");
        
    
    }

    
    ?>

</table>

<hr>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php echo $_SESSION["opmerkingen"];
?>


<br />
Met vriendelijke groet,<br />
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
    $project10
="SELECT bedrijf FROM projectinfo WHERE projectnummer='" . $projectnummer . "' ";
    $result10= mysql_query($project10) or die (mysql_error());
    while($row= mysql_fetch_array($result10)){
    echo($row["bedrijf"]);

}

?>
<br /><br /><br /><br /><br /><br />


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
echo $_SESSION["name"];
echo("<br>");

$personeel1="SELECT functie FROM personeel WHERE naam='" . $_SESSION["naam"] . "'  && achternaam='" . $_SESSION["achternaam"] . "'  " ;
$result5= mysql_query($personeel1) or die (mysql_error());
while($row= mysql_fetch_array($result5)){
echo ($row["functie"]);
}



    
?>

<hr>
<font size="5"><b>Legenda</b></font><br /><br />
<div id="index_01"> <b>Verzenddoel</b>
<table>


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
<?php
$project12
="SELECT DISTINCT(doel) FROM verzendbrief_document WHERE naam_persoon='" . $_SESSION["name"] . "' ORDER BY doel";
    $result12= mysql_query($project12) or die (mysql_error());
    while($row= mysql_fetch_array($result12)){
        $doel=($row["doel"]);
        
if ($doel == ('C')){
    echo ("<tr><td>C&nbsp;</td><td>Ter Controle</td></tr>");}
    
if ($doel == ('G')){
    echo ("<tr><td>G&nbsp;</td><td>Ter Goedkeuring</td></tr>");}
    
if ($doel == ('B')){
    echo ("<tr><td>B&nbsp;</td><td>Ter Behandeling</td></tr>");}
    
if ($doel == ('Y')){
    echo ("<tr><td>I&nbsp;</td><td>Ter Informatie</td></tr>");}
    
if ($doel == ('U')){
    echo ("<tr><td>U&nbsp;</td><td>Voor Uitvoering</td></tr>");}    
    
    
}

?>
</table>
</div>
<div id="index_02"><b>Documentstatus</b><table>
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
<?php

$project13
="SELECT DISTINCT(status) FROM verzendbrief_document WHERE naam_persoon='" . $_SESSION["name"] . "' ORDER BY status";
    $result13= mysql_query($project13) or die (mysql_error());
    while($row= mysql_fetch_array($result13)){
        $status=($row["status"]);
        
if ($status == ('A')){
    echo ("<tr><td>A&nbsp;</td><td> As Build</td></tr>");}
    
if ($status == ('C')){
    echo ("<tr><td>C&nbsp;</td><td>Calculatie</td></tr>");}
    
if ($status == ('D')){
    echo ("<tr><td>D&nbsp;</td><td>Definitief</td></tr>");}
    
if ($status == ('O')){
    echo ("<tr><td>O&nbsp;</td><td>Ontwerp</td></tr>");}
    
if ($status == ('T')){
    echo ("<tr><td>T&nbsp;</td><td>Ter Controle</td></tr> ");}
    
if ($status == ('I')){
    echo ("<tr><td>I&nbsp;</td><td>Ter Informatie</td></tr>");}
    
if ($status == ('V')){
    echo ("<tr><td>V&nbsp;</td><td>Voorlopig</td></tr>");}    
    
    
}

?>
</table>
</div> <div id="index_03"><b>Documentsoort</b><br /><table>
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
$project14
="SELECT DISTINCT(documentsoort) FROM verzendbrief_document WHERE naam_persoon='" . $_SESSION["name"] . "' ORDER BY documentsoort ";
    $result14= mysql_query($project14) or die (mysql_error());
    while($row= mysql_fetch_array($result14)){
        $documentsoort=($row["documentsoort"]);
        
if ($documentsoort == ('A')){
    echo ("<tr><td>A&nbsp;</td><td>Afwerkstaat</td></tr>");}
    
if ($documentsoort == ('V')){
    echo ("<tr><td>B&nbsp;</td><td>Bestek</td></tr>");}
    
if ($documentsoort == ('Y')){
    echo ("<tr><td>Y&nbsp;</td><td>Buigstaat</td></tr>");}
    
if ($documentsoort == ('R')){
    echo ("<tr><td>R&nbsp;</td><td>Rapport</td></tr>");}
    
if ($documentsoort == ('S')){
    echo ("<tr><td>S&nbsp;</td><td>Schema</td></tr>");}    
    
if ($documentsoort == ('T')){
    echo ("<tr><td>T&nbsp;</td><td>Tekening</td></tr>");}    
    
if ($documentsoort == ('Vs')){
    echo ("<tr><td>Vs&nbsp;</td><td>Verslag</td></tr>");}    
    
if ($documentsoort == ('Vg')){
    echo ("<tr><td>Vg&nbsp;</td><td>Vergunning</td></tr>");}    
        
}

?>
</table>
</div>
<br /><br /><br /><br /><br /><br /><br /><br /><br />




<table>
<tr>
<td style="font-size:16px;"><b>Tevens verzonden aan:</td><tr>
</table>

</body>
</html>
 
Dennis Jongerden

Dennis Jongerden

29/03/2007 12:44:00
Quote Anchor link
Ok

Het is mij niet helemaal duidelijk wat er allemaal gebeurt, maar hier een paar tips:

Je hoeft je connectie niet 2 keer te includen ( gebruik require_once )
het genereren van de datum zou ik ook niet iedere keer opnieuw laten doen.

En probeer eerst eens alle data op te halen uit je database. Sla dit steeds op in variabelen en genereer dan in een keer je verzend document.

Dan wordt e.e.a. een stuk leesbaarder.

O ja, zet even je error_reporting() aan.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
// Error reporting Level
error_reporting(E_ALL);
?>
 
Rolf Flikker op

Rolf Flikker op

29/03/2007 13:00:00
Quote Anchor link
Quote:
een pagina documentverzendbrief2.php waar de document informatie enz in zit. Hier zitten ook sql queries en vanalles in.


In die verzendbrief2.php gebruik je daar ook weer letterlijk het stukje:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$query
="XXXXXXXXX";
$result=mysql_query($query) or die (mysql_error());
while ($row= mysql_fetch_array($result)){
?>

?

Immers, als je in verzendbrief2.php weer opnieuw $result en $row gebruikt worden deze natuurlijk overschreven en werkt de regel

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
while ($row= mysql_fetch_array($result)){
?>


niet meer.
 
Nils

Nils

29/03/2007 13:27:00
Quote Anchor link
Iig bedankt voor jullie reacties. Ik zal wat met de tips gaan doen.
Dit is overigens wel de eerste keer dat ik zoiets maak vandaar dat ik ook nog moet leren van mijn eigen fouten en het er niet overal logisch uit zal zien.

btw. De error reporting gaf alleen wat aan dat de sessie al gestart was en dat hij hem negeerde. Verder geen error.

Maar vind het nog steeds dom dat hij het maar 1 x uitvoert die logica snap ik hier niet achter
 
Jurgen assaasas

Jurgen assaasas

29/03/2007 13:46:00
Quote Anchor link
dat komt waarschijnlijk omdat je op je include pagina ook session_start() doet en als je em include wordt hij dus deel van de andere pagina, dus is die session_start niet nodig op de include page.
 
Nils

Nils

29/03/2007 13:50:00
Quote Anchor link
ja die heb ik al weggelaten. maar het werkt nog steeds niet
 
Frank -

Frank -

29/03/2007 14:03:00
Quote Anchor link
Tip:
Begin je scripts altijd met de volgende regels:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);

// rest van je script
?>

Krijg je foutmeldingen of waarschuwingen, dan ga je keurig 1 voor 1 deze problemen aanpakken en oplossen. In het begin kost het je wat extra tijd, maar je gaat een stuk beter scripten en daardoor minder fouten maken.

Een include in een loop is volkomen zinloos, tig-keer dezelfde code in je script zetten is net zo zinloos:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
$var
= 1;
$var = 1;
$var = 1;
$var = 1;
$var = 1;
?>

De waarde van $var zal echt niet anders worden omdat het er nu 5x staat.
 
Dennis Jongerden

Dennis Jongerden

29/03/2007 14:26:00
Quote Anchor link
Quote:

In die verzendbrief2.php gebruik je daar ook weer letterlijk het stukje:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$query
="XXXXXXXXX";
$result=mysql_query($query) or die (mysql_error());
while ($row= mysql_fetch_array($result)){
?>


Dit zorgt er dus waarschijnlijk voor dat je script maar 1 keer uitgevoerd wordt. Gebruik andere variabelen ( namen ) voor de queries in je include script.

Dan zal e.e.a. misschien wel netjes 2 keer een document maken.
 
Nils

Nils

29/03/2007 15:56:00
Quote Anchor link
heb ik al geprobeerd werkt ook niet.

Ik heb trouwens nog een vraagje die wss voor jullie niet veel voorsteld maar ik begot niet weet wat ik hiermee aanmoet.

Ik d8 het volgende:
alle documenten echoen waarvan de documentcode niet dubbel is.
Ik d8 aan deze code maar daar haalt hij niks mee uit de database???
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$query2
="SELECT * FROM documenten WHERE documentcode <> documentcode ORDER BY bedrijf";
echo $query2;
echo("<br><br><br><br>");
$result2= mysql_query($query2) or die (mysql_error());
while ($row2 = mysql_fetch_array($result2)){

?>
 
Dennis Jongerden

Dennis Jongerden

29/03/2007 16:10:00
Quote Anchor link
Probeer eens:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$query2
="SELECT DISTINCT(documentcode), bedrijf FROM documenten ORDER BY bedrijf";
$result2= mysql_query($query2) or die (mysql_error());

while ($row2 = mysql_fetch_array($result2))
{


// echo gegevens..

}
?>
 
Nils

Nils

29/03/2007 16:12:00
Quote Anchor link
hmm,dat bedoel ik eik niet want dan haalt hij ook de dubbele gegevens er 1 keer uit. en ik moet eerst de losse documenten eruit filteren omdat ik met de dubbele strax iets anders moet gaan doen vandaar ..
Gewijzigd op 01/01/1970 01:00:00 door Nils
 



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.