2013-07-30 16 views
5

Prima di iniziare, QUESTO È UN INCARICO. Sto solo dopo aver dato una mano e qualche consiglio :)Qual è il modo migliore per salvare e caricare un registro attività in PHP?

Sto sviluppando un sito web di abbonamento a una palestra che consente agli utenti di registrarsi, accedere e prenotare un'attività.

Ho tutto ciò che funziona, oltre al sistema di prenotazione delle attività, ed è quello con cui ho bisogno di una guida. Ho un singolo file txt che contiene un registro delle attività di ciascun nome di attività, tempo, quanti possono partecipare in totale. Vorrei aggiungere alla fine di ogni linea di attività di chi frequenta esattamente. Pertanto, consentendo agli utenti di prenotare l'attività, che aggiunge il loro nome utente all'attività.

Questo è esattamente come Al momento ho il mio file di stampa activity.txt (oltre i pulsanti 'libro' in fondo a destra.

NumberOne  3  Wednesday 8am  (BOOK) 
NumberTwo  7  Thursday 10am  (BOOK) 
NumberThree  20  Monday 1pm   (BOOK) 
NumberFour  15  Tuesday 5pm   (BOOK) 

In sostanza, quello che mi serve una guida con i pulsanti è 'libro'. una volta che un pulsante 'prenota' viene premuto, sarà prenotare l'utente nel all'attività

questo è come il mio file activity.txt attualmente appare:.

NumberOne,3,Wednesday 8am 
NumberTwo,7,Thursday 10am 
NumberThree,20,Monday 1pm 
NumberFour,15,Tuesday 5pm 

E questo è il codice che curren tly hanno in fase di stampa le attività:

function bookActivity() 
{ 
$fileContentsArray = file("activity.txt"); 
    echo "<table>"; 
    foreach($fileContentsArray as $one_persons_data) 
{ 
    echo '<tr>'; 
    $splitted = preg_split('/,/', $one_persons_data); 
    foreach ($splitted as $one) 
    { 
    echo "<td>$one</td>"; 
    } 
    echo '</tr>'; 
} 
echo "</table>"; 
} 

Qui di seguito è il mio file di users.txt, se necessario. Tutte le password vengono salvate in MD5

jiten:3fc0a7acf087f549ac2b266baf94b8b1 
jb:3fc0a7acf087f549ac2b266baf94b8b1 
test:bed128365216c019988915ed3add75fb 
joeBlogg:bed128365216c019988915ed3add75fb 
userX:bed128365216c019988915ed3add75fb 
userY:bed128365216c019988915ed3add75fb 

Tutto l'aiuto è molto apprezzato. Molto confuso su come farlo.

+0

Questo sarebbe uno di quei casi in cui una banca dati viene in aiuto. – naththedeveloper

+0

concordato. Sebbene, siamo costretti a usare un file txt :( – Fizzix

+0

quello che stai cercando di fare – Backtrack

risposta

2

Ecco una linea guida approssimativa (non andrò nello specifico perché dopotutto è compito a casa) e terrò l'ipotesi che non ti sia permesso di usare qualcosa di diverso dal file di testo, ma puoi creare/eliminare tanti loro come desideri

  1. analizzare il file txt attività, utilizzando file(...) con le bandiere set corretto
  2. costruire un array che chiave sono le attività "ID" (NumberOne, numberTwo, ecc) e il valore è un altro array contenente i dati di attività. Potresti trovare utile explode() qui.
  3. Per ogni attività creare un file dedicato ad esso (se non esiste già, ovviamente). Questo file conterrà i nomi degli utenti registrati che hanno prenotato l'attività. Ti suggerisco di scrivere un nome per riga in questo file.
  4. quando si preme il pulsante di qualcuno "libro di attività", dovrete effettuare le seguenti operazioni:

    • Controllare se il file esiste attività richiesta. in caso contrario, creare uno vuoto.
    • contare il numero attuale di utenti prenotati e confrontarla con il massimo consentito
    • Se si tratta di meno, aggiungere il nuovo utente al file, altrimenti rifiutare la prenotazione
  5. Per visualizzare l'elenco delle parti prenotati gli utenti, leggono semplicemente il contenuto del file da ciascun file di attività. Potresti trovare utile implode() questa volta.

Spero che questo ti aiuterà a trovare la strada giusta. Un'ultima nota, i file di testo non sono progettati per fare questo: un piccolo database è più facile da usare, più divertente da imparare e più utile per il tuo futuro.

Riferimenti:

+0

Grazie a STT LCU per la vostra guida fantastica e grazie Martin Bean per la vostra modifica Ancora molto nuovo per PHP , quindi dovrò provare ad implementarlo il meglio che posso ... E se possohaha .. – Fizzix

+0

Anche se non sono sicuro su come creare un file .txt – Fizzix

+0

@JadeMulholland vedi la mia modifica, ti aiuterà Inoltre, Google è davvero tuo amico: prova a s earch for "write a file PHP";) –

1

alcune cose:

  1. Questo non suona come un sasso; sembra un database basato su file.
  2. Se consentito, utilizzare un file .csv (non .txt) e analizzarlo utilizzando fgetcsv().
  3. Dato che è il tuo database, dovrai scriverci sopra. È possibile utilizzare fputcsv() per quello.

(. FWIW, il file .txt è già un csv, non sei solo trattare in questo modo)

Per la domanda specifica: Facendo clic su "Book" ha solo bisogno di passare il nome del corso di uno script che aggiungerà l'utente corrente a quel corso (se non sono già registrati). È possibile passare il nome del corso utilizzando POST (moduli HTML) o, più semplicemente, GET (collegamenti e parametri di query).

utilizzando i collegamenti (GET) potrebbe essere simile a questo:

$bookingUrl = "register.php?courseName=".urlencode($courseName); 

utilizzando un modulo (POST) potrebbe essere simile a questo:

<form action="register.php" method="POST"> 
     <input type="hidden" value="<?= $courseName; ?>" /> 
     <input type="submit" value="Book" /> 
    </form> 

Un'altra risposta menzionato utilizzando file separati per monitorare le registrazioni per corso ma non penso sia necessario; basta usarne uno E 'utile pensare a quello che stai veramente monitoraggio:

  1. Corsi disponibili, "courses.txt": nome del corso, durata del corso (capito)
  2. utenti "users.txt": nome utente, password (capito)
  3. iscrizioni, "registrations.txt": nome utente, nome del corso (non ottenuto)
+0

Ah, interessante. Non ero sicuro delle differenze tra csv e txt. Molto utile. Grazie :) – Fizzix

+0

Penso di aver deciso di utilizzare questo metodo poiché non ho idea di come lavorare con più file txt, e non sono sicuro di come crearli. Grazie per il tuo aiuto Dan. – Fizzix

+0

Guarda tutte le funzioni "f" (file), soprattutto: [fopen] (http://php.net/manual/en/function.fopen.php), [fclose] (http://php.net /manual/en/function.fclose.php), [fwrite] (http://php.net/manual/en/function.fwrite.php), fputcsv e fgetcsv. – danonanimal

Problemi correlati