• User

    Risultato query: Resource id #

    Ciao a tutti,
    sto provando a scrivere un piccolo script per generare un codice in una textarea che permetta agli utenti del mio sito di copiare e incollare nella propria firma il codice bello pronto di un'immagine linkata alla loro pagina personale. Il codice è di questo tipo

    [html][url=http://www.miosito/paginepersonali/index.php?up_pageid=$personalpage][/html]

    Per ottenere ciò ho preparato un form in html che mostra le possibili immagini a ciascuna delle quali è associato un input radio che ha come value l'URL dell'immagine. Quando l'utente clicca sul pulsante di invio viene richiamato un file php con questo codice.

    [php]<?php
    include("../../mainfile.php");
    include(XOOPS_ROOT_PATH."/header.php");
    $logid = $xoopsUser->getVar("uid");
    $_POST['banner'] = $banner;
    $qry="SELECT up_pageid FROM xoops_userpage WHERE up_uid=$logid";
    $personalpage=mysql_query($qry);
    $textarea = "<textarea>[url=http://miosito/paginepersonali/index.php?page_id=$personalpage]</textarea>";
    echo $textarea;
    echo "user id $logid";
    echo "personalpage $personalpage";
    include(XOOPS_ROOT_PATH."/footer.php");
    ?>[/php]

    Tralasciando le prime righe che occorrono per inserire la pagina nel sito (fatto con Xoops)...
    Viene definito $logid e viene richiamata l'immagine scelta $banner.
    A questo punto viene eseguita una query che vada a cercare $logid nella tabella userpage e che estragga dal campo up_pageid il valore corrispondente. A questo punto viene stampato il codice nella textarea.

    Il problema è che deve esserci qualche errore nella query perchè il risultato che ottengo per $personalpage è Resource id#399!

    Non riesco a capire dove sia l'errore...
    Nella tabella userpage il campo up_uid contiene l'id dell'utente e il campo up_pageid è un contatore autoincrement.

    Qualcuno mi può aiutare?

    Grazie
    Chiara


  • Super User

    Ciao chiara,prova così:
    [php]<?php
    include("../../mainfile.php");
    include(XOOPS_ROOT_PATH."/header.php");
    $logid = $xoopsUser->getVar("uid");
    $_POST['banner'] = $banner;
    $qry="SELECT up_pageid FROM xoops_userpage WHERE up_uid=$logid";
    $personalpage=mysql_fetch_assoc(mysql_query($qry));
    $textarea = "<textarea>[url=http://miosito/paginepersonali/index.php?page_id=$personalpage[up_pageid]]</textarea>";
    echo $textarea;
    echo "user id $logid";
    echo "personalpage $personalpage";
    include(XOOPS_ROOT_PATH."/footer.php");
    ?>[/php]p.s: nn ho capito cosa ricava la query $qry...


  • User

    Ciao Probid,
    innanzitutto grazie mille per la disponibilità e la rapidità.
    Ho provato a fare la modifica che mi hai suggerito e a questo punto il risultato che ottengo è Array.

    Cerco di spiegare meglio cosa deve fare $qry!
    La mia tabella userpage contiene tra gli altri due campi up_pageid e up_uid. Il campo up_id contiene di id degli utenti che hanno creato una pagina personale, il campo up_pageid è quello che contiene l'id della pagina (un numero crescente).
    Il mio problema è che quando l'utente chiede il codice devo aggiungere in fondo all'URL l'ID della sua pagina personale.
    Per fare questo ho pensato di richiamare l'id dell'utente loggato e con la query $qry verificare se l'utente ha creato una pagina e quindi estrarre per l'id dell'utente l'id della pagina personale corrispondente.

    A parte la questione if... che proverò a risolvere in seguito. Vorrei intanto provare a risolvere questo primo problema.

    Spero di essere riuscita a spiegarmi meglio... sono un pò fusa 🙂 ci ho lavorato tutto il pomeriggio... non sono esperta di php, uso xoops come cms ma mi è capitato qualche volta di avere la necessità di creare piccoli script come questo.

    Ancora grazie mille!
    Chiara


  • Super User

    Prova ora (avevo lasciato un pezzo :D):[php]
    <?php
    include("../../mainfile.php");
    include(XOOPS_ROOT_PATH."/header.php");
    $logid = $xoopsUser->getVar("uid");
    $_POST['banner'] = $banner;
    $qry="SELECT up_pageid FROM xoops_userpage WHERE up_uid=$logid";
    $personalpage=mysql_fetch_assoc(mysql_query($qry));
    echo "<textarea>[url=http://miosito/paginepersonali/index.php?page_id=$personalpage[up_pageid]]</textarea>";
    echo "user id $logid";
    echo "personalpage $personalpage[up_pageid]";
    include(XOOPS_ROOT_PATH."/footer.php");
    ?>[/php]


  • User

    Grazie enormemente... funziona alla perfezione :campione:

    Ne approfitto per chiederti un'ultima delucidazione.
    Nella parte del codice relativa al contenuto della textarea non ho potuto usare le normali parentesi quadre.
    Avevo da subito provato a farle precedere da un backslash come per le virgolette. Ma nel risultato venivano stampate anche le backslash.
    Allora ho sostituito le parentesi con & #91; e & #93; (senza spazi)

    è corretto? o esiste un modo più elegante?

    Un ultimo grazie... :oregonian_martini: Alla tua!

    Chiara

    p.s. da grande voglio essere come te 😉


  • Super User

    Innanzitutto non devi ringraziarmi,questo è il mio hobby e aiuto volentieri chi ne ha bisogno 🙂
    Per gli slashes basta fare così:
    [php]echo stripslashes("<textarea>[url=http://miosito/paginepersonali/index.php?page_id=$personalpage[up_pageid]];[/php]Ciao chiara! 😉
    P.S: Spero tornerai se avrai bisogno 🙂