variabele aanmaken met data uit database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wim Neefs

Wim Neefs

19/04/2020 13:03:04
Quote Anchor link
Hallo,

Ik ben al een tijdje op zoek naar de juiste code of script om een variabele aan te maken welke ik kan gebruiken om weer te geven in een html pagina of zelfs in een "send mail" script.

Ik gebruik PDO om de connectie te maken met de database.

Wat ik dus wil bereiken is dat ik een variabele kan maken welke de data weergeeft van 1 veld uit een bepaalde rij uit de database.
bvb. Ik heb een tabel met enkele velden (id, status, datum, event, ...) en ik wil nu de data die in het veld "event" staat weergeven via een echo in een html pagina.
Maar ik wil dit kunnen doen voor meerdere rijen maar ook weer niet alle rijen. Dus ik wil bvb de data uit het veld "event" van rij 1, 5, 7, ...

Ook had ik dan nog graag die variabele kunnen gebruiken in een php send mail script.

Kunnen jullie mij hier raad in geven of een voorbeeldje van de code bezorgen?
Ik ben nog niet zo heel behendig in PHP.

Ik hoop dat het een klein beetje duidelijk is, anders hoor ik graag jullie extra vragen.

Groeten,
Wim
 
PHP hulp

PHP hulp

23/11/2024 20:19:01
 
- Ariën  -
Beheerder

- Ariën -

19/04/2020 13:24:41
Quote Anchor link
Wat heb je nu op dit moment aan code? Je kan het toch prima met de fetch-functie eruit halen?
Gewijzigd op 19/04/2020 13:24:52 door - Ariën -
 
Wim Neefs

Wim Neefs

19/04/2020 13:30:20
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
<?php
include 'main.php';

$ev46 = $pdo->query("SELECT event FROM events WHERE indexev='ev46' AND active='Actief'")->fetch();
?>


<html>
<body>
<?php echo $ev46; ?>
</body>
</html>

Dan krijg ik als waarde "Array" terug en iet de waarde die in het veld "event" staat voor de gevraagde query.
Gewijzigd op 19/04/2020 13:44:42 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

19/04/2020 13:49:57
Quote Anchor link
Dat klopt, het is een container met data.
PHP weet niet wat je wilt tonen, en hoe je het wilt visualiseren, dus dan zegt hij dat.
Je moet $ev46 uiteraard even door foreach() halen.

Overigens raad ik aan om geen queries te nummeren, omdat dit sneller tot onduidelijkheid kan leiden.
Benoem liever wat het moet doen. Ook hoop ik dat je geen queries in een loop gebruikt, omdat je hiermee veel dure resources verbruikt.
Gewijzigd op 19/04/2020 13:50:10 door - Ariën -
 
Wim Neefs

Wim Neefs

19/04/2020 13:52:05
Quote Anchor link
Dag Ariën,

Bedankt voor de info maar zoals vermeld ben ik een beginner in php en weet ik niet zo goed hoe ik dit in code moet vertalen. Kan je me misschien de juiste code bezorgen?
 
- Ariën  -
Beheerder

- Ariën -

19/04/2020 13:54:30
Quote Anchor link
Kijk eens naar foreach.
Met die functie lees je dan $ev46 mee uit.
Gewijzigd op 19/04/2020 13:54:43 door - Ariën -
 
Wim Neefs

Wim Neefs

19/04/2020 13:55:23
Quote Anchor link
Bedankt
 
- Ariën  -
Beheerder

- Ariën -

19/04/2020 14:02:19
Quote Anchor link
Graag gedaan, hopelijk lukt het.
 
Wim Neefs

Wim Neefs

19/04/2020 14:07:36
Quote Anchor link
Helemaal niet maar ik zoek wel verder tot ik een oplossing vind voor mijn probleem.
Ik denk ook dat je me verkeerd hebt begrepen met wat ik wil.

Ik heb een tabel met 46 rijen waar data in staat.
Ik wil in html bvb de waarde van 1 veld uit een bepaalde rij weergeven en daarna een andere rij met de waarde van 1 veld maar niet alle rijen.
Ik wil zelf bepalen welke rijen er worden weergegeven.

Maar maakt niet uit hoor, ik zoek wel verder.

Nogmaals bedankt.
 
- Ariën  -
Beheerder

