• Ik vond op internet een script om gegevens uit de wordpress db te kunnen halen.

    Ik heb een aantal extra tabellen aangemaakt en in mysql een functie geschreven welke ik via een snippet wil aanroepen

    als eerst zou ik require(‘wp-load.php’); moeten aanroepen echter wanneer ik de snippet wil activeren krijg ik de error:

    Snippet niet geactiveerd, er is een fout opgetreden: Failed opening required 'wp-load.php' (include_path='.:/opt/alt/php82/usr/share/pear:/opt/alt/php82/usr/share/php:/usr/share/pear:/usr/share/php')

    kan iemand mij op weg helpen?

15 reacties aan het bekijken - 1 tot 15 (van in totaal 15)
  • Hoi Geert,

    Zou je wat meer details willen geven? Wat voor soort gegevens wil je opvragen uit de database? Waarvoor gebruik je die gegevens? Al op zoek geweest naar een plugin die voldoet aan je wensen? Want dan hoef je niet alles handmatig te doen.

    Guido

    Thread starter geertvanbragt

    (@geertvanbragt)

    Hoi Guido,

    heb zelf een aantal tabellen aangemaakt waarin gegevens staan. Tevens een aantal functies in de db die de info teruggeven welke ik op dat moment nodig heb.

    Waarom ik de vraag stelde is, de tabellen staan in de db die wordpress zelf aanmaakt dus ging ervan uit dat daar dan toch sowieso al een verbinding moet zijn

    Hoi Geert,

    Om binnen een WP-omgeving rechtstreeks met de database te communiceren wordt de wpdb class gebruikt.
    Als je waarden in de wp_options tabel staan kun je binnen je WP-omgeving de WP functie get_option() gebruiken om de waarde op te vragen.

    Guido

    Thread starter geertvanbragt

    (@geertvanbragt)

    Hoi Guido, sorry maar komen er niet uit en heb nu dit in mn snippet: GetMax_BS is een functie in mysql waar een “JA”en een 20000 in gaat en die geeft een waarde terug waar ik iets mee wil doen

    wp-includes/class-wpdb.php
    <html>
    	<?php
    	
    
    global $wpdb;
    
    $data = $wpdb->get_results("select GetMax_BS('JA', 10000) ");
    	
    echo $data;
    
    	?>
    	<body>
    <figure class="table" style="float:left;:60.00%;">
        <table class="ck-table-resized" style="background-color:blue;border-style:solid;">
            <colgroup>
                <col style="width:20.00%;">
                <col style="width:20.00%;">
                <col style="width:20.00%;">
            </colgroup>
            <thead>
                <tr>
                    <th style="border-color:blue;border-style:solid;">&nbsp;</th>
                    <th style="border-color:blue;border-style:solid;"><span style="color:white;"><strong>met NHG</strong></span></th>
                    <th style="border-color:blue;border-style:solid;"><span style="color:white;">Zonder NHG</span></th>
                </tr>
                <tr>
                    <th style="border-color:blue;border-style:solid;"><span style="color:white;">Maximaal</span></th>
                    <th style="border-color:blue;border-style:solid;"><span style="color:white;">  </span></th>
                    <th style="border-color:blue;border-style:solid;"><span style="color:white;">  </span></th>
                </tr>
                <tr>
                    <th style="border-color:blue;border-style:solid;"><span style="color:white;">Rente</span></th>
                    <th style="border-color:blue;border-style:solid;"><span style="color:white;">  </span></th>
                    <th style="border-color:blue;border-style:solid;"><span style="color:white;">  </span></th>
                </tr>
                <tr>
                    <th style="border-color:blue;border-style:solid;"><span style="color:white;">Maandlast</span></th>
                    <th style="border-color:blue;border-style:solid;"><span style="color:white;">  </span></th>
                    <th style="border-color:blue;border-style:solid;"><span style="color:white;">  </span></th>
                </tr>
            </thead>
        </table>
    </figure>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    	</body>
    </html>	

    Hoi Geert,

    Mijn mysql kennis is zeer beperkt, ik heb sowieso geen ervaring met functies in mysql. Ik mis wel de FROM in jouw mysql code. Voor meer info en voorbeelden zie bv deze tutorial.

    Guido

    Thread starter geertvanbragt

    (@geertvanbragt)

    From gebruik je bij een select from een table een functie werkt anders, daar geeft de function de waarde terug bedankt voor je hulp maar ik merk weinig activiteit van anderen helaas

    Moderator Marcel Bootsman 🇪🇺

    (@mbootsman)

    WordPress specialist sinds 2009

    Misschien is dit een handig startpunt: https://learn.wordpress.org/tutorial/custom-database-tables/

    Thread starter geertvanbragt

    (@geertvanbragt)

    Hoi Marcel,

    dankzij je link ben iuk een stuk verder gekomen, dank daarvoor.

    Met een voorbeeld heb ik in een snippet t volgende:

    echter de select GetMax_BS wordt niet uitgevoerd terwijl wanneer ik in de DB omgeving de query select GetMax_BS(“JA”, 29000) aanroep er netjes een value wordt teruggegeven

    <?php
    global $wpdb;
    $user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );
    echo "<p>User count is {$user_count}</p>";
    $een = "JA";
    $twee = 29000;
    echo "<p>alleenstaande is $een </p><br>";
    echo "<p>inkomen is $twee </p><br>";
    $geert=$wpdb->get_var("Select GetMax_BS($een,$twee)");
    echo "<p>verruiming is $geert </p><br>";
    ?>
    Moderator Marcel Bootsman 🇪🇺

    (@mbootsman)

    WordPress specialist sinds 2009

    Wat is die GetMax_BS()?

    Thread starter geertvanbragt

    (@geertvanbragt)

    Een functie in mysql met 2 parameters die een waarde als result heeft en als query is aan te roepen

    DELIMITER $$
    CREATE DEFINER=p666641_hn6021@%.dbp.shared.prod.hostnetbv.nl FUNCTION GetMax_BS(Alleenstaand VARCHAR(3), Inkomen DECIMAL(11,0)) RETURNS int(11)
    BEGIN
    	declare Verhoging int default 0;
    	
    	set Verhoging = (select IFNULL((select max_bs.Verhoging from max_bs where max_bs.Alleenstaand = 'JA' and max_bs.InkomenVanaf <= Inkomen),0)); 
    
    
    	RETURN Verhoging;
    END$$
    DELIMITER ;
    Moderator Marcel Bootsman 🇪🇺

    (@mbootsman)

    WordPress specialist sinds 2009

    Aha.

    Heb je al geprobeerd om die logica naar een functie in PHP te verplaatsen? Lijkt erop dat dat het probleem is, misschien dat get_var() een restrictie heeft op de commando’s die het kan verwerken.

    Thread starter geertvanbragt

    (@geertvanbragt)

    Das dus mijn probleem, mysql en delphi is geen probleem maar ben nieuw in php maar je bedoelt dat wanneer ik de code in de functie uitvoer in php dat t wel werkt?

    Ik ging ervan uit dat wanneer een query kan worden uitgevoerd dit ook moest werken

    https://www.7boats.com/executing-stored-procedures-and-functions-from-phpmysql/#How_to_execute_stored_functions_phpmyadmin

    Moderator Marcel Bootsman 🇪🇺

    (@mbootsman)

    WordPress specialist sinds 2009

    Iets uitvoeren in PHPMyAdmin en in een functie van WordPress zijn wel twee verschillende dingen. Ik denk dat een functie in PHP de oplossing is.

    Zo kan je data uit de tabel halen, en aan de functie meegeven die dan iets teruggeeft.

    function MaxBS($var1, $var2) {
    
    // doe hier iets met $var1 en $var2
    
    // geef waarde van $var3 terug
    return $var3;
    }

    Logica in MySQL is soms prettig om te hebben, maar ik denk voor deze kwestie heel erg overkill.

    Thread starter geertvanbragt

    (@geertvanbragt)

    voor deze misscien overkill maar heb er ook nog een die in een tabel zowel in records als kolommen moet zoeken. dus combinatie zoals men het noemt in excel horizontaal zoeken en vertikaal zoeken

    Moderator Marcel Bootsman 🇪🇺

    (@mbootsman)

    WordPress specialist sinds 2009

    @geertvanbragt Is je probleem inmiddels opgelost?

15 reacties aan het bekijken - 1 tot 15 (van in totaal 15)