[OPGELOST]Variabelen teruglezen in een ander php bestand

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Java Developer Onderzoeksinstituut Architec

Bedrijfsomschrijving Als Senior Java Developer kom je te werken bij een internationaal gerenommeerd onderzoeksinstituut. Dagelijks is dit instituut verantwoordelijk voor de juiste samenwerking, toegankelijkheid en communicatie voor circa 9000 interne gebruikers. In een team van elf ontwikkelaars ben je als Senior Java Developer verantwoordelijk voor het ontwikkelen van functionele ontwerpen naar technische oplossingen. Deze projecten bestaan o.a. projecten zoals het implementeren van Elastic Search en het koppelen van CMS. Ook fungeer je als vraagbaak voor je collega’s op het gebied van backend softwareontwikkeling. Daarnaast denk je graag mee op het gebied van architectuur qua mogelijke oplossingen en innovatie. Momenteel zijn

Bekijk vacature »

Christiaan de kleine

christiaan de kleine

05/09/2020 14:01:00
Quote Anchor link
Hallo allemaal,

Ik heb in een map genaamd Config een functie staan om afbeeldingen met naam en url te laden

In een ander bestand totaal ergens anders op de website include ik dat bestand en roep ik de functie aan, alleen de 4 variabelen die in die functie zitten kan ik niet lezen. Wie heeft de oplossing???

Hier het stukje code van de function:
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
function getClublogo($Ytid, $Yuid) {
    global $imgThuis;
    global $imgUit;
    global $naamThuis;
    global $naamUit;
    $sqlThuis = "SELECT * FROM `clublogos` WHERE `club_id` = $Ytid";
    $resThuis = mysqli_query($dbcon00, $sqlThuis);
    
    if (mysqli_num_rows($resThuis) > 0) {
         // output data of each row
         while($rowThuis = mysqli_fetch_assoc($resThuis)) {
            $imgThuis = $rowThuis['logo_url'];
            $naamThuis = $rowThuis['clubnaam'];
        }
    }
    //------------------------------------------------------------------//
    $sqlUit = "SELECT * FROM `clublogos` WHERE `club_id` = $Yuid";
    $resUit = mysqli_query($dbcon00, $sqlUit);
    if (mysqli_num_rows($resUit) > 0) {
         // output data of each row
         while($rowUit = mysqli_fetch_assoc($resUit)) {
            $imgUit = $rowUit['logo_url'];
            $naamUit = $rowUit['clubnaam'];
        }
    }
    
    
}


En hier de code voor het terug halen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
include("Config/afbeeldingen.php");
$th = '15';
$ui = '64';
getClublogo($th, $ui);

echo '<br><br>Club ' .$naamThuis. ' (<img src="' .$Ssite. '/'.$imgThuis. '" width="75"> )<br>' ;
echo 'Club ' .$naamUit. ' (<img src="' .$Ssite. '/'.$imgUit. '" width="75"> )<br>' ;


Als ik de functie qua code kopieër en plak in de originele broncode dan doet ie het heel keurig...
Gewijzigd op 05/09/2020 19:18:20 door Christiaan de kleine
 
PHP hulp

PHP hulp

30/10/2020 08:04:08
 
- SanThe -

- SanThe -

05/09/2020 14:16:24
Quote Anchor link
Waar moeten die variabelen vandaan komen?
 
Christiaan de kleine

christiaan de kleine

05/09/2020 14:17:23
Quote Anchor link
vanuit de functie santhe.
De variabelen $imgThuis, $naamThuis, $imgUit, $naamUit
 
- SanThe -

- SanThe -

05/09/2020 14:21:57
Quote Anchor link
Definieer ze eens voor de include().

Dus:
$imgThuis = '';
etc.
include(..);
 
Christiaan de kleine

christiaan de kleine

05/09/2020 14:23:55
Quote Anchor link
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
<?php

    $imgThuis
;
    $imgUit;
    $naamThuis;
    $naamUit;
    
    include("Config/afbeeldingen.php");
    include("Config/config.php");
// Start gegevens:
session_start();
$_SESSION["sessionWebsite"] = "http://" . $_SERVER['SERVER_NAME'];

$Ssite = $_SESSION["sessionWebsite"];

echo $Ssite;
$th = '15';
$ui = '64';
getClublogo($th, $ui);

echo '<br><br>Club ' .$naamThuis. ' (<img src="' .$Ssite. '/'.$imgThuis. '" width="75"> )<br>' ;
echo 'Club ' .$naamUit. ' (<img src="' .$Ssite. '/'.$imgUit. '" width="75"> )<br>' ;


?>


geeft geen verbetering.
 
- SanThe -

- SanThe -

05/09/2020 14:25:17
Quote Anchor link
Niet $imgThuis;
Maar $imgThuis = '';
 
Christiaan de kleine

christiaan de kleine

