Themecreator Skrevet 12. februar 2011 Del Skrevet 12. februar 2011 Jeg er i ferd med å "utvikle" et reserveringsscript for min egen del, og har møtt et problem. Funksjonene det ferdige scripte skal ha, er at du skal kunne skrive inn navn, antall billetter og annen informasjon i en database. Videre skal informasjonen legges inn i en database, og du skal kunne få et spesifikt id nummer for din bestilling. Problemet er da å kunne begrense bestillingene i forhold til billettene. Si at det bare er 200 billetter tilgjengelig. Jeg er klar over muligheter i forhold til å kunne telle anntall rader i databasen, men om jeg gjør det på den måten, så tas det ikke hensyn til antall billetter hver har bestilt. Jeg forestiller meg at man kanskje kan legge sammen verdiene i kolonnen "antall", eller noe lignende, men hva vet jeg ... Jeg er ikke så veldig erfaren innenfor mysql ,og php, jeg håper noen har en løsning på dette problemet! - Themecreator Lenke til kommentar
BigJackW Skrevet 12. februar 2011 Del Skrevet 12. februar 2011 (endret) Er flere måter å løse dette problemet på. Personlig tror jeg at har kommet til å lage det slik man har 1 rad per bilett, og hver rad har en kolonne knyttet til bruker-ID eller noe. Dermed kan man bruke "SELECT COUNT(*) FROM biletter" for eksempel. Endret 12. februar 2011 av BigJackW Lenke til kommentar
Thomas. Skrevet 12. februar 2011 Del Skrevet 12. februar 2011 Du kan bruke to tabeller. Den ene tabellen inneholder bestillingsnummere. Den andre tabellen inneholder billetter. Slik at hvis du f.eks bestiller 5 billetter settes det 5 rader inn i tabell 2 og 1 rad inn i tabell 1 med bestillings-nummer. Ved bestilling av x antall billetter sjekker du om antall bestilte billetter(antall rader i tabell 2) er over 200 eller det antallet du skal ha som max. Lenke til kommentar
Themecreator Skrevet 12. februar 2011 Forfatter Del Skrevet 12. februar 2011 Aha! Den var ikke dum! Takker og bukker, Thomas! Bare et kjapt annet spørsmål... Finnes det en funksjon i php som genererer en tilfeldig kode på x antall bokstaver/tall evt. også symboler? Tenkte i forhold til en verifiseringskode på utskriften som jeg echoer tilbake etter hver gang formen er submitted. takk igjen! Lenke til kommentar
Merko Skrevet 13. februar 2011 Del Skrevet 13. februar 2011 Aha! Den var ikke dum! Takker og bukker, Thomas! Bare et kjapt annet spørsmål... Finnes det en funksjon i php som genererer en tilfeldig kode på x antall bokstaver/tall evt. også symboler? Tenkte i forhold til en verifiseringskode på utskriften som jeg echoer tilbake etter hver gang formen er submitted. takk igjen! Jeg bruker iallefall denne koden (som forøvrig er skrevet av Jooakim her på forumet) function makeCode($lengde = 15) { $kode = ""; $poss = "ABCDEFGHIJKLMOPQRSTUVWXYZ0123456789abcdefghijklmopqrstuvwxyz"; $i = 0; while($i < $lengde) { $char = substr($poss, mt_rand(0, strlen($poss)-1), 1); if(!strstr($kode, $char)) { $kode .= $char; $i++; } } // return hash('sha256', $kode); return $kode; } Jeg har kunn begrenset efaring innen php, men den burde vel kanskje fungere greit for ditt behov? Du kan helt sikkert sette inn forskjellige tegn innen for $poss variablen slik at den genererer andre tegn også. Lenke til kommentar
BigJackW Skrevet 13. februar 2011 Del Skrevet 13. februar 2011 (endret) Jeg bruker en lignende kode når jeg genererer salts for nye brukere blant annet. <?php /** * Generates a random salt. * * Returns a random salt of between $MinLen to $MaxLen characters, * (minimum 6 chars) * * @author Hellkeepa * @param int $MinLen = 7 * @param int $MaxLen = 10 * @return string */ function Gen_Salt ($MinLen = 6, $MaxLen = 10) { if ($MinLen < 6) { $MinLen = 6; } $NumChars = mt_rand ($MinLen, $MaxLen); $Salt = ''; $Pool = array_merge (range (chr (32), chr (126)), range (chr (128), chr (254))); $PoolEnd = count ($Pool); for ($Run = 0; $Run < $NumChars; $Run++) { $Salt .= $Pool[mt_rand (0, $PoolEnd)]; } return $Salt; } ?> Genererer random ascii tegn, deretter kan man f.eks. kryptere med md5 eller sha1. Endret 13. februar 2011 av BigJackW Lenke til kommentar
Themecreator Skrevet 13. februar 2011 Forfatter Del Skrevet 13. februar 2011 (endret) Flott! Takker og bukker! Tror jeg nesten bare må kjøre på med ett til spørsmål. Under ser dere sammensetningen av koden min. Med min begrenset kunnskap innenfor nettopp dette, så er jeg litt usikker på hva som er galt.. Formen er der nemlig fortsatt når antall poster overskrider 6 (et relativt lavt tall, bare for å sjekke). Har forresten ikke fiksa det med to databaser enda, men det kommer. Poenget med koden under, er at formen på en eller annen måte skal bli deaktivert når antall poster overskrider 6. Det fungerer ikke :/ <?php $connect = mysql_connect('localhost', 'bruker', 'passord'); $fornavn = $_POST['fornavn']; $etternavn = $_POST['etternavn']; $email = $_POST['email']; $telefon = $_POST['telefon']; $antall = $_POST['antall']; $kode = 'testkode'; if(!$connect){ die('Klarte ikke å koble til! '. mysql_error()); } if($_POST['submit']){ mysql_select_db('database', $connect); $result = mysql_query("SELECT COUNT(*) FROM forestilling_1"); $row = mysql_fetch_row($result); if ($row[0] > 6) { echo 'Vi har dessverre ikke plass til flere reserveringer! Prøv en annen forestilling!'; } else { mysql_query("INSERT INTO forestilling_1 VALUES ('', '$fornavn', '$etternavn', '$email', '$telefon', '$antall', '$kode')"); echo'<br/>Dine reservasjoner er lagret!'; } } ?> <form action="billetter.php" method="POST"> Fornavn: <input type="text" name="fornavn" maxlength="50"/><br/> Etternavn: <input type="text" name="etternavn" maxlength="50"/><br/> Email: <input type="text" name="email" maxlength="75"/><br/> Telefon: <input type="text" name="telefon" maxlength="8"/><br/> Antall: <input type="text" name="antall" maxlength="1"/><br/><br/> <input type="submit" name="submit" value="Reserver"/> </form> Endret 13. februar 2011 av Themecreator Lenke til kommentar
Thomas. Skrevet 13. februar 2011 Del Skrevet 13. februar 2011 http://php.net/manual/en/function.mysql-num-rows.php Lenke til kommentar
Themecreator Skrevet 13. februar 2011 Forfatter Del Skrevet 13. februar 2011 Da fungerer det! Takker igjen! Fjernet forresten også "$num_rows --> [0] <--". Vet ikke helt hvorfor den var der, men fungerte ikke når den var der ... Lenke til kommentar
Thomas. Skrevet 14. februar 2011 Del Skrevet 14. februar 2011 Har du fått til systemet sånn nogelunde nå? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå