Pagina 1 di 2 12 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 39
Like Tree2Likes

Discussione: Contare prenotazioni per ogni evento

  1. #1
    Guest

    Thumbs up Contare prenotazioni per ogni evento

    Salve sto creando un sito per il bar di un mio amico, ho questa situazione:

    Tabella1: Eventi(IDEVENTO,NOMEEVENTO,DESCRIZIONE,ORARIO)
    Tabella2: Clienti(IDUTENTE,NOME,COGNOME,NUMEROCELL,EMAIL,NUM ERO,ORA)

    Ho fatto tutto, inserimento prenotazioni, cancellazione ecc
    Mi rimane questo problema:
    Vorrei Visualizzare per ogni Evento creato quanti clienti hanno prenotato per ogni singolo evento.
    Esempio: I posti nel locale sono 28 quindi il numero massimo di prenotazioni per ogni evento è 28.
    Un cliente fa la prenotazione per l'EVENTO1 per 20 persone
    Un altro cliente fa la prenotazione sempre per l'EVENTO1 per 8 persone
    Un altro cliente fa la prenotazione per l'EVENTO 2 per 10 persone

    Vorrei che mi stampasse a video:

    Per l'EVENTO1 sono disponibili 0 posti
    Per L'evento 2 sono disponibili 18 posti
    PER N eventi...

    E ovviamente che mi impedisce di inserire una prenotazioni per l'evento in cui i posti sono esauriti.
    Il tutto in php mysql e html, database di altervista quindi senza InnoDB

    mi sto sbattendo da 2 giorni e non mi riesce..qualcuno può aiutarmi ?

    qui il sito in progettazione: www.clubexplois.altervista.org

  2. #2
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Nella tabella Clienti dovresti aggiungere un campo (chiamalo ad esempio IDEVENTO).
    Quindi ti basta eseguire una query select e contare i risultati tramite mysql_num_rows().

    Codice PHP:
    $IDEVENTO = (int) $_POST['nomeevento'];
    $posti_max = 28;
    $query = mysql_query("SELECT * FROM Clienti WHERE IDEVENTO = $IDEVENTO");
    $result = mysql_num_rows($query);
    $posti_liberi = $result - $posti_max;
    echo
    "Ci sono $result prenotati, (ancora $posti_liberi posti liberi)";
    Considera che $_POST['nomeevento'] deve contenere l'ID dell'evento, non il nome

    Ciao!

  3. #3
    Guest

    Predefinito

    ciao grazie per la risposta, io ho fatto in questo modo:
    Codice:
    //CONTA NUMERO EVENTI
    $conta="SELECT * FROM Eventi";
    $resultc= mysql_query($conta) or die(mysql_error());
    $n=mysql_num_rows($resultc);
    while($n>0){
    
    // Numero posti occupati o liberi
    $sql1="SELECT SUM(Clienti.NUMERO) FROM Clienti,Eventi WHERE Eventi.NOMEEVENTO = Clienti.NOMEEVENTO AND $n=Eventi.IDEVENTO";
        $result1=mysql_query($sql1) or die(mysql_error());
    	$resultT=mysql_result($result1,0);
    	$disponibili=$postit-$resultT;
    	 echo "<p>Per l'evento: ";
    	echo $n[NOMEEVENTO];
    	echo "Sono disponibili<br>";
    	echo $disponibili;
    	echo " posti.";
    	$n=$n-1;
      }
     
    ?>
    La query mi esce giusta ma non mi comunica l'evento, mi esce così:

    Per l'evento:"QUI DOVEVA ESSERCI SCRITTO IL NOME DELL'EVENTO INVECE RESTA VUOTO" Sono disponibili
    28 posti.

    Per l'evento:"QUI DOVEVA ESSERCI SCRITTO IL NOME DELL'EVENTO INVECE RESTA VUOTO" Sono disponibili
    8 posti.
    Ultima modifica di clubexplois : 22-01-2014 alle ore 18.35.46

  4. #4
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Che confusionario quel codice
    Ecco qui lo stesso risultato con qualche riga in meno e un codice meno "spaghetti"

    Codice PHP:
    <?
    $posti_max
    = 28;
    $queryEventi = mysql_query("SELECT * FROM Eventi");
    while(
    $rigaEventi = mysql_fetch_array($queryEventi)){
    $IDEvento = (int) $rigaEventi['IDEVENTO'];
    $NomeEvento = htmlspecialchars($rigaEventi['NOMEEVENTO ']);

    $queryClienti = mysql_query("SELECT * FROM Clienti WHERE IDEVENTO = $IDEvento");
    $resultClienti = mysql_num_rows($query);
    $posti_liberi = $resultClienti - $posti_max;
    echo
    "Per l'evento: \"$NomeEvento\" sono disponibili $posti_liberi posti.<br />";
    }
    ?>
    SPIEGAZIONE:
    • Codice PHP:
      $conta="SELECT * FROM Eventi";
      $resultc= mysql_query($conta) or die(mysql_error());
      $n=mysql_num_rows($resultc);
      while(
      $n>0){
      La query l'ho integrata nel while tramite mysql_fetch_array().
    • Codice:
      SELECT SUM(Clienti.NUMERO) FROM Clienti,Eventi WHERE Eventi.NOMEEVENTO = Clienti.NOMEEVENTO AND $n=Eventi.IDEVENTO
      Tutta questa query è inutile per ciò che devi fare. Puoi semplicemente contare tutti i risultati che sono stati filtrati in base all'ID dell'evento.
    • Codice PHP:
      echo $n[NOMEEVENTO];
      Facciamo finta di dover utilizzare questo codice (ti faccio capire perché non stampava il nome dell'evento)...
      • Premessa: avresti dovuto inserire gli apici all'inserimento del valore dell'array, in questo modo: $n['NOMEEVENTO'];
      • Intanto $n non è un'array ma un numero, più specificatamente il numero dei risultati, che diminuisci ogni volta che esegui il ciclo while. Quindi non puoi estrarre il valore NOMEEVENTO da un numero, per il semplice fatto che non esiste.
      • Per funzionare avresti dovuto ottenere un'array contenente tutti i valori di ogni riga della tabella Eventi, sempre tramite mysql_fetch_array()


    Fammi sapere se funziona correttamente.
    Ciao!

  5. #5
    Guest

    Predefinito

    grazie mille è molto più pulita così, funziona nel senso che mi prende bene il numero degli eventi, i nomi degli eventi ma i numeri non sono esatti.

    Mi da questo risultato:

    Per l'evento: "PRE SERATA CROMIE" sono disponibili -28 posti.
    Per l'evento: "SERATA" sono disponibili -28 posti.

    Penso però di aver capito perchè:
    $queryClienti = mysql_query("SELECT * FROM Clienti WHERE IDEVENTO = $IDEvento");

    io nella tabella Clienti non ho IDEVENTO
    anche creando questo campo in seguito non mi corrisponde dovresi svuotare il database ? Oppure è per il fatto che IDEVENTO nella tabella Clienti non è Chiave Esterna ? (anche volendo non me la fa impostare dice che serve un database innoDB, per questo non avevo messo in considerazione il fatto di creare il campo IDEVENTO nella tabella Clienti)

  6. #6
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    Nella tabella Clienti dovresti aggiungere un campo (chiamalo ad esempio IDEVENTO).
    Quel campo è collegato all'ID dell'evento (nella tabella Eventi) che si prenota.

    Quindi:
    Tabella Eventi
    IDEVENTO: 1 | NOMEEVENTO: Primo evento
    IDEVENTO: 2 | NOMEEVENTO: Secondo evento

    Tabella Clienti
    NOMECLIENTE: Mario | COGNOME: Rossi | IDEVENTO: 1 (vuol dire che ha prenotato l'evento "Primo evento")
    NOMECLIENTE: Andrea | COGNOME: Albertini | IDEVENTO: 2 (vuol dire che ha prenotato l'evento "Secondo evento")

    Inoltre devi convertire il risultato in intero tramite (int).

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    Nella tabella Clienti dovresti aggiungere un campo (chiamalo ad esempio IDEVENTO).
    E se poi un cliente vorrebbe registrarsi a 2 eventi? o 3?

    Usa una tabella di relazione IDCliente|IDEvento.
    Per contare la metti in join con la tabella EVENTI.

  8. #8
    Guest

    Predefinito

    non sto capendo molto scusate potete spiegarvi meglio ?
    io la relazione tra le tabelle non la riesco a fare su altervista. Inoltre il Join non lo so usare benissimo :(

  9. #9
    Guest

    Predefinito

    Se aggiungi un campo alla tabella Clienti, come suggeritoti, ad ogni cliente puoi associare uno e uno solo evento, o al massimo un evento alla volta, eliminano ogni riferimento al pregresso.

    In realtà questo è anche sbagliato a livello concettuale.

    Il suggerimento allora è quello di creare una tabella che raccolga le relazioni clienti/eventi in modo da poter legare ogni cliente a più eventi (ed ogni evento di avere più clienti) ed allo stesso tempo permettere ai clienti di prenotare più eventi.

    la tabella prenotazioni (nome di esempio) potrebbe essere semplicemente una tabella con due campi (IDCliente e IDEvento) per cui ogni record associa un cliente ed un evento.

    Quando vuoi recuperare le prenotazioni fai qualcosa del tipo

    Codice PHP:
    SELECT e.nome_evento, count(*)
    FROM eventi e
    INNER JOIN prenotazioni p ON e
    .IDEvento = p.IDEvento
    GROUP BY e
    .nome_evento
    avendo per ogni evento il numero di prenotazioni (per eventi che hanno almeno una prenotazione).

    EDIT:
    Dai una lettura qui (a pag. 4 le relazioni molti-a-molti, ma prima leggi il resto ;) )
    Ultima modifica di vplaza : 23-01-2014 alle ore 16.05.02

  10. #10
    Guest

    Predefinito

    beniomale ho capito cosa mi stai dicendo di fare il problema è che non lo posso fare, altervista non mi concede in phpmyadmin di creare una tabella con relazioni

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da clubexplois Visualizza messaggio
    beniomale ho capito cosa mi stai dicendo di fare il problema è che non lo posso fare, altervista non mi concede in phpmyadmin di creare una tabella con relazioni
    Non devi creare relazioni in maniera visuale, devi solo gestirle logicamente.

  12. #12
    Guest

    Predefinito

    come si traduce in codice tutto ?
    puoi riscrivermi tutto i lcodice del problema così me lo studio per bene ?
    scusatemi se sto abusando della vostra pazienza

  13. #13
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Premetto che non so usare JOIN.
    Se un cliente partecipa a 2 eventi, è come se fossero 2 clienti: 1 oggi e 1 domani... non per quanto riguarda il codice, ma per quanto riguarda la realtà, quindi penso sia meglio che venissero create più righe anche se il cliente è sempre lo stesso.
    Il risultato dovrebbe essere lo stesso.

    Se vuoi utilizzare questo metodo dimmi cosa non capisci che cercherò di aiutarti; se vuoi utilizzare JOIN non posso darti una mano...
    Ciao!

  14. #14
    Guest

    Predefinito

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    Premetto che non so usare JOIN.
    Se un cliente partecipa a 2 eventi, è come se fossero 2 clienti: 1 oggi e 1 domani... non per quanto riguarda il codice, ma per quanto riguarda la realtà, quindi penso sia meglio che venissero create più righe anche se il cliente è sempre lo stesso.
    Il risultato dovrebbe essere lo stesso.

    Se vuoi utilizzare questo metodo dimmi cosa non capisci che cercherò di aiutarti; se vuoi utilizzare JOIN non posso darti una mano...
    Ciao!
    @radiodelmomento: Prima regola per una buona progettazione di un db: NON DUPLICARE I DATI.

    @clubexplois: visto che hai già le tabelle clienti ed eventi, crea una tabella PRENOTAZIONI come ti dicevo e poi lancia una query tipo quella che ti ho scritto prima. Vedrai che è più semplice di come sembra. Non stare ad aspettare, prova in prima persona

  15. #15
    Guest

    Predefinito

    Si ci ho provato ma non ci sono riuscito creando la tabella prenotazioni non so dove inserire quel codice che mi hai messo nel mio codice.
    @radiodelmomento io ho fatto in questo modo e solo così mi funziona:

    Codice:
    $queryEventi = mysql_query("SELECT * FROM Eventi"); 
    while($rigaEventi = mysql_fetch_array($queryEventi)){ 
        $IDEvento = (int) $rigaEventi['IDEVENTO']; 
        $NomeEvento = htmlspecialchars($rigaEventi['NOMEEVENTO']); 
         
        $sql1="SELECT SUM(Clienti.NUMERO) FROM Clienti WHERE IDEVENTO = $IDEvento";
        $result1=mysql_query($sql1) or die(mysql_error());
    	$resultT=mysql_result($result1,0);
    	$disponibili=$posti_max-$resultT; 
        echo "Per l'evento: \"$NomeEvento\" sono disponibili $disponibili posti.<br />";
    Così mi va bene almeno per adesso funziona non so andando più avanti...
    Premetto che ogni volta che un evento termina lo cancello dal database e con lui anche i clienti che hanno prenotato per quell'evento..
    Non so, devo provare a vedere come va più in la..per ora grazie a tutti, se avete altri consigli abbiate pazienza di aiutarmi

  16. #16
    Guest

    Predefinito

    Ho provato a buttar giù uno schemino con la struttura che ti dicevo, la trovi qui.

    Come vedi hai tutte le informazioni che ti servono e qualcosina in più.
    Fammi sapere che ne pensi.
    clubexplois likes this.

  17. #17
    Guest

    Predefinito

    grazie mille, ora me lo leggo per bene e vedo che riesco a fare, scusatemi se non mi sono fatto sentire in questi giorni avevo un caso più urgente da risolvere :)
    ok me la sono vista per bene e avrei delle domande:

    Allora io ho un form action con i vari campi e premendo su prenota vado ad inserire quei campi relativi al cliente nella tabella cliente
    Invece mettendo la tabella prenotazioni come dovrò fare per inserire i dati sia nella tabella cliente e nella tabella prenotazioni ?
    fammi capire meglio perchè non mi è ben chiaro come devo fare

    EDIT: forse ho capito, in pratica c'è bisogno di essere già clienti per fare una prenotazione ? cioè, con il tasto prenota posso inserire sia le informazioni del cliente nella tabella cliente e sia la prenotazione nella tabella prenotazioni ? me lo spiegheresti come inserire i dati di prenotazione e cliente insieme sottoforma di codice php e mysql ? grazie ti giuro che non saprei come ringraziarti
    Ultima modifica di clubexplois : 27-01-2014 alle ore 17.30.05

  18. #18
    Guest

    Predefinito

    Citazione Originalmente inviato da clubexplois Visualizza messaggio
    grazie mille, ora me lo leggo per bene e vedo che riesco a fare, scusatemi se non mi sono fatto sentire in questi giorni avevo un caso più urgente da risolvere :)
    ok me la sono vista per bene e avrei delle domande:

    Allora io ho un form action con i vari campi e premendo su prenota vado ad inserire quei campi relativi al cliente nella tabella cliente
    Invece mettendo la tabella prenotazioni come dovrò fare per inserire i dati sia nella tabella cliente e nella tabella prenotazioni ?
    fammi capire meglio perchè non mi è ben chiaro come devo fare

    EDIT: forse ho capito, in pratica c'è bisogno di essere già clienti per fare una prenotazione ? cioè, con il tasto prenota posso inserire sia le informazioni del cliente nella tabella cliente e sia la prenotazione nella tabella prenotazioni ? me lo spiegheresti come inserire i dati di prenotazione e cliente insieme sottoforma di codice php e mysql ? grazie ti giuro che non saprei come ringraziarti

    Il percorso logico sarebbe quello di registrare prima l'utente e dopo procedere con la prenotazione.
    Se vuoi fare entrabe le cose contemporaneamente procedi dividendo le cose.
    In un primo momento registra l'utente.
    Con la funzione mysql_insert_id ricavi l'ID dell'utente appena inserito.
    A questo punto hai tutti i dati per poter procedere alla prenotazione (inserimento dell'idutente, e idevento, e altri dati su prenotazioni).

    Ciao

  19. #19
    Guest

    Predefinito

    grazie ho scoperto una funzione nuova :)

    purtroppo per quanto riguarda la tabella prenotazioni l'ho creata con i campi IDCLIENTE,IDEVENTO,DATAPRENOTAZIONE,NUMERO,ORA

    però phpmyadmin non mi fa impostare Primary Key (idcliente, idevento)
    mi dice che una sola deve essere primary key

    ecco screen --> https://www.dropbox.com/s/m42omom1fg...enotazioni.jpg



    Poi un altra cosa, facendo in questo modo ricavando l'ID prenotazione con mysql_insert_id non c'è il rischio che l'id utente sia sempre lo stesso ? cioè io faccio così:

    $query "INSERT into CLIENTI(NOME,COGNOME..ECC"; per l'inserimento dei dati
    $result=mysql_query($query);
    $IDCLIENTE=mysql_insert_id();
    $prenota "INSERT INTO PRENOTAZIONI(IDCLIENTE,IDEVENTO,ecc";

    In questo modo qua è giusto ? a me pare di no..
    Ultima modifica di clubexplois : 27-01-2014 alle ore 20.02.55

  20. #20
    Guest

    Predefinito

    Citazione Originalmente inviato da clubexplois Visualizza messaggio
    grazie ho scoperto una funzione nuova :)

    purtroppo per quanto riguarda la tabella prenotazioni l'ho creata con i campi IDCLIENTE,IDEVENTO,DATAPRENOTAZIONE,NUMERO,ORA

    però phpmyadmin non mi fa impostare Primary Key (idcliente, idevento)
    mi dice che una sola deve essere primary key
    per creare una chiave composta (elimina tutte quelle create prima) con phpMyAdmin, in modalità struttura, prima seleziona i due campi da usare, e poi fai click sull'icona a forma di chiave in basso.

    Citazione Originalmente inviato da clubexplois Visualizza messaggio
    Poi un altra cosa, facendo in questo modo ricavando l'ID prenotazione con mysql_insert_id non c'è il rischio che l'id utente sia sempre lo stesso ? cioè io faccio così:

    $query "INSERT into CLIENTI(NOME,COGNOME..ECC"; per l'inserimento dei dati
    $result=mysql_query($query);
    $IDCLIENTE=mysql_insert_id();
    $prenota "INSERT INTO PRENOTAZIONI(IDCLIENTE,IDEVENTO,ecc";

    In questo modo qua è giusto ? a me pare di no..
    E invece è corretto. mysql_insert_id ti restituisce l'id dall'ultima INSERT (naturalmente il campo IDcliente devi impostarlo come AutoIncrement). Per cui ad ogni nuovo inserimento, avrai un nuovo ID.
    Fai le prove e vedi.

    ;)

  21. #21
    Guest

    Predefinito

    ciao ho fatto delle prove mi inserisce tutto bene tranne l'IDEVENTO
    io ho fatto così:

    Codice:
    <?php
    
    $host="localhost"; // Host name 
    ******************
    $tbl_name="Clienti"; // Table name 
    $tbl_name1="Eventi"; // Table name
    $posti_max = 28;
    
    // Connect to server and select database.
    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB");
    
    // Get values from form 
    $NOMEEVENTO=$_POST['nomeevento'];
    $NOME=$_POST['NOME'];
    $COGNOME=$_POST['COGNOME'];
    $NUMEROCELL=$_POST['NUMEROCELL'];
    $EMAIL=$_POST['EMAIL'];
    $NUMERO=$_POST['NUMERO'];
    $ORA=$_POST['ORA'];
    
    
    
    
    // Numero posti occupati o liberi
    $sql1="SELECT SUM(NUMERO) FROM $tbl_name";
        $result1=mysql_query($sql1) or die(mysql_error());
    	$resultT=mysql_result($result1,0);
    	$disponibili=$posti_max-$resultT;
    
    // if successfully updated.
    
    if($result==0){
    // Insert data into mysql 
    $sql="INSERT INTO $tbl_name(NOME,NOMEEVENTO, COGNOME, NUMEROCELL, EMAIL, NUMERO, ORA)VALUES('$NOME', '$NOMEEVENTO', '$COGNOME', '$NUMEROCELL', '$EMAIL', '$NUMERO', '$ORA')";
    $result=mysql_query($sql); 
    $IDCLIENTE=mysql_insert_id();
    $sqlE="SELECT Eventi.IDEVENTO FROM $tbl_name1 WHERE Eventi.NOMEEVENTO='$NOMEEVENTO'";
    $IDEVENTO=mysql_result($sqlE,0);
    $datetime = date('Y-m-d H:i:s');
    $prenota="INSERT INTO Prenotazioni(IDCLIENTE,IDEVENTO,DATAPRENOTAZIONE,NUMERO,ORA)VALUES('$IDCLIENTE', '$IDEVENTO', '$datetime', '$NUMERO', '$ORA')";
    $resultP=mysql_query($prenota);
    $query = "SELECT IDUTENTE FROM $tbl_name WHERE NUMEROCELL = '$NUMEROCELL' AND EMAIL = '$EMAIL' ";
    $result = mysql_query($query) or die($query."<br/><br/>".mysql_error());
    $IDUTENTE = mysql_result($result, 0);
    echo "La richiesta di prenotazione è stata inoltrata con successo per questo Evento:";
    echo $NOMEEVENTO;
    echo "<br>";
    echo $IDEVENTO;
    echo "<br>";
    echo "Annotati il tuo ID Utente nel caso volessi eliminare la prenotazione: ";
    echo $IDUTENTE;
    echo "<br>";
    echo "<a href='http://clubexplois.altervista.org/prenota.html'>Torna indietro</a>";
    }else {
    echo "Il numero dei posti disponibili è inferiore al numero della vostra richiesta";
    header('refresh: 3; url=http://clubexplois.altervista.org/prenota.html');
    }
    ?>
    
    <?php 
    // close connection 
    mysql_close();
    ?>

    QUESTA E' LA PARTE IN HTML DOVE C'E' IL FORM PER INSERIRE I DATI:
    Codice:
    $get=mysql_query("SELECT NOMEEVENTO FROM $tbl_name1");?>
    <FORM METHOD="post" ACTION="prenota.php">
    <select name="nomeevento">
        <option value="0">Scegli Evento</option>
            <?php
                while($row = mysql_fetch_assoc($get))
                {
                ?>
                <option value = "<?php echo($row['NOMEEVENTO'])?>" >
                    <?php echo($row['NOMEEVENTO']) ?>
                </option>
                <?php
                }   
               
            ?>
    		 </select> 
    		 <?php
    		 $NOMEEVENTO = $_POST['nomeevento'];?>
    		 <?php

    Però mi da sempre 0 come IDEVENTO
    e in più l'IDCLIENTE aumenta sempre non so è giusto ?
    Ultima modifica di clubexplois : 28-01-2014 alle ore 17.23.35

  22. #22
    Guest

    Predefinito

    Cancella la password e provvedi a modificarla subito!!!!!!!!!!!!!!!!!!!!!!!

  23. #23
    Guest

    Predefinito

    si scusami per fretta ho copiato tutto il codice :( comunque puoi aiutarmi ancora ?

  24. #24
    Guest

    Predefinito

    Non ho ancora letto bene, ma già così vedo qualcosa che non capisco

    Codice PHP:
    $sql="INSERT INTO $tbl_name(NOME,NOMEEVENTO, COGNOME, NUMEROCELL, EMAIL, NUMERO, ORA)VALUES('$NOME', '$NOMEEVENTO', '$COGNOME', '$NUMEROCELL', '$EMAIL', '$NUMERO', '$ORA')";
    $result=mysql_query($sql);
    $IDCLIENTE=mysql_insert_id();
    tu inserisci in un'unica tabella, eventi e clienti?
    chiaro che non ti funziona.

    I Passi logici sarebbero:

    1) Verifcare se il cliente è già registrato
    2a) Se NO registrarlo e ricercare l'id del cliente appena inserito
    2b) Se SI recuperare l'id del cliente.
    3) verificare se ci sono posti disponibili (sufficienti) per l'evento
    4a) se SI, scrivere nella tabella eventi la prenotazioni i posti da prenotare (usando idevento e idcliente).
    4b) se NO, inviare un messaggio di avviso di posti esauriti o non sufficienti a coprire la richiesta.

  25. #25
    Guest

    Predefinito

    no, le tabelle sono separate solo che mi sono dimenticato di rimuovere alcuni campi dalla tabella clienti però le tabelle sono
    clienti, eventi e prenotazioni

    facendo la select idevento from eventi where NOMEEVENTO = $NOMEEVENTO
    non mi restituisce nessun numero

    Il sito non prevede registrazioni, io voglio far si che un utente clicca su prenota e contemporanemente viene segnato tra i clienti e segnata la prenotazione.
    Dopo che gli eventi saranno conclusi tronco prenotazioni e clienti.
    Ultima modifica di clubexplois : 28-01-2014 alle ore 17.47.31

  26. #26
    Guest

    Predefinito

    Citazione Originalmente inviato da clubexplois Visualizza messaggio
    facendo la select idevento from eventi where idevento = IDEVENTO
    non mi restituisce nessun numero
    Controlla che le variabili siano correttamente impostate (fattele stampare).
    A proposito, il metodo che hai usato $variabile = $_POST['variabile'] presenta non pochi problemi di sicurezza ;)

    Citazione Originalmente inviato da clubexplois Visualizza messaggio
    Il sito non prevede registrazioni, io voglio far si che un utente clicca su prenota e contemporanemente viene segnato tra i clienti e segnata la prenotazione.
    Dopo che gli eventi saranno conclusi tronco prenotazioni e clienti.
    OK non vuoi prevedere registrazioni, ma come vuoi gestire il rischio ceh qualcuno si prenoti diverse volte, esaurendo i posti, ed in realtà i posti necessari sono molti meno?
    Io un controllo almeno con la mail lo farei.
    Magari puoi prevedere una conferma tramite link in una mail di risposta per confermare la prenotazione.

  27. #27
    Guest

    Predefinito

    Citazione Originalmente inviato da vplaza Visualizza messaggio



    OK non vuoi prevedere registrazioni, ma come vuoi gestire il rischio ceh qualcuno si prenoti diverse volte, esaurendo i posti, ed in realtà i posti necessari sono molti meno?
    Io un controllo almeno con la mail lo farei.
    Magari puoi prevedere una conferma tramite link in una mail di risposta per confermare la prenotazione.
    si lo avrei fatto in seguito prima vorrei capire bene come fare la base.
    Controllerò le variabili però sono già tantissime volte che le controllo, mi sto un po scoraggiando, andrà a finire che non faccio più nulla :(

  28. #28
    Guest

    Predefinito

    Citazione Originalmente inviato da clubexplois Visualizza messaggio
    si lo avrei fatto in seguito prima vorrei capire bene come fare la base.
    Controllerò le variabili però sono già tantissime volte che le controllo, mi sto un po scoraggiando, andrà a finire che non faccio più nulla :(
    Mai cedere allo sconforto. Dai vai avanti e vedrai che riuscirai ;)

  29. #29
    Guest

    Predefinito

    niente le ho ricontrollate mille volte le variabili o sono cieco oppure la query è sbagliata a questo punto:

    $sqlE="SELECT IDEVENTO FROM Eventi WHERE NOMEEVENTO = '$NOMEEVENTO'";
    $IDEVENTO = mysql_result($sqlE);

    $NOMEEVENTO --> questa è giusta perchè mi restituisce il nome dell'evento

  30. #30
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Ti sto creando l'intero sistema.
    Ho terminato la parte della prenotazione (testata e funzionante).
    L'amministrazione adesso non riesco proprio a farla: provaci, casomai ci penso domani

    LINK FILE .ZIP

    N.B.: alla tabella "Prenotazioni" ho aggiunto la colonna "idprenotazione" che dovresti settare come chiave, comunque trovi tutto nel file "tabelle.txt"

    Ciao!

Pagina 1 di 2 12 UltimoUltimo

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •