Newsgroup: it.comp.www.php
Titolo: creare un link su un campo di una tabella per aprire la pagina di modifica record

qualcuno mi può dare una mano per fare una cosa di questo tipo:
desegno una tabella con tutti i record e sul primo campo (la chiave) voglio
creare un link che se cliccato mi faccia apparire la pagina di modifica del
mio record.
Il problema è che ho creato la tabella con tutti i record, ma non so come
creare il link alla chiave che mi apre la pagina edit.php, da cui eseguo una
query selezionando il valore ottenuto dal link cliccato nella pagina
precedente ('select * from tabella where id=valre ottenuto').
Se qulacuno mi può dare un breve esempio, gli sarei molto grato


Basta che il link lo fai così:
echo "<a href=\"edit.php?idcampo=".$idcampo."&action=edit\">link</a>";
....
nella pagina edit.php:
if(isset($_GET['action'])){
switch($_GET['action']){
case 'edit':
$q="SELECT * from tabella where id=".$_GET['idcampo']."";
$r=mysql_query($q,$db) or die(mysql_error());
//prendi le tue variabili da modificare
$nome=mysql_result($r,'0','nome');
....
//crei il form:
?>
<form action="edit2.php" method="get">
<input type="text" name="nome" value="<php echo htmlentities(stripslashes($nome)); ?>">
.....
</form>
<?php
break;
}
}
In verità lo switch si usa di solito per far compiere ad una pagina + azioni (almeno in questo ambito), sarebbe bastato isset();
Poi nella pagina edit2.php fai i tuoi controlli e fai la tua UPDATE....
CIAO

non so come creare  il link solo sulla colonna chiave: questo č il mio
codice che ovviamente non funziona. se potete darci un'occhiata ve ne sarei
molto grato...
function
ViewRecordInGrid($host_mysql,$utente_mysql,$password_mysql,$DBName_mysql,$Ta
bleName_mysql)
{
 $CampoChiave='codice';
 $SqlQuery_mysql="select * from $TableName_mysql";
  // Connessione al database
 $connessione = mysql_connect($host_mysql,$utente_mysql,$password_mysql);
  // Selezione del database
  mysql_select_db($DBName_mysql);
  // Esecuzione di una query SQL
  $risultato = mysql_query($SqlQuery_mysql);
 // restituzione dei record trovati (Stampa dei risultati in HTML)
  print "<table >\n"; /* inizia la tabella */
 $campi = mysql_list_fields($DBName_mysql,$TableName_mysql,$connessione);
//inizio creazione del titolo dei campi
 $colonne = mysql_num_fields($campi);
 print "<tr>";
  // inserisce la colonna per fare le modifiche dei record
  echo "<td>MODIFICA</td>";
  for ($i=0; $i < $colonne; $i++)
  {
    $TitoloColonna=mysql_field_name($campi, $i);
     echo "<td>$TitoloColonna</td>";
  }
  print "</tr>";
//fine creazione del titolo dei campi
  @$Campo=string;
  $Campo=trim($Campo);
  while ($linea = mysql_fetch_array($risultato, MYSQL_ASSOC))
 {
  print "\t<tr>\n";
     foreach ($linea as $valore_colonna)       // crea tutti i campi del
record
   {
        if(mysql_field_name($risultato,0)==$CampoChiave)                //se
č il campo chiave, creare il link    (if $Campo==CampoChiave.value
$idcampo=Campo)
      $Campo="<a
href=edit.php?idcampo=$valore_colonna>$valore_colonna</a>";//lascio tutto
come lo scrivo
    else
     $Campo=$valore_colonna;        //lascio tutto come lo scrivo
     print "\t\t<td>$Campo</td>\n";    //per cambiare lo stile del font
usare  ( U =sottolineato; I=corsivo; B=grassetto)   --> print
"\t\t<td><u><b><i>$Campo</u></i></b></td>\n";
     }
  print "\t</tr>\n";   // crea un nuovo record
 }
 print "</table>\n";      /* finisce la tabella */
  // Liberazione delle risorse del risultato
  mysql_free_result($risultato);
  // Chiusura della connessione
  mysql_close($connessione);
}

 come lo scrivo
Ma il link viene generato? Che collegamento ti da?
Prova a scriverlo così:
$Campo="<a href=\"edit.php?idcampo=".$valore_colonna.">".$valore_colonna."</a>";
E facci sapere...
CIAO