Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Visualizzare record da var SESSION

    Ho la necessità di visualizzare tutti i record appartenenti ad un determinato utente all'interno di un'area riservata dopo che l'uttente si è loggato.
    Ho eseguito una query che estrae i record riprendendoli da una session:
    $query = "SELECT id,autore FROM articoli WHERE autore='$_SESSION[username]';
    Purtroppo non viene visualizzata.
    Vi chiedo cortesemente aiuto.
    Grazie

  2. #2
    Che messaggi di errore vengono visualizzati?
    Se stampi la query SQL è corretta?

  3. #3
    Prova

    mysql_query('SELECT id,autore FROM articoli WHERE autore='.$_SESSION[username].' ');

    la tabella e i campi sono corretti?

    occhio ai puntini e agli apici!!!

    mi ero dimenticato mysql_query, pardon!!

  4. #4
    Ciao Roberto il tuo metodo purtoppo non funziona mi dice: che la variabile non è definita: e che la query è vuota.
    Posto il codice:


    <?php
    session_start();
    if (!isset($_SESSION['username'])) {

    echo 'Accesso non consentito. Stai provando ad accedere direttamente alla pagina "cancella.php"....Torna indietro ed accedi corretamente al Blog !!!';

    exit;
    }


    ?>
    <?php
    echo "<hr>";
    echo "".$_SESSION["username"]."
    ";



    $pagename = "Cancella";

    require_once ("menu.php");

    $link = mysql_connect ("localhost", "root", "") or die ("connessione non riuscita");

    mysql_select_db ("blog") or die ("Selezione del DB non riuscita: " . mysql_error());

    if($_POST)
    {
    $ids = isset($_POST['id']) ? $_POST['id'] : array();
    elimina_record($ids);
    }
    elseif(isset($_GET['id']))
    {
    elimina_record(array($_GET['id']));
    }
    else
    mostra_lista();

    function mostra_lista()
    {
    // mostro un eventuale messaggio
    if(isset($_GET['msg']))
    echo ''.htmlentities($_GET['msg']).'

    ';

    // preparo la query



    mysql_query ("SELECT id,autore FROM articoli WHERE autore='.$_SESSION[username].' ");


    // invio la query
    $result = mysql_query($query);

    // controllo l'esito
    if (!$result) {
    die("Errore nella query $query: " . mysql_error());
    }

    echo '
    <form name="form1" method="post" action="">
    <table border="1">
    <tr>
    <th></th>
    <th>Nome</th>
    <th></th>
    </tr>';

    while ($row = mysql_fetch_assoc($result))
    {
    $nome = htmlentities($row['autore']);

    // preparo il link per la modifica dei dati del record
    $link = $_SERVER['PHP_SELF'].'?id=' . $row['id'];

    echo "<tr>
    <td><input name=\"id[]\" type=\"checkbox\" value=\"$row[id]\" /></td>
    <td>$nome</td>
    <td><a href=\"$link\">elimina</a></td>
    </tr>";
    }

    echo '</table>


    <input type="submit" name="Submit" value="Elimina record selezionati" />
    </form>';

    // libero la memoria di PHP occupata dai record estratti con la SELECT
    mysql_free_result($result);

    // chiudo la connessione a MySQL
    mysql_close();
    }

    function elimina_record($ids)
    {
    // verifico che almeno un id sia stato selezionato
    if(count($ids) < 1)
    {
    $messaggio = urlencode("Nessun record selezionato!");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    exit;
    }

    // per precauzione converto gli ID in interi
    $ids = array_map('intval',$ids);

    // creo una lista di ID per la query
    $ids = implode(',',$ids);

    // preparo la query
    $query = "DELETE FROM articoli WHERE id IN ($ids)";

    // invio la query
    $result = mysql_query($query);

    // controllo l'esito
    if (!$result) {
    die("Errore nella query $query: " . mysql_error());
    }

    // conto il numero di record cancellati
    $num_record = mysql_affected_rows();

    // chiudo la connessione a MySQL
    mysql_close();

    $messaggio = urlencode("Numero record cancellati: $num_record");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    }
    ?>

  5. #5
    mysql_query ("SELECT id,autore FROM articoli WHERE autore='.$_SESSION[username].' ");
    // invio la query $result = mysql_query($query);
    $query dove lo prende?

    la riga chi ti ho messo io va così

    $result = mysql_query("SELECT id,autore FROM articoli WHERE autore='.$_SESSION[username].' ")

    oppure

    $query="SELECT id,autore FROM articoli WHERE autore='".$_SESSION[username]."' ";
    $result = mysql_query($query)

  6. #6
    Ok Roberto la query sembra funzionare correttamente, visualizza e mi propone di eliminare solo i record dell'utente loggato.
    L'unico problema è che nella parte superiore della pagina mi compare il seguente messaggio di errore:
    Notice: Use of undefined constant username - assumed 'username' in C:\Programmi\EasyPHP 2.0b1\www\mizzoni\blog\cancella.php on line 46

    nella riga 46 c'è proprio la query da te consigliata:

    $query="SELECT id,autore FROM articoli WHERE autore='".$_SESSION[username]."' ";

    Grazie

  7. #7

  8. #8
    Filippo il manuale già l'ho letto......nella tua prima risposta mi hai detto:
    "Che messaggi di errore vengono visualizzati?Se stampi la query SQL è corretta?"

    Ora ti ho detto l'errore e mi rispondi:

    "Ti suggerisco di inizirae leggendo il manuale ufficiale"

    Ti ringrazio per avermi risposto, ma francamente le tue risposte sono un pochino inutili....

  9. #9
    Si, hai assolutamente ragione. In futuro eviterò di suggerirti di leggere delle pagine del manuale in cui viene descritto esattamente il motivo per cui ottieni messaggi tipo "Notice: Use of undefined constant" ...

  10. #10
    Ok Filippo non è sicuramente il tuo caso ma sui Forum è anche pieno di persone che prima di colpire l'obiettivo ti fanno girare a vuoto per ore e ore.
    Grazie della tua disponibilità.

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.