Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    114

    pannello di amministrazione con php e mysql

    ciao a tutti,
    sto realizzando un piccolo pannello di amministrazione con php e mysql:

    in una prima pagina uso questo codice per elencare ordinatamente tutti i record presenti nel db:
    <?
    include("config.inc.php");
    $query = "SELECT * FROM nome_tabella";
    $result = mysql_query($query, $db);
    while ($row = mysql_fetch_array($result)){
    $id==$row['id'];
    $risultati="<form method=\"POST\" action=\"verifica.php\">
    <INPUT TYPE=\"HIDDEN\" NAME=\"$id\" VALUE=\"$id\">
    <tr><td class=\"riga_mese\" align=\"center\">$row[mese]</td><td class=\"riga_titolo\" align=\"center\">$row[nome]</td><td align=\"center\"><input type=\"submit\" value=\"modifica\" name=\"B1\"></td></tr>
    </form>";
    echo $risultati;
    }
    ?>


    fin qui tutto ok...e ad ogni riga corrisponde un tasto modifica alla pressione del quale la action del form mi rimanda ad una pagina verifica.php a cui viene inviata una variabile $id grazie ad un campo hidden.


    ora...in questa pagina verifica.php, vorrei richiamare dal db solo i record il cui id corrisponda a quello inviato via hidden dal form della pagina precedente. uso questo codice :

    <?php
    $id=$_POST['id'];
    include("config.inc.php");
    $query = "SELECT * FROM nome_tabella WHERE id = '$id'";
    $result = mysql_query($query, $db);
    while ($row = mysql_fetch_array($result)){
    $risultati="<form method=\"POST\" action=\"salva_modifica.php\">
    <INPUT TYPE=\"HIDDEN\" NAME=\"$row[id]\" VALUE=\"$row[id]\">
    <tr><td align=\"center\">Nome del Viaggio</td><td align=\"center\">
    <input type=\"text\" name=\"$row[nome]\" value=\"$row[nome]\" size=\"20\">
    </td></tr></form>";
    echo $risultati;
    }
    ?>


    ...quello che vorrei fare è richiamare tutti i record corrispondenti a quello inviato via hidden dal form della pagina precedente e inserirli in delle caselle di testo (<input type="text">
    ) in modo da renderli editabili per poi inviarli alla pagina salva_modifica.php in cui dovrei salvare le modifiche nel db (..ma a questa parte non ci sono ancora arrivato..)...

    il problema è che non mi stampa nulla a video!!

    qualcuno saprebbe indicarmi dove sbaglio??

    grazie mille :-)

  2. #2
    prova a fare un bel
    Codice PHP:
    print_r($_POST
    nella pagina a cui viene inviato il form, perche' secondo me non gli arriva nessun id.

    infatti nella prima pagina tu fai
    Codice PHP:
    $id==$row['id']; 
    che non e' un assegnamento ma un confronto! la variabile $id non ha nessun valore (sempre che sia definita).

    prova a correggere e dicci se funziona

    danno

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    114
    ciao,
    prima di tutto grazie per il suggerimento!!
    ora funziona però c'è questo piccolo difetto:
    ho dichiarato nella pagina verifica.php la $id in questo modo :


    <?php
    $id=print_r($_POST);
    include("config.inc.php");
    $query = "SELECT * FROM nome_tabella WHERE id = '$id'";
    $result = mysql_query($query, $db);
    while ($row = mysql_fetch_array($result)){
    $risultati="<form method=\"POST\" action=\"salva_modifica.php\">
    <INPUT TYPE=\"HIDDEN\" NAME=\"$row[id]\" VALUE=\"$row[id]\">
    <tr><td align=\"center\">Nome del Viaggio</td><td align=\"center\">
    <input type=\"text\" name=\"$row[nome]\" value=\"$row[nome]\" size=\"20\">
    </td></tr></form>";
    echo $risultati;
    }
    ?>


    ...l'unico problema è che prima di elencarmi i campi editabili, mi stampa a video :

    Array ( [B1] => modifica ) ....dove B1 è il parametro name dell' <input type=\"submit\" value=\"modifica\" name=\"B1\"> contenuto nel form della prima pagina.

    sapresti suggerirmi come evitare che appaia a video??

    grazie mille!! :-)

  4. #4
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    ovviamente se lasci il print_r lui stampa a video l'array $_POST.

    sostituiscilo con
    Codice PHP:
    $id $valore 
    al posto di $valore metti quello che deve essere (non ho letto prima quindi non saprei consigliarti ma tu lo sai di sicuro se hai detto che funziona).


  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    114
    ciao,
    ...scusa la mia blasfema ignoranza...ma così torno al codice iniziale:

    $id=$_POST[id];

    ..cioè quello che mi genera una pagina bianca!!

  6. #6
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    guarda...non ho seguito la discussione ma print_r restituisce la visualizzazione di un array, ma nessun valore....quindi quell'assegnazione (=) non serve a nulla.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    114
    ciao,
    ..nella speranza che qualcuno sappia illuminarmi :

    - se nella pagina verifica.php dichiaro $id=$_POST[id]; il risultato è una pagina bianca

    - se invece nella pagina verifica.php dichiaro $id=print_r($_POST); il risultato è quello voluto (cioè la paginazione dei dati in campi editabili) ma con una scritta a video :
    Array ( [2] => [B1] => modifica ) (...prodotta dalla funzione print_r)

    come potrei risolvere??

    grazie mille

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.