Ciao a tutti. Ho database mysql formato da 3 tabelle. Vi allego lo script di creazione:
La colonna CodCorso deve essere è la chiave primaria. Non so perchè ricevendo dei dati da un form e facendo un insert con tali dati mi inserisce il record anche senza CodCorso e il controllo variabili non funziona. Ecco il php:
Sapete spiegarmi il perchè? Grazie!
Codice:
SET storage_engine=InnoDB;
SET FOREIGN_KEY_CHECKS=1;
CREATE DATABASE IF NOT EXISTS Docenti;
USE Docenti;
DROP TABLE IF EXISTS Professori;
DROP TABLE IF EXISTS Corsi;
DROP TABLE IF EXISTS Consulenze;
CREATE TABLE IF NOT EXISTS Professori (
CodP VARCHAR(15) UNIQUE NOT NULL,
Nome VARCHAR(255) NOT NULL,
Cognome VARCHAR(255) NOT NULL,
DataNascita DATE NOT NULL,
NumCel VARCHAR(255) NULL,
PRIMARY KEY (CodP));
CREATE TABLE IF NOT EXISTS Corsi (
CodCorso VARCHAR(15) UNIQUE NOT NULL,
Titolo VARCHAR(255) NOT NULL,
NumCrediti SMALLINT NOT NULL,
DataAttivazione DATE NOT NULL,
PRIMARY KEY (CodCorso)
);
CREATE TABLE IF NOT EXISTS Consulenze (
CodP VARCHAR(15) NOT NULL,
CodCorso VARCHAR(15) NOT NULL,
Data DATE NOT NULL,
OraInizio TIME NOT NULL,
OraFine TIME NULL,
PRIMARY KEY (CodP, CodCorso, Data, OraInizio),
FOREIGN KEY (CodP)
REFERENCES Professori (CodP)
ON DELETE CASCADE
ON UPDATE CASCADE,
FOREIGN KEY (CodCorso)
REFERENCES Corsi (CodCorso)
ON DELETE CASCADE
ON UPDATE CASCADE);
La colonna CodCorso deve essere è la chiave primaria. Non so perchè ricevendo dei dati da un form e facendo un insert con tali dati mi inserisce il record anche senza CodCorso e il controllo variabili non funziona. Ecco il php:
PHP:
<html>
<head>
<title>CorsoInserito</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="HAPedit 3.1">
</head>
<body>
<?php
/* ASSEGNAZIONE VARIABILI */
$CodC = $_GET["CodCorso"];
$Tit = $_GET["Titolo"];
$Cred = $_GET["Crediti"];
$DataA = $_GET["DataAtt"];
$Data = $_GET["Data"];
$OraI = $_GET["OraI"];
$OraF = $_GET["OraF"];
$CodP = $_GET["CodP"];
if( !isset($CodC) or !isset($Tit) or !isset($Cred) or !isset($Tit) or !isset($DataA) or !isset($Data) or !isset($OraI) or !isset($CodP)){
die("Errore: inserire tutti i dati richiesti");}
/* CONNESSIONE AL DB*/
if( !mysql_connect("localhost","root","") ){
die('Connect error: ' . mysql_error());}
if( !mysql_select_db("docenti") ){
die('Select error: ' . mysql_error());}
$sql="INSERT INTO CORSI (CodCorso, Titolo, NumCrediti, DataAttivazione)
VALUES
('$CodC','$Tit','$Cred','$DataA')";
if (!mysql_query($sql))
{
die('Error: ' . mysql_error());
}
$sql1="INSERT INTO CONSULENZE (CodP, CodCorso, Data, OraInizio, OraFine)
VALUES
('$CodP','$CodC','$Data','$OraI','$OraF')";
if (!mysql_query($sql1))
{
die('Error: ' . mysql_error());
}
echo "Il corso $CodC è stato inserito nel database e la consulenza per tale corso è fissata per il giorno $Data.";
// chiudo la connessione a MySQL
mysql_close();
?>
</body>
</html>
Sapete spiegarmi il perchè? Grazie!