Database Mysql per gestione prenotazioni

Perfetto, ho capito, quindi ho modificato "id_partanza","id_destinazione","id_utente" e "id"(linea_bus) in Autoincrement e chiave primaria, adesso possiamo passare all'inserimento dei valori o sbaglio?
 
ciao
ecco come dovrebbe essere la tabella

Codice:
CREATE TABLE `linea_bus` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`id_partenza` INT( 11 ) NOT NULL ,
`id_destinazione` INT( 11 ) NOT NULL ,
`orario` INT( 15 ) NOT NULL ,
`costo` FLOAT( 4, 2 ) NOT NULL ,
`note` VARCHAR( 250 ) NOT NULL
) ENGINE = MYISAM ;

un'osservazione su:
orario: io ho messo int(15) perchè generlmente io salvo gli orari in timestamp, ma se usi per es hh:ii il campo può essere varchar(5)
costo: ti ho messo float 4,2 perchè penso si tratti di euro, quindi con due decimali e un massimo di 4 cifre intere (il costo massomo che puoi indicare è 9999.99 euro (che per un viaggio mi sembra tanto), ma se vuoi puoi aumentarlo es. 5,2

poi piccola altra info il tutto può essere tradotto in php facendoti una pagina es. tabelle.php
PHP:
<?php
//prima i dati di connessione
$host = 'localhost';     //nome host (spero che tu stia lavorando in locale
$username = 'root';      //qui devi mettere il user name che utilizzi per accerdere con phpadmin
$password = 'password';  //come sopra la  password
$db = 'prove';            // nome che hai dato al data base
//---connessione----------------------------------------------------
$conn = mysql_connect($host,$username,$password) or die (mysql_error());
//poi devi selezionare il database da utilizzare
$sel = mysql_select_db($db) or die (mysql_error());
//crei la stringa della tabella TI CONVIENE NON USARE GLI APICI (detti battik)
$stringa = <<<STR
CREATE TABLE IF NOT EXISTS linea_bus (
id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
id_partenza INT( 11 ) NOT NULL ,
id_destinazione INT( 11 ) NOT NULL ,
orario INT( 15 ) NOT NULL ,
costo FLOAT( 4, 2 ) NOT NULL ,
note VARCHAR( 250 ) NOT NULL
) ENGINE = MYISAM ;
STR;
//e con una query crei la tabella
if(mysql_query($stringa)){
	echo "tabella creat con successo";
}else{
	echo "errore, non si è potuto creare la tabella";
}
/*
poi fai lo stesso per tutte le altre tabelle lo stesso lavoro, sempre in questa pagina
escluso la connessione e selezione perche basta una volta sola
*/
?>
quando chiami la pagina con http: // locallost:8080/tua_cartella/tabelle.php lo script crea la/le tabella/e

edit
le note non sono un numero
 
Ultima modifica:
Aspetta, c'è un problemino prima di passare al codice php per la tabella!
Il problema è: nonostante su phpmyadmin seleziono la colonna "id_utenti" come chiave primaria. Quando esporto il file sql non me la da come tale, guarda cosa mi da:
Codice:
-- Struttura della tabella `destinazioni`
--

CREATE TABLE IF NOT EXISTS `destinazioni` (
  `id_destinazione` int(11) NOT NULL AUTO_INCREMENT,
  `nome_destinazione` int(11) NOT NULL,
  `id_partenza` int(11) NOT NULL,
  PRIMARY KEY (`id_destinazione`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Struttura della tabella `linea_bus`
--

CREATE TABLE IF NOT EXISTS `linea_bus` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_partenza` int(11) NOT NULL,
  `id_destinazione` int(11) NOT NULL,
  `orario` int(11) NOT NULL,
  `costo` float(4,2) NOT NULL,
  `note` varchar(250) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Struttura della tabella `partenze`
--

CREATE TABLE IF NOT EXISTS `partenze` (
  `id_partenza` int(11) NOT NULL AUTO_INCREMENT,
  `nome_partenza` varchar(11) NOT NULL,
  PRIMARY KEY (`id_partenza`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Struttura della tabella `utenti`
--

CREATE TABLE IF NOT EXISTS `utenti` (
  `id_utente` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(250) NOT NULL,
  `cognome` varchar(250) NOT NULL,
  `email` varchar(250) NOT NULL,
  `password` varchar(50) NOT NULL,
  PRIMARY KEY (`id_utente`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Utenti' AUTO_INCREMENT=1 ;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Solo Autoincrement :(
 
ciao
è solo scritto in modo diverso
Aspetta, c'è un problemino prima di passare al codice php per la tabella!
Il problema è: nonostante su phpmyadmin seleziono la colonna "id_utenti" come chiave primaria. Quando esporto il file sql non me la da come tale, guarda cosa mi da:
Codice:
-- Struttura della tabella `destinazioni`
--

CREATE TABLE IF NOT EXISTS `destinazioni` (
  `id_destinazione` int(11) NOT NULL AUTO_INCREMENT,
  `nome_destinazione` int(11) NOT NULL,
  `id_partenza` int(11) NOT NULL,
  [B][COLOR="#FF0000"]PRIMARY KEY (`id_destinazione`)[/COLOR][/B]
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Struttura della tabella `linea_bus`
--

CREATE TABLE IF NOT EXISTS `linea_bus` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_partenza` int(11) NOT NULL,
  `id_destinazione` int(11) NOT NULL,
  `orario` int(11) NOT NULL,
  `costo` float(4,2) NOT NULL,
  `note` varchar(250) NOT NULL,
  [B][COLOR="#FF0000"]PRIMARY KEY (`id`)[/COLOR][/B]
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Struttura della tabella `partenze`
--

CREATE TABLE IF NOT EXISTS `partenze` (
  `id_partenza` int(11) NOT NULL AUTO_INCREMENT,
  `nome_partenza` varchar(11) NOT NULL,
  [B][COLOR="#FF0000"]PRIMARY KEY (`id_partenza`)[/COLOR][/B]
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Struttura della tabella `utenti`
--

CREATE TABLE IF NOT EXISTS `utenti` (
  `id_utente` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(250) NOT NULL,
  `cognome` varchar(250) NOT NULL,
  `email` varchar(250) NOT NULL,
  `password` varchar(50) NOT NULL,
  [B][COLOR="#FF0000"]PRIMARY KEY (`id_utente`)[/COLOR][/B]
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Utenti' AUTO_INCREMENT=1 ;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Solo Autoincrement :(
 
Ultima modifica:
No, scusa è scritto alla fine di ogni tabella:
PHP:
PRIMARY KEY (`id`)
Ho creato la pagina tabella.php:
PHP:
//crei la stringa della tabella TI CONVIENE NON USARE GLI APICI (detti battik) 
$stringa = <<<STR 
CREATE TABLE IF NOT EXISTS `linea_bus` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_partenza` int(11) NOT NULL,
  `id_destinazione` int(11) NOT NULL,
  `orario` int(11) NOT NULL,
  `costo` float(4,2) NOT NULL,
  `note` varchar(250) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
STR; 
//e con una query crei la tabella 
if(mysql_query($stringa)){ 
    echo "tabella creat con successo"; 
}else{ 
    echo "errore, non si è potuto creare la tabella"; 
} 
/* 
poi fai lo stesso per tutte le altre tabelle lo stesso lavoro, sempre in questa pagina 
escluso la connessione e selezione perche basta una volta sola 
*/
$stringa1 = <<<STR 
CREATE TABLE IF NOT EXISTS destinazioni (
  `id_destinazione` int(11) NOT NULL AUTO_INCREMENT,
  `nome_destinazione` int(11) NOT NULL,
  `id_partenza` int(11) NOT NULL,
  PRIMARY KEY (`id_destinazione`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; 
STR; 
//e con una query crei la tabella 
if(mysql_query($stringa1)){ 
    echo "tabella creat con successo"; 
}else{ 
    echo "errore, non si è potuto creare la tabella"; 
}
/* 
poi fai lo stesso per tutte le altre tabelle lo stesso lavoro, sempre in questa pagina 
escluso la connessione e selezione perche basta una volta sola 
*/
$stringa2 = <<<STR 
CREATE TABLE IF NOT EXISTS partenze (
  `id_partenza` int(11) NOT NULL AUTO_INCREMENT,
  `nome_partenza` varchar(11) NOT NULL,
  PRIMARY KEY (`id_partenza`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; 
STR; 
//e con una query crei la tabella 
if(mysql_query($stringa2)){ 
    echo "tabella creat con successo"; 
}else{ 
    echo "errore, non si è potuto creare la tabella"; 
}
/* 
poi fai lo stesso per tutte le altre tabelle lo stesso lavoro, sempre in questa pagina 
escluso la connessione e selezione perche basta una volta sola 
*/
$stringa3 = <<<STR 
CREATE TABLE IF NOT EXISTS `partenze` (
  `id_partenza` int(11) NOT NULL AUTO_INCREMENT,
  `nome_partenza` varchar(11) NOT NULL,
  PRIMARY KEY (`id_partenza`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; 
STR; 
//e con una query crei la tabella 
if(mysql_query($stringa3)){ 
    echo "tabella creat con successo"; 
}else{ 
    echo "errore, non si è potuto creare la tabella"; 
}
/* 
poi fai lo stesso per tutte le altre tabelle lo stesso lavoro, sempre in questa pagina 
escluso la connessione e selezione perche basta una volta sola 
*/
$stringa4 = <<<STR 
CREATE TABLE IF NOT EXISTS `utenti` (
  `id_utente` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(250) NOT NULL,
  `cognome` varchar(250) NOT NULL,
  `email` varchar(250) NOT NULL,
  `password` varchar(50) NOT NULL,
  PRIMARY KEY (`id_utente`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Utenti' AUTO_INCREMENT=1 ;
STR; 
//e con una query crei la tabella 
if(mysql_query($stringa4)){ 
    echo "tabella creat con successo"; 
}else{ 
    echo "errore, non si è potuto creare la tabella"; 
}
?>
Come verifico se va bene e non ci sono errori? Devo caricarla sul server ed aprirla?
 
ciao
se la carichi sul server devi richiamarla come chiameresti qualsiasia latra pagina
se in locale (ti conviene lavorare in locale) vedi il mio post precedente
se in remoto
www. tuo_sito.org /percorso_dove_lo_metti/tabelle.php

se non ti da errori la/e tabella/e sono create.
poi con phpamin le vai a vedere per sicurezza
 
ciao
ho provato a me da pag. biancha.
1. hai messo giusti i tag php? hai scritto il codice giusto?
2. mi accorgo ora che nello script che hai postato non si vedono i dati di connessione, li hai messi?

p.s.
perchè ti ostini a lavorare in remoto? scaricati e installati un server locale con apache, php e mysql? non è il massimo ma io uso quello scaricato da qui http://www.AppServNetwork.com (tra l'altro e gratis)
 
Certo che li ho messi i dati di login.
Comunque ho scaricato il programma che usi tu, ma non mi trovo bene, non lo capisco molto!
Meglio lavorare così, altrimenti mi confondo di più. Lo script che ho postato sopra è giusto? Se è giusto allora l'errore sta nei dati di login!
 
Ciao
Problema risolto: sbagliavo il nome del database.
Adesso ho creato la pagina tabelle.php, che puoi vedere qua: http://davidanna23.com/php/tabelle.php Ecco il codice sorgente:
PHP:
<?php
// richiamo il file di configurazione
require 'config.php';

// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';

// il resto dello script: posso effettuare query
// senza preoccuparmi della connessione a MySQL
?>
<html>
<head>
<title>Php e Mysql</title>
</head>
<body>
<?php
$stringa1=mysql_query ("SELECT * FROM partenze", $conn)
?>
<?php
$stringa2=mysql_query ("SELECT * FROM destinazioni", $conn)
?>
<?php
$stringa3=mysql_query ("SELECT * FROM linea_bus", $conn)
?>
<?php
$stringa4=mysql_query ("SELECT * FROM utenti", $conn)
?>
</body>
</html>
Come puoi vedere ho anche salvato due altri file: config.php con i dati di accesso al db, connect.php con la connessione al db.
Inoltre, ho seguito una guida su internet per inserire le tabelle in php e anzichè usare le stringhe come dicevi tu, ho usato questi script, ad es.:
PHP:
<?php
$stringa4=mysql_query ("SELECT * FROM utenti", $conn)
?>
Dovrebbe essere la stessa cosa no?
Mi scuso ancora con te per il tempo che ti sto facendo perdere, ma quando mi metto una cosa in testa ci devo riuscire e basta. Infatti è tutto il pomeriggio che faccio tentativi vari.
Saluti
 
ciao
si è la stessa cosa, però se la query è complessa è meglio dividere l'interrogazione, soprattutto è utile in fase di debug.
poi
puoi mettere sia di dati di connessione e di selezione db nello stesso file (soprattutto se usi un solo db), analogamente se ne usi uno solo in
mysql_query ("SELECT * FROM xxxxxxxx", $conn)
$conn non serve
mysql_query ("SELECT * FROM xxxxxxxx")
 
Ultima modifica:
Ciao
È vero hai ragione, posso mettere il file di configurazione e connessione in un unico file. Ma non ho capito ancora una cosa: questo file tabelle .php a cosa serve?
 
Quello creato da borgo serve per creare le tabella da php, senza passare per phpmyadmin. Se hai fatto tutto correttamente, adesso hai tutta la struttura del db creata. Ora Dovresti fare:

1) Un area di Amministrazione con login, creando due livelli,
- Admin = Dove gestisci tutto, nuovi viaggio, prezzi etc... e gestione utenti e prenotazioni.
- Utente = Dove può selezionare il viaggio prenotarlo e pagarlo.
2) Sviluppare le varie pagine di inserimento e modifica dati nel db.
3) Creare un template, oppure integrarlo in un sito già esistente.


Almeno io cosi farei, poi aspetta altri consigli.
In tutto questo forse ci siamo dimenticati una cosa importante, la disponibilità dei posti sul autobus. Bisogna integrare anche questa cosa, altrimenti c'è il rischio che più persone acquistino il biglietto che non è disponibile.
 
Hai ragione, dovrei inserire la disponibilità dei bus, ma come? Comunque la struttura l'ho già creata da phpmyadmin, per non confondermi. Poi come creo l'area amministratore e l'area utente?
 
Dovresti creare un sistema di login. Se non sbaglio, qualche giorno fa borgo a postato un suo script con le sessioni, prova a cercarlo, e una buona base di partenza.
Poi per distinguere, tra utente e un amministratore, crea un altro campo nella tabella utenti, e tipo fai che 0= utenti e 1= amministratore. Cosi al momento del login, fai una verifica, se 0 lo indirizzi alla pagina di utente, se 1 a quella di amministratore. La cosa dovrebbe essere semplice da realizzare. Mentre per la disponibilità dei posti, potresti fare una cosa del genere, nella tabella linea_bus, crei un altro capo, posti_disponibili che dari un valore max in base ai posti dello bus, poi quando l'utente acquista un biglietto, sottrai -1, quando sarà arrivato a 0 non proponi più il viaggio e lo dai come esaurito. Inoltre dovresti valutare anche la possibilità di far acquistare più biglietti a una sola persona...


Questo e un modo, sicuramente c'è ne saranno altri. Vedi tu di trovare una strada facile per te da realizzare.
Il progetto e abbastanza complesso e tocca molti argomenti, e si presuppone di conoscerli tutti...Quindi il mio consiglio, se non ha una scadenza, allora puoi provarci, e ogni volta che avrai difficoltà ti studi l'argomento, ma se il progetto e urgente, allora la vedo dura, mi spiace.
 
Ultima modifica:
No, il progetto non ha scadenza, infatti lo sto studiando caso per caso... Adesso comincio a fare ciò che hai detto tu nell'ultimo post e appena incontro qualche problema casomai chiedo. Grazie tante, molto gentile!
 

Discussioni simili