- Ariën -

19/04/2020 14:31:25
Quote Anchor link
Met je foreach zit je al goed, want die moet namelijk al je data doorlopen die je wilt tonen.
Je kan je query aanpassen met een WHERE....IN...., zodat je een beperking kan opleggen.

Zie ook: https://www.w3schools.com/sql/sql_in.asp
Gewijzigd op 19/04/2020 14:31:54 door - Ariën -
 
Wim Neefs

Wim Neefs

19/04/2020 14:35:51
Quote Anchor link
Dag Ariën,

Nogmaals bedankt.
Maar ik denk dat ik het beter op een andere simpelere manier ga doen en de data uit een andere pagina ga halen.
Dan moet ik al de data die in de database staat wel overtypen in een pagina.

Bedankt voor je hulp maar als iemand aangeeft dat hij een echte beginner is en al lang aan het zoeken is dan gaat hij het met uw hints niet klaar krijgen vrees ik, ik toch niet.

Voor mij mag je dit topic afsluiten want hier ga ik er niet uit geraken.
 
- Ariën  -
Beheerder

- Ariën -

19/04/2020 14:52:32
Quote Anchor link
Zo lastig is het ook weer niet :-P
Ik was vroeger ook een beginner, en na veel proberen en documentaties lezen lukte het mij ook.

Probeer deze query eens, en pas hem eventueel aan.
SELECT event FROM events WHERE id IN (1,5,7) AND indexev='ev46' AND active='Actief'
 
Wim Neefs

Wim Neefs

19/04/2020 15:03:23
Quote Anchor link
Dag Ariën,

Weer bedankt voor de info maar dan heb ik nog niets aan die foreach.

En ik zou die waarde ook in het send mail script moeten krijgen wat dan ook niet gaat lukken vrees ik.

Ik heb nu dit als code:
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
<?php
$ev46
= $pdo->query("SELECT * FROM events WHERE indexev='ev46' AND active='Actief'");
?>


<!DOCTYPE html>
<html>
<body>
<?php
foreach ($ev46 as $row) {
    echo $row['event'];
}
?>


</body>
</html>


Die dat extra stukje van IN(...) maakt het totaal geen verschil.

Dan geeft hij de juist waarde weer maar dat is niet wat ik in gedachte had. (dit kan ik dus niet in het send mail script steken.)
Ik was van het idee dat ik een bepaalde variabele kon aan maken die ik dan kon gebruiken om als echo te gebruiken in het html gedeelte en in het send mail script (dit script: $sent = mail($to, $subject, $body, $headers);)

Maar hier zie ik met dit geen oplossing in.
Gewijzigd op 19/04/2020 15:05:27 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

19/04/2020 15:07:20
Quote Anchor link
Je wilt de inhoud van de foreach dus toepassen in je mail() functie?
 
Wim Neefs

Wim Neefs

19/04/2020 15:07:55
Quote Anchor link
inderdaad.
 
- Ariën  -
Beheerder

- Ariën -

19/04/2020 15:10:02
Quote Anchor link
Dan zou je outputbuffering kunnen gebruiken. Je buffert een deel van de output in het geheugen, om hier later wat mee te doen. $content kan je dan verder gebruiken in je mail().

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
ob_start();
foreach ($ev46 as $row) {
    echo $row['event'];
}

$content = ob_get_contents();
ob_end_clean();

// $content kan je hier in je mail(.....) gebruiken.
?>
Gewijzigd op 19/04/2020 15:10:27 door - Ariën -
 
Wim Neefs

Wim Neefs

19/04/2020 15:12:04
Quote Anchor link
Dank u wel. Ik ga dit later testen.
Nog een prettige zondag.
 
- Ariën  -
Beheerder

- Ariën -

19/04/2020 15:13:15
Quote Anchor link
Dankjewel!
Hopelijk lukt dit!
 
Wim Neefs

Wim Neefs

19/04/2020 15:33:54
Quote Anchor link
Dag Ariën,

ik heb het nog vlug getest en dit werkt. Dit is wat ik nodig had.

Nogmaals heel hard bedankt voor de info en om geduld met mij te hebben.

Groeten,
Wim
 
- Ariën  -
Beheerder

- Ariën -

19/04/2020 16:23:37
Quote Anchor link
Graag gedaan. :-)
 



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.