Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    4

    [PHP e MYSQL] Problema script consultazione Database

    Salve a tutti, è il primo post che faccio e spero di aver azzeccato il posto giusto.
    Moltissimo materiale pubblicato nel sito mi è stato utile per risolvere i vari problemi che ho riscontrato, ma ad un paio non ho trovato soluzione. Provo a spiegarvi, sperando di essere abbastanza chiara.

    Sto realizzando un sito con Joomla, devo impostare due pagine esterne che permettano la gestione di una serie di materiale inserito.
    La prima pagina deve creare una lista del materiale inserito, che comprende solo alcuni dati. In questa lista il titolo dev'esse un link che porterà alla seconda pagina.

    Il codice che ho scritto è il seguente:

    Codice PHP:
    <?
    //Record per pagina
    $rpp 10;
    $database = &JFactory::getDBO();
    //Calcola il numero totale dei record
    $sql 'SELECT recordtime, cognome_pay, nome_pay, tit_abstract, status, workshop FROM #__chronoforms_abstractins ORDER BY recordtime';
    $database->setQuery($sql);
    $tot $database->loadResult();
    if(
    $tot) {
    //Numero delle pagine
    $np ceil($tot $rpp);
    $sql =  'SELECT recordtime, cognome_pay, nome_pay, tit_abstract, status, workshop FROM #__chronoforms_abstractins ORDER BY recordtime';
    for(
    $pag=0$pag $np$pag++) {
    $database->setQuery($sql$pag*$rpp$rpp);
    $results $database->loadObjectList();
    if(!
    $results) {
    echo 
    $database->getErrorMsg();
    break;
    }
    echo 
    '
    Pagina '
    ,$pag+1,'
    '
    ;
    foreach(
    $results as $r) {
    echo
    '<table width="600" border="1" cellspacing="2" cellpadding="2">
    <tr>
    <td width="115" class="titolo_tababst">Data</td>
    <td width="485" class="testo_tababstr">'
    ,$r->recordtime,'</td>
    </tr>
    <tr>
    <td width="115" class="titolo_tababst">Presenting Author</td>
    <td width="485" class="testo_tababstr">'
    ,$r->cognome_pay,' ',$r->nome_pay,'</td>
    </tr>
    <tr>
    <td width="115" class="titolo_tababst">Abstract Title</td>
    <td width="485" class="testo_tababstr"> [url="jumi_includes/view.php?tit_abstract=$row[tit_abstract]"]'
    ,$r->tit_abstract,'[/url]</td>
    </tr>
    <tr>
    <td width="115" class="titolo_tababst">Status</td>
    <td width="485" class="testo_tababstr">'
    ,$r->status,'</td>
    </tr>
    <tr>
    <td width="115" class="titolo_tababst">Workshop</td>
    <td width="485" class="testo_tababstr">'
    ,$r->workshop,'</td>
    </tr>
    <tr>
    <td colspan="2" class="interr"></td>
    </tr>
    </table>'
    ;
    }
    }
    }
    ?>
    Con questo codice la pagina viene creata correttamente con la rispettiva lista.
    Cliccando sul titolo si dovrebbe aprire una pagina esterna, e qui "casca l'asina" cioè io.
    Ho impostato la pagina in questo modo (tralasciando la parte di connessione al DB):

    Codice PHP:
    //Selezione abstract per titolo
    $titolo=$_GET['tit_abstract'];
    //Query su tutto il record
    $query "SELECT cognome_pay, nome_pay, mail_pay, istit_pay, altri_autori, tit_abstract, text_abstract FROM jos_chronoforms_abstractins WHERE tit_abstract = '$titolo'";
    $results mysql_query($query$db) or die('query toppata');
    $row mysql_fetch_assoc($results);
    if (!
    $results) {
    return 
    "Non ci sono dati da stampare";
    }
    if(
    $results) {
    echo
    '<form action="" method="post" name="all_abs" id="all_abs">
    <table width="600" border="1" cellspacing="2" cellpadding="2">
    <tr>
    <td width="150" class="titolo_tababst">Presenting Author</td>
    <td width="450" class="testo_tababstr">'
    ,$results->cognome_pay,' ',$results->nome_pay,'</td>
    </tr>
    <tr>
    <td width="150" class="titolo_tababst">E-mail</td>
    <td width="450" class="testo_tababstr"><a href=mailto:$row[mail_pay]>'
    ,$r->mail_pay,'</a></td>
    </tr>
    </table>
    </form>'
    ;
    }
    ?> 
    Ora, cliccando sul titolo si apre effettivamente una pagina con il form, ma non vengono visualizzati i risultati della query.

    Credo che i problemi siano principalmente qui:

    - nel primo script:
    Codice PHP:
    <td width="485" class="testo_tababstr"> [url="jumi_includes/view.php?tit_abstract=$row[tit_abstract]"]',$r->tit_abstract,'[/url]</td
    - nel secondo:
    Codice PHP:
    if($results) {
    echo
    .......
    .......
    .......
    <
    td width="450" class="testo_tababstr">',$results->cognome_pay,' ',$results->nome_pay,'</td
    Sinceramente non so come risolvere, spero che voi - decisamente molto più esperti di me - possiate indicarmi una soluzione.
    Grazia fin d'ora a chi risponderà
    Micaela

  2. #2
    un po di confusione c'e'. nella prima query viene utilizzato il result set come oggetto. Nella seconda (quella che non va) come array. quindi andra' richiamato come array. Intanto utilizza il tag php esteso che ti farai pure un favore.

    Prova a modificarlo in questo modo:

    Codice PHP:
    <?php
    //Selezione abstract per titolo
    $titolo=$_GET['tit_abstract'];
    //Query su tutto il record
    $query "SELECT cognome_pay, nome_pay, mail_pay, istit_pay, altri_autori, tit_abstract, text_abstract FROM jos_chronoforms_abstractins WHERE tit_abstract = '$titolo'";
    $results mysql_query($query$db) or die('query toppata');
    $row mysql_fetch_assoc($results);

    if (!
    $results) {
              return 
    "Non ci sono dati da stampare";
              } else { 
    ?>

    <form action="" method="post" name="all_abs" id="all_abs">
    <table width="600" border="1" cellspacing="2" cellpadding="2">
    <tr>
    <td width="150" class="titolo_tababst">Presenting Author</td>
    <td width="450" class="testo_tababstr"><?php echo $row['cognome_pay'] ." " .$row['nome_pay']; ?> </td>
    </tr>
    <tr>
    <td width="150" class="titolo_tababst">E-mail</td>
    <td width="450" class="testo_tababstr">[email="<?php echo $row['mail_pay'?>"] <?php echo $row['mail_pay'?>[/email]</td>
    </tr>
    </table>
    </form>;

    <?php ?>

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    4
    Grazie Piero per la risposta velocissima.
    Ho provato a sostituire il codice come hai segnalato tu, ma ancora non funziona.
    Comincio a credere che il problema sia ancora più a monte ovvero nella pagina precedente,

    Codice PHP:
    [url="jumi_includes/view.php?tit_abstract=$row[tit_abstract]"]',$r->tit_abstract,'[/url
    sembra che non "passi" il titolo come chiave per aprire i dati corrispondenti.
    Guardando su una guida che ho trovato nel sito ho visto che il link è scritto così:

    Codice PHP:
    "<a href=\"view.php?id=$row[id]\"></a> 
    Ho provato ad inserire le due \ come nell'esempio ma quando clicco sul titolo mi dice che non trova la pagina....

    Ho provato a modificare il link anche in questo modo:

    Codice PHP:
    [url="jumi_includes/view.php?tit_abstract=$r[tit_abstract]"]',$r->tit_abstract,'[/url
    visto che nel primo script uso $r per visualizzare i risultati della query, ma ancora non ci cavo i piedi e comincio a sentirmi una frana di prima categoria

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    4
    Qualche passo avanti l'ho fatto.
    Lo script di Piero funziona... purchè io tolga dallo script della seconda pagina $titolo=$_GET['tit_abstract']; e - nella query - WHERE tit_abstract = '$titolo'

    Naturalmente nel secondo form riesco a visualizzare solo il primo record inserito, qualsiasi titolo io clicchi nella pagina precedente...

    Sospetto quindi che l'errore sia da ricercare in entrambe le pagine.
    Se qualcuno ha qualche idea......
    Grazie
    Micaela

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    4
    Sono riuscita a risolvere riscrivendo tutte e due le pagine....
    Se può essere utile posto il codice....

  6. #6
    Originariamente inviato da Miki_Bo
    Sono riuscita a risolvere riscrivendo tutte e due le pagine....
    Se può essere utile posto il codice....
    bene se hai risolto .... ma credo che il codice che vai ad implementare su joomla non sia di molta utilita'. Troppi vincoli al programma (joomla) e poi nel primo script quell'apertura con short tag del php la dice lunga sul progetto.....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.