webForumDet fria alternativet

Ordernummer

PHPur PHP

7 svar · 811 visningar · startad av tilleritova

Medlem sedan okt. 2005112 inlägg
Frågan#1

Hej.

Jag håller på med en Enkel Webshop som bygger på textfiler.
Man fyller i ett Formulär som skriver till en .txt-fil.

Jag vill ha ett ordernummer som ökar med 1 varje gång någon fyller i formuläret... kan någon hjälpa mig med det?

Tack

Medlem sedan nov. 200321 inlägg
#2

Skapa en separat textfil som håller koll på aktuellt ordernr om du inte kan använda dig av en mysql databas.

$filename = "c:\\Inetpub\\wwwroot\\ordernr.txt";
$handle = fopen($filename, "a+");
rewind($handle);
$ordernr = fgets($handle);
if(!is_numeric($ordernr)) $ordernr = 0;
fclose($handle);
$ordernr++;

$handle = fopen($filename, "w");
fwrite($handle, $ordernr);
fclose($handle);
Medlem sedan nov. 20051 317 inlägg
#3

Spinx skrev:

Skapa en separat textfil som håller koll på aktuellt ordernr om du inte kan använda dig av en mysql databas.

$filename = "c:\\Inetpub\\wwwroot\\ordernr.txt";
$handle = fopen($filename, "a+");
rewind($handle);
$ordernr = fgets($handle);
if(!is_numeric($ordernr)) $ordernr = 0;
fclose($handle);
$ordernr++;

$handle = fopen($filename, "w");
fwrite($handle, $ordernr);
fclose($handle);

Hur skulle man gjort om man kör MySQL (som jag gör)?

Medlem sedan nov. 200321 inlägg
#4

Skapa en tabell för alla order och en tabell för alla orderrader, sen använder du autoincrement på ordertabellen helt enkelt.

Medlem sedan okt. 2005112 inlägg
#5

Finns det någon rad så att den skickar ett mail till mig när jag har fått en beställning?

Medlem sedan juni 200032 967 inlägg
Medlem sedan okt. 2005112 inlägg
#7

tack allihopa för hjälpen... det funkar bra nu...

Medlem sedan juni 20031 837 inlägg
#8

För att göra ditt skript säkrare bör du även låsa filen så ingen annan kan ändra den medan du läser och uppdaterar ordernummret.
kolla mer på flock http://se.php.net/manual/sv/function.flock.php

har inte testat skriptet utan endast försökt modifiera det så att den ska låsa filen.

$filename = "c:\\Inetpub\\wwwroot\\ordernr.txt";
$handle = fopen($filename, "a+");

if (flock($handle, LOCK_EX))  // do an exclusive lock
{
  rewind($handle);
  $ordernr = fgets($handle);
  if(!is_numeric($ordernr)) $ordernr = 0;
  $ordernr++;
  rewind($handle);
  fwrite($handle, $ordernr);
  flock($handle, LOCK_UN); // release the lock
}
else
{
   echo "Couldn't lock the file !";
}

fclose($handle);
143 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)