salve, dopo essere riuscita a capire il problema di questo form ho provato a crearne uno simile per inserire nel database dei dati che hanno gli stessi criteri, così ho creato tabella e campi con valori impostandoli uguali a quelle che avevo già, poi ho aggiunto una pagina per gestire aggiunta, modifica, eliminazione, e sembra che sia riuscita a far funzionare tutto anche qui
ho infine aggiunto la relativa parte di codice nella pagina dove ci sono anche le altre due simili, e i dati li inserisce correttamente come array, ma quando vado a modificare non mi rimane selezionato i valori come "selected" nel form
questo è il codice della pagina del form con cui inserisco i valori
e questo il pezzo di codice relativo all'inserimento nel database
mentre questo è quello del case di modifica
ed il relativo pezzo di codice per la modifica nel database è questo
a me sembrano esattamente uguali sia nel metodo di selezione attraverso i due form sia nel metodo di inserimento/modifica valori nel database, e non riesco a trovare nessun errore, anche perché per TYPE_0 e TYPE_1 il selected=selected funziona perfettamente mentre per CHARS no; comunque, se nel form di modifica li riseleziono non c'è problema, se mi dimentico lascia l'array vuoto
se servisse le tabelle sono così composte
mentre nella tabella storie i tre campi relativi sono così
dove sbaglio? :crying:
ho infine aggiunto la relativa parte di codice nella pagina dove ci sono anche le altre due simili, e i dati li inserisce correttamente come array, ma quando vado a modificare non mi rimane selezionato i valori come "selected" nel form
questo è il codice della pagina del form con cui inserisco i valori
PHP:
<div><label id=\"personaggi\" for \"personaggi[]\"> ".CHARS." </label><select name=\"personaggi[]\" size=\"10\" multiple=\"multiple\"><option value=\"".NESSUNO."\" selected=\"selected\"> ".NESSUNO." </option>";
$u=mysql_query("SELECT nome_char FROM personaggi ORDER BY fandom, nome_char ASC", $conn);
while ($s=mysql_fetch_array($u)) {
echo "<option value=\"$s[nome_char]\">$s[nome_char]</option>";
}
echo "</select><label id=\"type0\" for \"type0[]\"> ".TYPE_0." </label><select name=\"type0[]\" size=\"10\" multiple=\"multiple\"><option value=\"".NESSUNO."\" selected=\"selected\"> ".NESSUNO." </option>";
$v=mysql_query("SELECT nome_type FROM type WHERE type='0' ORDER BY nome_type ASC", $conn);
while ($t=mysql_fetch_array($v)) {
echo "<option value=\"$t[nome_type]\">$t[nome_type]</option>";
}
echo "</select><label id=\"type1\" for \"type1[]\"> ".TYPE_1." </label><select name=\"type1[]\" size=\"10\" multiple=\"multiple\"><option value=\"".NESSUNA."\" selected=\"selected\"> ".NESSUNA." </option>";
$r=mysql_query("SELECT nome_type FROM type WHERE type='1' ORDER BY nome_type ASC", $conn);
while ($q=mysql_fetch_array($r)) {
echo "<option value=\"$q[nome_type]\">$q[nome_type]</option>";
}
echo "</select></div>
PHP:
$type0=array();
foreach ($_POST['type0'] as $valore) {
$type0[]=$valore;
}
foreach ($type0 as $x) $ty.=$x." ";
$type1=array();
foreach ($_POST['type1'] as $valore) {
$type1[]=$valore;
}
foreach ($type1 as $y) $typ.=$y." ";
$personaggi=array();
foreach ($_POST['personaggi'] as $valore) {
$personaggi[]=$valore;
}
foreach ($personaggi as $z) $pg.=$z." ";
PHP:
<div><label id=\"personaggi\" for \"personaggi[]\"> ".CHARS." </label><select name=\"personaggi[]\" size=\"10\" multiple=\"multiple\"><option value=\"".NESSUNO."\"";
if ($personaggi[0]==NESSUNO) echo "selected=\"selected\"";
echo "> ".NESSUNO." </option>";
$u=mysql_query("SELECT nome_char FROM personaggi ORDER BY fandom, nome_char ASC", $conn);
while ($s=mysql_fetch_array($u)) {
echo "<option value=\"$s[nome_char]\"";
foreach ($personaggi as $z) {
if ($z=="$s[nome_char]") echo "selected=\"selected\"";
}
echo ">$s[nome_char]</option>";
}
echo "</select><label id=\"type0\" for \"type0[]\"> ".TYPE_0." </label><select name=\"type0[]\" size=\"10\" multiple=\"multiple\"><option value=\"".NESSUNO."\"";
if ($genere_storia[0]==NESSUNO) echo "selected=\"selected\"";
echo "> ".NESSUNO." </option>";
$v=mysql_query("SELECT nome_type FROM type WHERE type='0' ORDER BY nome_type ASC", $conn);
while ($t=mysql_fetch_array($v)) {
echo "<option value=\"$t[nome_type]\"";
foreach ($genere_storia as $x) {
if ($x=="$t[nome_type]") echo "selected=\"selected\"";
}
echo ">$t[nome_type]</option>";
}
echo "</select><label id=\"type1\" for \"type1[]\"> ".TYPE_1." </label><select name=\"type1[]\" size=\"10\" multiple=\"multiple\"><option value=\"".NESSUNA."\"";
if ($note_storia[0]==NESSUNA) echo "selected=\"selected\"";
echo "> ".NESSUNA." </option>";
$r=mysql_query("SELECT nome_type FROM type WHERE type='1' ORDER BY nome_type ASC", $conn);
while ($q=mysql_fetch_array($r)) {
echo "<option value=\"$q[nome_type]\"";
foreach ($note_storia as $y) {
if ($y=="$q[nome_type]") echo "selected=\"selected\"";
}
echo ">$q[nome_type]</option>";
}
echo "</select></div>
PHP:
$type0=array();
foreach ($_POST['type0'] as $valore) {
$type0[]=$valore;
}
foreach ($type0 as $x) $ty.=$x." ";
$type1=array();
foreach ($_POST['type1'] as $valore) {
$type1[]=$valore;
}
foreach ($type1 as $y) $typ.=$y." ";
$categoria=$_POST['categoria'];
$personaggi=array();
foreach ($_POST['personaggi'] as $valore) {
$personaggi[]=$valore;
}
foreach ($personaggi as $z) $pg.=$z." ";
se servisse le tabelle sono così composte
PHP:
mysql_query("CREATE TABLE `personaggi` (
`id_char` int(11) NOT NULL auto_increment,
`type` smallint(6) NOT NULL,
`nome_type` varchar(200) NOT NULL,
PRIMARY KEY (`id_char`)
)
mysql_query("CREATE TABLE `type` (
`id_type` int(11) NOT NULL auto_increment,
`type` smallint(6) NOT NULL,
`nome_type` varchar(100) NOT NULL,
PRIMARY KEY (`id_type`)
)
PHP:
`note_storia` text NOT NULL,
`genere_storia` text NOT NULL,
`personaggi` text NOT NULL,
dove sbaglio? :crying: