Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Variabele in MySQL TEXT-field wordt niet weergegeven.

Jan_32
6 antwoorden
  • Ik probeer een I-frame gebruiksaanwijzing in de browser te tonen, maar een bepaalde variabele (".$user." ) wordt niet getoond. Dit is wat ik doe:

    In het TEXT-field van de tabel staat:
    [code:1:d508a2506b]<!– begin code –>
    <DIV ALIGN=CENTER>
    <IFRAME frameborder=\"0\" src="http://www.desite.nl/tools/tool1.php?promotor=".$user."&bgcolor=FFFFFF&limit….etc
    [/code:1:d508a2506b]
    Hierbij wordt promotor=".$user." alleen maar exact weergegeven. Dus de bestaande variabele voor $user ( de gebruikersnaam )wordt niet ingevoegd.

    De bovenstaande HTML-insructie wordt als volgt uit de database gehaald:[code:1:d508a2506b]$sql_1="SELECT * FROM `promotor_tools` WHERE id='$tool_id'";

    $resultaat=mysql_query($sql_1); // Voer sql code uit
    if (mysql_num_rows($resultaat) >0)
    {
    while ($rij=mysql_fetch_array($resultaat))
    {

    $bericht_verzender=$rij["html"];
    $tool_naam=$rij["naam_2"];
    $tool_omschrijving=$rij["omschrijving"];
    etc, etc, etc.[/code:1:d508a2506b]
    $rij["html"] bevat de instructies die op het scherm moeten worden getoond en ook per email worden verzonden.
    Op het scherm tonen doe ik als volgt:
    [code:1:d508a2506b]<TEXTAREA ROWS="10" COLS="40" STYLE='WIDTH:600;HEIGHT:400' >
    <? echo $bericht_verzender ?>
    </TEXTAREA>[/code:1:d508a2506b]
    Ik voor =".$user." al verschillende varianten geprobeerd: $user, '$user', <? echo $user ?> maar niets helpt tot nu toe.
    Weet iemand van jullie hoe je dit oplost?
  • Ik zou eens heel goed gaan nadenken over je opzet. PHP variabelen in een table field gaat natuurlijk nooit werken.
  • <?php echo $user ?>
  • promotor=<?php $user ?> werkt helaas ook niet. Het wordt ook exact weergegeven.

    Ik wil wel nadenken over mijn opzet maar weet geen betere oplossing? De tool-instructies staan in de MySql-tabel, leek mij een handige methode. Ik heb er inderdaad niet over nagedacht of het zou werken omdat ik die ervaring niet heb. Nu het zover is blijkt het misschien niet te kunnen? Heb je een alternatief? Is TINYTEXT een alternatief?

    In elk geval bedankt dat jullie de moeite hebben genomen even te reageren.
  • probeer html zoveel mogelijk uit de database te houden (daar hebben ze ook templates voor uitgevonden, als je je html er uit haalt kan je het als volgt aanpakken:
    [code:1:5d74fb3478]
    ———————
    | id | gebruiker |
    |—–|————|
    | 1 | Hoi |
    | 2 | Doei |
    ———————
    [/code:1:5d74fb3478]

    en dan haal je gewoon de gebruikersnaam dus:

    $result = mysql_query("SELECT gebruiker FROM gebruikers WHERE id=2");
    $eind = mysql_result($result);

    en dan kan $eind echoën ..
  • De reden waarom je de complete HTML in de database plaatst, is me ook niet helemaal duidelijk. Maar als je wil weten hoe je het kan oplossen, dan is dat als volgt.

    Plaats placeholders in de HTML
    [code:1:ee3f29bf6f]
    <!– begin code –>
    <DIV ALIGN=CENTER>
    <IFRAME frameborder=\"0\" src="http://www.desite.nl/tools/tool1.php?promotor=%s&bgcolor=FFFFFF&limit….etc
    [/code:1:ee3f29bf6f]
    En vervang deze met (s)printf in je PHP code
    [code:1:ee3f29bf6f]
    printf($string_uit_db, $user);
    [/code:1:ee3f29bf6f]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.