- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- problema inserimento record in mysql
-
problema inserimento record in mysql
Salve a tutti, sto cercando di imparare l'utilizzo di php associato a mysql. Seguendo qualche guida on-line ho creato il database e i file php necessari al collegamento e all'inserimento dei record nel database. Il problema è che non fungono, posto quindi il codice in cerca di aiuto.
- file config.inc.php
[php]<?
// parametri del database
$db_host = "localhost";
$db_user = "root";
$db_password = "";
$db_name = "prova";
?>
[/php]- file top_foot.inc.php
[php]<? function top() { ?>
<html>
<head>
</head>
<body bgcolor=ffffff text=000000>
<font face=verdana,tahoma,arial size=-1>
<h1>PROVA</h1><br>
<? }function foot() { ?>
</font>
</body>
</html>
<? } ?>[/php]- file insert.php[php]<?
include ("config.inc.php");
include ("top_foot.inc.php");//intestazione
top();
?><form method="post" action="save.php">
Titolo:<br />
<input type="text" size="40" name="titolo" />
<br /><br />
Data:<br /><select name="giorno">
<?
for ($i=1; $i<=31; $i++)
echo "<option value="$i">$i</option>";
?>
</select><select name="mese">
<option value="1">Gennaio</option>
<option value="2">Febbraio</option>
<option value="3">Marzo</option>
<option value="4">Aprile</option>
<option value="5">Maggio</option>
<option value="6">Giugno</option>
<option value="7">Luglio</option>
<option value="8">Agosto</option>
<option value="9">Settembre</option>
<option value="10">Ottobre</option>
<option value="11">Novembre</option>
<option value="12">Dicembre</option>
</select><select name="anno">
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
<option value="2003">2006</option>
<option value="2004">2007</option>
</select>
<br /><br />Autore:<br />
<input type="text" size="40" name="autore" />
<br /><br />
E-mail:<br />
<input type="text" size="40" name="mail" />
<br /><br />
Testo:<br />
<textarea cols="60" rows="40" name="testo"></textarea><br />
<br /><br /><br />
<input type="submit" value="Invia2" />
</form>
<?
// chiusura pagina
foot();
?>[/php]- file save.php
[php]<?
include("top_foot.inc.php");
include("config.inc.php");
top();$titolo=$_REQUEST['titolo'];
$autore=$_REQUEST['autore'];
$mail=$_REQUEST['mail'];
$testo=$_REQUEST['testo'];
$pass=$_REQUEST['pass'];
$giorno=$_REQUEST['giorno'];
$mese=$_REQUEST['mese'];
$anno=$_REQUEST['anno'];else if (trim($titolo) == "" OR trim($testo) == ""):
echo "I campi Titolo e Testo devono essere riempiti!";else :
$titolo = addslashes(stripslashes($titolo));
$autore = addslashes(stripslashes($autore));
$mail = addslashes(stripslashes($mail));
$testo = addslashes(stripslashes($testo));$titolo = str_replace("<", "<", $titolo);
$titolo = str_replace(">", ">", $titolo);
$autore = str_replace("<", "<", $autore);
$autore = str_replace(">", ">", $autore);
$testo = str_replace("<", "<", $testo);
$testo = str_replace(">", ">", $testo);
$testo = nl2br($testo);$data = mktime("0", "0", "0", $mese, $giorno, $anno);
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");$query = "INSERT INTO news (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";
if (mysql_query($query, $db))
echo "L'articolo è stato inserito correttamente";
else
echo "Errore durante l'inserimento";mysql_close($db);
endif; // chiude la verifica della presenza dei dati
foot();
?>[/php]l'errore che viene fuori è questoParse error: parse error in c:\users\liberlux\documents\easyphp1-8\www\prova 2\save.php on line 18ringrazio anticipatamente chi vorrà aiutarmi
- file config.inc.php
-
Che linguaggio usi?
Questo pezzo:
else if (trim($titolo) == "" OR trim($testo) == ""):
dovrebbe essere:
if (trim($titolo) == "" OR trim($testo) == "")
i : in fondo agli if non ci vanno, se devi fare una parte intera nell'if devi usare un blocco tra aperta e chiusa graffa...
-
Si hai ragione, grazie mille per la disponibilità. Grandissimo!!!
-
Ciao,
approfitto del post per lasciare lascio un appunto sulla sintassi alternativa (poco conosciuta ed utilizzata) che php consente per le strutture di controllo if, while, for, foreach e switch.Sostanzialmente php permette di sostituire alla parentesi graffa aperta i : (due punti) e a quella chiusa endif; endwhile; endfor; endforeach; o endswitch; (a seconda dei casi)
Alcuni esempi:
[PHP]
for ($i=0; $i<10; $i++):
//operazioni da eseguire
endfor;
[/PHP][PHP]
switch ($condizione):
case 0:
//operazioni da eseguire
break;
case 1:
//operazioni da eseguire
break;
case 2:
//operazioni da eseguire
break;
default:
//operazioni da eseguire
endswitch;
[/PHP][PHP]
if ($condizione):
//operazioni da eseguire
else:
//operazioni da eseguire
endif;
[/PHP][PHP]
if ($condizione):
//operazioni da eseguire
elseif ($condizione2):
//operazioni da eseguire
else:
//operazioni da eseguire
endif;
[/PHP]
Nota*: utilizzando la sintassi alternativa elseif deve esse scritto tutto attaccato, mentre utilizzando le graffe è possibile scrivere else if*.Alessandro