05/09/2020 14:27:57
Quote Anchor link
had ik daarna snel aangepast weer, maar ook geen verbetering.
 
- SanThe -

- SanThe -

05/09/2020 14:28:08
Quote Anchor link
En $dbcon00 zal niet bekend zijn in de function().
 
Christiaan de kleine

christiaan de kleine

05/09/2020 14:33:27
Quote Anchor link
die zit in het config bestand met een include...

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
<?php
    include("config.php");

    $imgThuis = '';
    $imgUit = '';
    $naamThuis = '';
    $naamUit = '';
// Start gegevens:
session_start();

function
getClublogo($Ytid, $Yuid) {
    global $imgThuis;
    global $imgUit;
    global $naamThuis;
    global $naamUit;
    
    $sqlThuis = "SELECT * FROM `clublogos` WHERE `club_id` = $Ytid";
    $resThuis = mysqli_query($dbcon00, $sqlThuis);
    
    if (mysqli_num_rows($resThuis) > 0) {
         // output data of each row
         while($rowThuis = mysqli_fetch_assoc($resThuis)) {
            $imgThuis = $rowThuis['logo_url'];
            $naamThuis = $rowThuis['clubnaam'];
        }
    }

    //------------------------------------------------------------------//
    $sqlUit = "SELECT * FROM `clublogos` WHERE `club_id` = $Yuid";
    $resUit = mysqli_query($dbcon00, $sqlUit);
    if (mysqli_num_rows($resUit) > 0) {
         // output data of each row
         while($rowUit = mysqli_fetch_assoc($resUit)) {
            $imgUit = $rowUit['logo_url'];
            $naamUit = $rowUit['clubnaam'];
        }
    }

    return $imgThuis;
    
}

?>

in de config file staat de $dbcon00
 
- SanThe -

- SanThe -

05/09/2020 14:36:21
Quote Anchor link
Dan moet die in de function() een global worden gemaakt.
 
Christiaan de kleine

christiaan de kleine

05/09/2020 14:37:36
Quote Anchor link
en hoe moet ik die toevoegen dan??
 
- SanThe -

- SanThe -

05/09/2020 14:39:52
Quote Anchor link
Onder de rest.

global $naamUit;
etc.
global $dbcon00;
 
Christiaan de kleine

christiaan de kleine

05/09/2020 14:41:21
Quote Anchor link
top, werkt nu wel idd. Hij had dus de verbinding niet opgebouwd met de database. Dank je wel -SanThe-
 
- SanThe -

- SanThe -

05/09/2020 14:42:22
Quote Anchor link
Succes verder.
 
Thomas van den Heuvel

Thomas van den Heuvel

05/09/2020 17:09:21
Quote Anchor link
Kun je al deze informatie niet simpelweg teruggeven via de functie? Waarom zou je hier allemaal globale variabelen voor moeten maken?

Bovenstaande oplossing zal zeker werken, maar of het nu heel erg netjes is? En dan bedoel ik niet zozeer alsof ik optreed als een soort van smaakpolitie maar meer dat dit soort constructies zorgen voor onoverzichtelijkere code, wat mogelijk meer fouten en bugs tot gevolg kan hebben.

En als ik bovenstaande code bekijk dan krijg ik de indruk dat dit onderdeel is van een overkoepelende entiteit genaamd "wedstrijd"? Dit zou je dus, als je waarschijnlijk wat meer structuur aanbrengt in je database, kunnen tacklen met één query die alle relevante informatie in 1x bij elkaar sprokkelt.

En dat $imgThuis en $imgUit, dat zijn gewoon clublogo's? Als je die nu eens een slimme naam geeft (gelijk aan de clubnaam of simpelweg het id van het club-record) dan heb je niet eens een aparte kolom "logo_url" nodig. Dit is in zekere zin, mits je de bestandsnaam een beetje slim kiest, afleidbare informatie / afleidbaar uit andere informatie.

Vraag is ook, heb je die variabelen echt continu (in een globale scope) nodig, of gebruik je deze slechts één keer? Indien de functie, in wat voor uitvoering dan ook, al deze informatie retourneert, dan zou je die data gewoon kunnen hergebruiken als je die op meerdere plaatsen nodig hebt? Maar er is (op voorhand) geen enkele reden om dit tot globaal toegankelijke informatie te verheffen.
 
Ozzie PHP

Ozzie PHP

05/09/2020 18:46:05
Quote Anchor link
Thomas van den Heuvel op 05/09/2020 17:09:21:
Kun je al deze informatie niet simpelweg teruggeven via de functie? Waarom zou je hier allemaal globale variabelen voor moeten maken?

...

Maar er is (op voorhand) geen enkele reden om dit tot globaal toegankelijke informatie te verheffen.

Precies wat Thomas zegt. Deze aanpak is niet wenselijk. Dit zijn geen globale variabelen.
Gewijzigd op 05/09/2020 18:46:33 door Ozzie PHP
 



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.