Database Mysql per gestione prenotazioni

davidanna23

Utente Attivo
22 Lug 2012
43
0
0
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?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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:

davidanna23

Utente Attivo
22 Lug 2012
43
0
0
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 :(
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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:

davidanna23

Utente Attivo
22 Lug 2012
43
0
0
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?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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
 

davidanna23

Utente Attivo
22 Lug 2012
43
0
0
Prova a seguire il link, mi dice errore del server. Ho controllato tutti i dati e sembrano esatti! :(
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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)
 

davidanna23

Utente Attivo
22 Lug 2012
43
0
0
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!
 

davidanna23

Utente Attivo
22 Lug 2012
43
0
0
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
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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:

davidanna23

Utente Attivo
22 Lug 2012
43
0
0
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?
 

davidanna23

Utente Attivo
22 Lug 2012
43
0
0
Ma non le avevo già create da phpmyadmin? Forse serve per selezionarle? E adesso come si prosegue?
 

sixdas

Utente Attivo
25 Giu 2012
70
0
6
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.
 

davidanna23

Utente Attivo
22 Lug 2012
43
0
0
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?
 

sixdas

Utente Attivo
25 Giu 2012
70
0
6
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:

davidanna23

Utente Attivo
22 Lug 2012
43
0
0
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
Autore Titolo Forum Risposte Data
myprobsql Alias per i valori in un campo di una tabella Database MySql PHP 1
D Server VPS Aruba per database MySQL Server Dedicati e VPS 5
M Script per cancellare deti su database mysql per stikked PHP 0
G progetto per sito in php con database mysql MySQL 0
S Filtri multipli per database mysql PHP 1
Z Problema database MySQL con XAMPP PHP 0
G database mysql contengono informazioni ? MySQL 0
S filtrare database mysql MySQL 3
K [MySQL] Impostare Database MySQL 2
G Cambiare colore ad un record database mysql MySQL 0
N [MySQL] Importare un database da MAMP a Remoto MySQL 4
K [PHP + MYSQL ] Inserimento dati in database da form dinamico PHP 13
Q Problema su come far aggiornare i campi su un database Mysql PHP 17
N DATABASE MYSQL MySQL 2
gandalf1959 caricamento jpg in database mysql PHP 1
alessandra86 Importare un xlsx in un database Mysql PHP 2
I database mysql estrarre due tabelle Database 2
G importare database mysql dentro un contenitore (docker) PHP 6
paloppa Inserimento data su database MYSQL PHP 2
F Help-PDO copiare Database MySQL PHP 3
elpirata [MySQL] Normalizzare un database con migliaia di dati già inseriti MySQL 3
A [HTML] Invio Immagine da WebCam a Database MySQL IP Cam e Videosorveglianza 10
andrea93_12 Aiuto caricare immagine su database MYSQL MySQL 1
M Inserimento Array prelevato da Database in Php in un altra tabella mysql PHP 0
M Info invio dati a database mysql. PHP 32
F Visualizzare data in formato gg/mm/aaaa da database mysql. PHP 3
G [Javascript] jQuery PHP MySql - inserire variabile nel DataBase Javascript 8
Cycloid47 mysql database lavoro instabile MySQL 2
O [MySQL] Repliche database e MariaDB MySQL 0
G [MySQL] Un database che cresce in modo apparentemente anormale. MySQL 0
ANDREA20 php mysql database PHP 8
filippino [Javascript] Estrarre dati da database MySQL Javascript 1
G mysql - problemi inserimento dati nel database, consigli. MySQL 3
S Qualcuno ha mai creato grafici "google chart" collegati a database mysql? PHP 7
M Database MYSQL non viene caricato offline MySQL 0
asevenx Importare file excel in database mysql PHP 3
S Come inserire file in database Mysql senza scrivere codice PHP? PHP 0
P Problema apostrofo su database MySQL... MySQL 0
M database mysql Database 1
M Modifica e/o Cancellazione dati da database MySql PHP 2
asevenx Impossibile connettersi al database - mysql system error: 111 MySQL 3
xone Come effettuare backup del database mysql senza exec PHP 0
A scorrimento all'interno database mysql riportando dati su form (tipo Dataset) Ajax 5
N psw modificata del database mysql MySQL 1
P interagire con database mysql Javascript 3
A connessione ad un database mysql con javascript Javascript 1
R Errore di comunicazione con database Mysql PHP 5
M Creazione grafico ad istogrammi con dati estratti da database mysql PHP 5
filippino Come cancellare dati da un database MySQL? Database 1
D Scaricare database MYSql con una funzione MySQL 0

Discussioni simili