大致要求是这样的,用PHP做一个小系统,用户提交订单然后post到系统,存储到txt文本文件里面。
每个订单是一行单独保存,为了方便索引,要定义第一个为订单编号,要求订单编号是唯一的,
要怎么样才可以做到这个功能呢?其文本文件的内容大约是这个样子:
B0003 SSS Great Park Feb 29 2004
B0004 EAST China May 20 2011后面的功能已经可以全部实现,我也可以做到输入B0003就搜索到相应的订单条目并显示
但是问题是用户输入订单的时候,怎么样才可以保持订单编号格式和保持其唯一性呢?
B0003 B0004之类都是用txt文本框输入文本。输入订单页面代码:只是用html处理
------------------<body>
<h1>Booking System</h1>
<hr /><form action="signguestbook.php" method="post">
<p> <label for="booking_code">Booking Code(required): </label>
<input type="text" name="booking_code" id="booking_code" />
</p>
<p> <input type="submit" value="Submit Booking" />
<input type="reset" value = "reset"/>
</p>
</form>
<p><a href="showguestbook.php">Show Guest Book</a></p>
</body>-------------------
处理订单录入txt的代码,用php创建文本文件并写入
<?php
$booking_code = $_POST["booking_code"];
$bookings = fopen($path. "/bookings.txt", "a");
fwrite($bookings, $booking_code ."\t ". $type . "\r\n"))
fclose($bookings);
?>
-----------------------
我是用strstr函数来查找订单编号的
输入查找的页面代码:<body>
<h1>Booking Search System</h1>
<hr /><form action="showguestbook.php" method="post">
<p> <label for="search">Booking Code: </label>
<input type="text" name="search" id="search" />
</p>
<p> <input type="submit" value="View Booking" />
<input type="reset" value = "reset"/>
</p>
</form>
<p><a href="booking.php">Star Day Tour Booking</a></p>
</body>----------------
处理查询的PHP代码
<?php
$guestBook = "../data/bookings.txt";
$search = $_POST["search"];
$guestArray = file($guestBook);
for ($i = 0; $i < count($guestArray); $i++) {
echo strstr($ga,$search); //我用strstr功能来查找相应的字符串,然后输出整行内容
}
?>
每个订单是一行单独保存,为了方便索引,要定义第一个为订单编号,要求订单编号是唯一的,
要怎么样才可以做到这个功能呢?其文本文件的内容大约是这个样子:
B0003 SSS Great Park Feb 29 2004
B0004 EAST China May 20 2011后面的功能已经可以全部实现,我也可以做到输入B0003就搜索到相应的订单条目并显示
但是问题是用户输入订单的时候,怎么样才可以保持订单编号格式和保持其唯一性呢?
B0003 B0004之类都是用txt文本框输入文本。输入订单页面代码:只是用html处理
------------------<body>
<h1>Booking System</h1>
<hr /><form action="signguestbook.php" method="post">
<p> <label for="booking_code">Booking Code(required): </label>
<input type="text" name="booking_code" id="booking_code" />
</p>
<p> <input type="submit" value="Submit Booking" />
<input type="reset" value = "reset"/>
</p>
</form>
<p><a href="showguestbook.php">Show Guest Book</a></p>
</body>-------------------
处理订单录入txt的代码,用php创建文本文件并写入
<?php
$booking_code = $_POST["booking_code"];
$bookings = fopen($path. "/bookings.txt", "a");
fwrite($bookings, $booking_code ."\t ". $type . "\r\n"))
fclose($bookings);
?>
-----------------------
我是用strstr函数来查找订单编号的
输入查找的页面代码:<body>
<h1>Booking Search System</h1>
<hr /><form action="showguestbook.php" method="post">
<p> <label for="search">Booking Code: </label>
<input type="text" name="search" id="search" />
</p>
<p> <input type="submit" value="View Booking" />
<input type="reset" value = "reset"/>
</p>
</form>
<p><a href="booking.php">Star Day Tour Booking</a></p>
</body>----------------
处理查询的PHP代码
<?php
$guestBook = "../data/bookings.txt";
$search = $_POST["search"];
$guestArray = file($guestBook);
for ($i = 0; $i < count($guestArray); $i++) {
echo strstr($ga,$search); //我用strstr功能来查找相应的字符串,然后输出整行内容
}
?>
我想如果在订单提交页面做一个输入验证可以吗?
先验证订单号码再post,每次自己加一,不过是文本就不知道怎么样加了。
我是新手刚刚学PHP,连有什么函数都不清楚啊,谢谢。
uniqid(prefix,more_entropy)prefix 可选。为 ID 规定前缀。如果两个脚本在相同的微妙生成 ID,该参数很有用。
more_entropy 可选。规定位于返回值末尾的更多的熵。//==============
fwrite($bookings,uniqid('B').' '.$booking_code ."\t ". $type . "\r\n"))
但是我是靠这个B0001来实现搜索功能的啊,B0001变成了一串数字,却无法搜索了。<?php
$booking_code = $_POST["booking_code"];
$booking_code = uniqid(); //这个是我加入的地方,是可以改变,但是却无法保存原来的B0001了
$bookings = fopen($path. "/bookings.txt", "a");
fwrite($bookings, $booking_code ."\t ". $type . "\r\n"))
fclose($bookings);
?>
也需要B0001这样的格式啊。
但是你得考虑删除数据的问题,因为是根据行数产生的,所以如果删除了数据那么就有可能产生重复的
编号.
$id= 'B'.sprintf('%04d',cf('110.php'));
echo $id; //B0006function Cf($Fname){
$fp=fopen(trim($Fname),"r");
while(!FEOF($fp))
{
$Arr[]=fgets($fp,4096);
}
return count($Arr);
}
简单点,建一个文件来做自增,取里面的值补全做ID,写好加1 多线程需加锁