salve a tutti, ho creato un database che contiene 3 tabelle, ovvero 'layout'(id_lay, nome_lay), 'box'(id_box,nome_box) e 'sum'(sum_id,sum_id_layout,sum_id_box), quest'ultima è una tabella che contiene gli id delle altre due.
il primo step è stato quello di creare una pagina con 2 select, in cui l'utente poteva scegliere tra i valori 'nome' presenti nelle tabelle 'layout' e 'box' e cliccando su invia, il risultato preso via post veniva inviato alla tabella 'sum' in cui però non venivano inseriti i valori 'nome' bensì gli id corrispondenti.vi mostro il codice:
html:
php:
come potete vedere ho usato le classi. Fino a qui il programma funziona. Dopo ciò, nella pagina 'modifica_cancella.php' faccio visualizzare una tabella dove mostro all'utente le scelte fatte, ovvero i record che ha inserito nella tabella 'sum' ma non mostrando gli id bensì i nomi corrispettivi, così da avere un quadro chiaro di ciò che contiene la tabella. Anche fin qui tutto quadra. In questa tabella ho inserito 2 link, uno per la cancellazione del record, che funziona perfettamente, e uno per la modifica del record... Il problema giunge qui, spero che qualcuno possa aiutarmi perchè davvero mi sto arrovellando il cervello...
posto il codice della pagina 'modifica_cancella.php':
come vedete, ho creato un form dove, quando clicca sul link, l'utente vede visualizzati i valori 'nome' presi corrispondenti all'id del record. il problema è che non so come fare avvenire la modifica, in quanto modificando i valori con altri e inviando al database, dovrebbero cmunque ricomparire gli id al posto dei valori 'nome'... spero possiate aiutarmi perchè è tre giorni che perdo il sonno!!!! :crying:
il primo step è stato quello di creare una pagina con 2 select, in cui l'utente poteva scegliere tra i valori 'nome' presenti nelle tabelle 'layout' e 'box' e cliccando su invia, il risultato preso via post veniva inviato alla tabella 'sum' in cui però non venivano inseriti i valori 'nome' bensì gli id corrispondenti.vi mostro il codice:
html:
HTML:
<!DOCTYPE html>
<html>
<head>
<style>
#sel{width:157px;}
</style>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Form Select</title>
</head>
<body>
<h1> Scegliere Box e Layout</h1>
<form action="formSelect_To.php" method="POST">
<center><table></center>
<th> <label for="select1"> Posizione Layout </label> </th>
<td colspan="3"> <select name="layout" id="sel">
<option value="1" >HEADER</option>
<option value="2">MAIN</option>
<option value="3">SIDEBARDX</option>
<option value="4" >SIDEBARSX</option>
<option value="5">FOOTER</option>
</select>
</td>
<tr>
<th> <label for="select2"> Box da inserire </label> </th>
<td colspan="3"> <select name="box" id="sel">
<option value="1" >CONTATTI</option>
<option value="2">MAPPA</option>
<option value="3">ARTICOLI</option>
<option value="4" >RICERCA</option>
</select>
</td>
</tr>
<!-- tasto per iviare il form -->
<td colspan="2"> <center><input type="submit" name="tasto" value="invia"/></center> </td>
</tr>
</table>
</form>
</body>
</html>
php:
PHP:
<?php
include('classes/classeBase.php');
?>
<?php
class dati{
public $box;
public $layout;
public $id_layout;
public $id_box;
public function save(){
$query="INSERT INTO sum (sum_id_layout,sum_id_box)
VALUES ('".$this->layout."','".$this->box."')";
if (($result = mysql_query($query)))
{
echo ("Inserimento riuscito!"."<br />");
}
else{
echo ("Errore nell'inserimento: ".mysql_error());// specifica gli errori
}
}
public function show(){
$query="SELECT box.nome_box, layout.nome_lay, sum.sum_id
FROM box
INNER JOIN sum
ON box.id_box = sum.sum_id_box
INNER JOIN layout
ON layout.id_lay = sum.sum_id_layout
ORDER BY sum.sum_id ASC";
$res = mysql_query($query) or die('Errore...'. mysql_error());
if($res && mysql_num_rows($res)>0){
while($row=mysql_fetch_assoc($res)){
$id=$row['sum_id'];
echo "<div class='container'>";
echo "<div class='row'>";
echo "<div class='span12'>";
echo "<link href='../bootstrap/css/bootstrap.min.css' rel='stylesheet'>";
echo "<table class='table table-hover table-bordered table-condensed'><thead><tr><th>ID</th><th>POSIZIONE</th><th>BOX</th><th>ELIMINA</th><th>MODIFICA</th></tr></thead>";
echo "<tbody><tr><td>".$row['sum_id']."</td>";
echo "<td>".$row['nome_lay']."</td>";
echo "<td>".$row['nome_box']."</td>";
echo "<td><a rel='nofollow' href='modifica_cancella.php?del=$id' onclick=\"return(confirm('stai eliminando $id'))\" >Clicca per eliminare</a></td>";
echo "<td><a rel='nofollow' href='modifica_cancella.php?mod=$id'>Vai al form per la modifica</a></td></tr></tbody></table>";
echo "</div>";
echo "</div>";
echo "</div>";
}
} else{
echo "nessun risultato";
}
mysql_free_result($res); // libero la memoria di PHP occupata dai record estratti con la SELECT
}
/*public function delete(){
$query="DELETE FROM sum WHERE sum_id='44'";
if (($result = mysql_query($query)))
{
echo ("Cancellazione riuscita"."<br />");
}
else{
echo ("Errore nella cancellazione: ".mysql_error());// specifica gli errori
}
}*/
}
?>
<?php
$db = new MySqlClass();
$db->connetti();
$dati = new dati();// definizione dell'istanza (richiama la class)
$dati->layout = $_POST['layout'];
$dati->box = $_POST['box'];
$dati->save();
//$dati->delete();
$dati->show();
?>
come potete vedere ho usato le classi. Fino a qui il programma funziona. Dopo ciò, nella pagina 'modifica_cancella.php' faccio visualizzare una tabella dove mostro all'utente le scelte fatte, ovvero i record che ha inserito nella tabella 'sum' ma non mostrando gli id bensì i nomi corrispettivi, così da avere un quadro chiaro di ciò che contiene la tabella. Anche fin qui tutto quadra. In questa tabella ho inserito 2 link, uno per la cancellazione del record, che funziona perfettamente, e uno per la modifica del record... Il problema giunge qui, spero che qualcuno possa aiutarmi perchè davvero mi sto arrovellando il cervello...
posto il codice della pagina 'modifica_cancella.php':
PHP:
<?php
include('classes/classeBase.php');
$db = new MySqlClass();
$db->connetti();
?>
<?php
if (isset($_GET['del'])){//cliccato su ELIMINA
$id=$_GET['del'];//leggo l'id trasmesso
$q="DELETE FROM sum WHERE sum_id=$id";
$ris = mysql_query($q) or die('Errore...'. mysql_error());
echo "eliminato il record $id";
//qui il ritorno automatico alla pagina in cui si visualizza l'elenco
echo "<meta http-equiv='Refresh' content='3; URL=formSelect_To.php'>";
}
if (isset($_GET['mod'])){
$id=$_GET['mod'];//leggo l'id trasmesso
$q1="SELECT b.nome_box,l.nome_lay
FROM layout l, box b, sum s
WHERE b.id_box=s.sum_id_box
AND l.id_lay=s.sum_id_layout
AND s.sum_id=$id";
$ris1=mysql_query($q1);
$row = mysql_fetch_assoc($ris1);
$nome_lay= $row['nome_lay'];
$nome_box= $row['nome_box'];
}
?>
//e qui il form di modifica
//nei campi di input si visualizza il valore originale
<!-- form modifica -->
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST" name="modifica">
<p>
<input name="id" type="hidden" id="id" value="<?php echo $id;?>">
<br>
<input name="nome_lay" type="text" id="nome_lay" value="<?php echo $nome_lay;?>">
<br>
<input name="nome_box" type="text" id="nome_box" value="<?php echo $nome_box;?>">
<br>
</p>
<p>
<input name="modifica" type="submit" id="modifica" value="modifica">
</p>
</form>
come vedete, ho creato un form dove, quando clicca sul link, l'utente vede visualizzati i valori 'nome' presi corrispondenti all'id del record. il problema è che non so come fare avvenire la modifica, in quanto modificando i valori con altri e inviando al database, dovrebbero cmunque ricomparire gli id al posto dei valori 'nome'... spero possiate aiutarmi perchè è tre giorni che perdo il sonno!!!! :crying: