abbi pazienza ma non capisco in pratica cosa devo fare?
devo modificare sia l'invio sia la ricerca delle opere?
come?
![]()
abbi pazienza ma non capisco in pratica cosa devo fare?
devo modificare sia l'invio sia la ricerca delle opere?
come?
![]()
Dunque, pensa al concetto "TRUE/FALSE" ovvero "vero o falso"
In questo caso il numero 1 vuol dire "vero" mentre il numero 0 sta per "falso"
Quando inserisci i record tu hai i cinque checkbox
1. Amicizia
2. Amore
3. Natura
4. Storie di vita
5. Vario
Se l'utente ( stiamo ancora parlando dell'inserimento ) seleziona i checkbox Natura e Vario, nel database i dati si andranno ad inserire in questo modo
dove, ripeto, 1 sta vero ( quindi selezionato ) e 0 sta per falso ( non selezionato, quindi non riguardante questo record )Codice PHP:amicizia | amore | natura | storiedivita | Vario |
0 | 0 | 1 | 0 | 0 |
Ora, nella ricerca, se l'utente seleziona come soggetto "amore"
fai fare una query di questo tipo
select * from tabella where amore=1
e la ricerca di estrapolerà tutti i dati dove amore è uguale a 1 ovvero dove amore è uguale a vero
spero di essermi spiegato
Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
Mac Future User , Ventilatore for PC Cooler user , - dry is coming -
quindi questo come dovrebbe essere? cosi non va bene, no?
echo "
Scelga il soggetto della sua opera (anche più di uno):</P>";
echo "Amicizia: <input type=\"checkbox\" name=\"soggetto[]\" value=\"amicizia\" />
";
echo "Amore: <input type=\"checkbox\" name=\"soggetto[]\" value=\"amore\" />
";
echo "Natura: <input type=\"checkbox\" name=\"soggetto[]\" value=\"natura\" />
";
echo "Storie di vita: <input type=\"checkbox\" name=\"soggetto[]\" value=\"storie di vita\" />
";
echo "Vario: <input type=\"checkbox\" name=\"soggetto[]\" value=\"vario\" />
";
e neanche questo?
$id1= $_REQUEST['id'];
$autore1= $autore;
$genere1= $genere;
$soggetto1= $soggetto;
$composizione1= $composizione;
$sql = "INSERT INTO opere (id,autore,genere,soggetto,composizione) VALUES('$id1','$autore1','$genere1','$soggetto1',' $composizione1')";
Infine anche questo per la ricerca, ma come????
function visualizzaform(){
echo "<form name=\"search\" action=\"soggetto.php\" method=\"post\">Cerca per soggetto dell'opera: <select name=\"filter\" size=\"1\">";
echo "<option name=\"soggetto\" value=\"1\">Amicizia</option>";
echo "<option name=\"soggetto\" value=\"2\">Amore</option>";
echo "<option name=\"soggetto\" value=\"3\">Natura</option>";
echo "<option name=\"soggetto\" value=\"4\">Storie di Vita</option>";
echo "<option name=\"soggetto\" value=\"5\">Vario</option>";
echo "</select>";
echo "<input type=\"submit\" name=\"cerca\" value=\"cerca\" />
";
echo "</form>";
}
if (!isset($_POST['cerca'])) {
visualizzaform();
} else if (isset($_POST['cerca'])) {
$scelta= $_POST['filter'];
$sql="SELECT * FROM opere WHERE soggetto LIKE '%$scelta%'";
$risultato= mysql_query($sql);
$total= mysql_num_rows($risultato);
if ($total == 0) {
echo "Non ho trovato niente!";
}else{
while( $r = mysql_fetch_array($risultato)){
echo $r['Autore'] . "
";
echo $r['Soggetto'] . "
";
echo $r['Genere'] . "
";
echo $r['Composizione'] . "
";
x favore puoi essere più preciso? se ti chiedo aiuto è perchè non so dove mettere le mani...![]()
????????????????? nulla?
prima di tutto, chiama i checkbox con il nome e non con le parentesti quadre e metti in tutti i checkbox value=\"1\"
esempio
echo "Storie di vita: <input type=\"checkbox\" name=\"storiedivita\" value=\"1\" />
";
al posto di
echo "Storie di vita: <input type=\"checkbox\" name=\"soggetto[]\" value=\"storie di vita\" />
";
la query di insert
Elimina il campo soggetto e, come ti ho detto, crea quei 5 campi, poi la query sarà cosi
$sql = "INSERT INTO opere (id,autore,amicizia,amore,natura,storiedivita,vari o,soggetto,composizione) VALUES('$id1','$autore1','" . $_POST['amicizia'] . "','" . $_POST['amore'] . "',,'" . $_POST['natura'] . "','" . $_POST['storiedivita'] . "',,'" . $_POST['vario'] . "','$soggetto1','$composizione1')";
mentre il select lo modificherai mettendo il nome del campo del database in value
echo "<form name=\"search\" action=\"soggetto.php\" method=\"post\">Cerca per soggetto dell'opera: <select name=\"filter\" size=\"1\">";
echo "<option name=\"soggetto\" value=\"amicizia\">Amicizia</option>";
echo "<option name=\"soggetto\" value=\"amore\">Amore</option>";
echo "<option name=\"soggetto\" value=\"natura\">Natura</option>";
echo "<option name=\"soggetto\" value=\"storiedivita\">Storie di Vita</option>";
echo "<option name=\"soggetto\" value=\"vario\">Vario</option>";
echo "</select> ";
echo "<input type=\"submit\" name=\"cerca\" value=\"cerca\" />
";
echo "</form>";
e la query sarà
$filtro = '' ;
if ( $_POST['filter'] == 'amicizia' or $_POST['filter'] == 'amore' or $_POST['filter'] == 'natura' or $_POST['filter'] == 'storiedivita' or $_POST['filter'] == 'vario' )
{
$filtro = "WHERE ". $_POST['filter'] . "=1" ;
}
$sql="SELECT * FROM opere " . $filtro;
Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
Mac Future User , Ventilatore for PC Cooler user , - dry is coming -
capito quasi tutto, ho ancora un paio di dubbi....
1 - quello in grassetto come devo modificarlo? adesso 'soggetto non c'è +...!
2 - nel database nella tabella opere nella colonna soggetto cosa vedrò?
<?
$autore = "";
$genere = "";
$soggetto= "";
$composizione= "";
function checkform() {
global $autore, $genere, $soggetto, $composizione;
$msg = "";
if (isset($_POST['autore'])) $autore = $_POST['autore']; else $autore = "";
if ($autore == "") $msg .= "Inserire il proprio nome
";
if (isset($_POST['genere'])) $genere = $_POST['genere']; else $genere = "";
if ($genere == "") $msg .= "Scegliere il genere dell'opera
";
if (isset($_POST['soggetto'])) $soggetto = implode(',',$_POST['soggetto']); else $soggetto = "";
if ($soggetto == "") $msg .= "Scegliere il soggetto dell'opera
";
if (isset($_POST['composizione'])) $composizione = $_POST['composizione']; else $composizione = "";
if ($composizione == "") $msg .= "Inserire un'opera!
";
return $msg;
}
le puoi ommettere
Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
Mac Future User , Ventilatore for PC Cooler user , - dry is coming -
ok, ho fatto come hai detto xò:Originariamente inviato da bonaprogram
le puoi ommettere
1 - non mi inserisce + i record nel database, neanche il nome dell'autore e l'opera e il genere...
2 - il soggetto delle opere in database è per tutte 0
3 - "Notice: Undefined index: amicizia in c:\programmi\easyphp1-8\www\invio.php on line 122" ---> questo mi viene x qualsiasi soggetto scelga...
4 - se cerco x soggetto mi da come risultato tutte le opere in database (hanno tutte 0 a soggetto..)
ti invio il codice aggiornato...
<?
$autore = "";
$genere = "";
$composizione= "";
function checkform() {
global $autore, $genere, $composizione;
$msg = "";
if (isset($_POST['autore'])) $autore = $_POST['autore']; else $autore = "";
if ($autore == "") $msg .= "Inserire il proprio nome
";
if (isset($_POST['genere'])) $genere = $_POST['genere']; else $genere = "";
if ($genere == "") $msg .= "Scegliere il genere dell'opera
";
if (isset($_POST['composizione'])) $composizione = $_POST['composizione']; else $composizione = "";
if ($composizione == "") $msg .= "Inserire un'opera!
";
return $msg;
}
function VisualizzaForm() {
global $autore, $genere, $composizione;
echo "<form name=search action=invio.php method=post>";
echo "<input type=\"hidden\" name=\"id\" value=\"\">";
echo "
Inserisca il suo nome:</p>";
echo "<input type=\"text\" name=\"autore\" size=\"40\" maxlenght=\"40\" value=\"" . $autore . "\" />";
echo "
";
echo "
Scelga il genere della sua opera:</p>";
echo "Aforisma: <input type=\"radio\" name=\"genere\" value=\"aforisma\" />
";
echo "Epistola: <input type=\"radio\" name=\"genere\" value=\"epistola\" />
";
echo "Poesia: <input type=\"radio\" name=\"genere\" value=\"poesia\" />
";
echo "Racconto Breve: <input type=\"radio\" name=\"genere\" value=\"racconto breve\" />
";
echo "Racconto Lungo: <input type=\"radio\" name=\"genere\" value=\"racconto lungo\" />
";
echo "
Scelga il soggetto della sua opera (anche più di uno):</P>";
echo "Amicizia: <input type=\"checkbox\" name=\"amicizia\" value=\"1\" />
";
echo "Amore: <input type=\"checkbox\" name=\"amore\" value=\"1\" />
";
echo "Natura: <input type=\"checkbox\" name=\"natura\" value=\"1\" />
";
echo "Storie di vita: <input type=\"checkbox\" name=\"storiedivita\" value=\"1\" />
";
echo "Vario: <input type=\"checkbox\" name=\"vario\" value=\"1\" />
";
echo "
Infine, inserisca qui il suo componimento:</p>";
echo "<textarea name=\"composizione\" rows=\"30\" cols=\"60\">" . $composizione . "</textarea>";
echo "<input type=\"submit\" name=\"submit\" value=\"invia\" />
";
echo "</form>";
}
if (isset($_POST['submit'])) {
$messaggio = checkform();
if ($messaggio != "") {
echo "<h2>Errore:
" . $messaggio . "</h2>";
VisualizzaForm();
}
else {
include("connection.inc");
$dbname="utenti";
mysql_select_db('utenti',$conn);
$id1= $_REQUEST['id'];
$autore1= $autore;
$genere1= $genere;
$composizione1= $composizione;
$sql = "INSERT INTO opere (id,autore,genere,soggetto,composizione) VALUES('$id1','$autore1','$genere1','" . $_POST['amicizia'] . "','" . $_POST['amore'] . "',,'" . $_POST['natura'] . "','" . $_POST['storiedivita'] . "',,'" . $_POST['vario'] . "','$composizione1')";
mysql_query($sql,$conn);
echo "
questi sono i dati che saranno associati alla tua opera:
";
echo "Autore : $autore1
";
echo "Genere : $genere1
";
echo "Composizione : $composizione1
";
}
}
else {
VisualizzaForm();
}
}
else {header ("location: login.php"); }
?>
ho tolto $soggetto da tutte le parti, ma non so adesso come visualizzare il campo, piucchealtro mi preoccupa che non mi vanno + i dati al DB...che casino!!
non mi abbandonate ora che sono vicino alla soluzione...![]()
prova a fare mysql_query($sql,$conn) or die ( mysql_error ( ) ) ;
e vedi che errore da
Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
Mac Future User , Ventilatore for PC Cooler user , - dry is coming -