【发布时间】:2012-09-03 07:40:58
【问题描述】:
我有以下代码..
echo "<form><center><input type=submit name=subs value='Submit'></center></form>";
$val=$_POST['resulta']; //this is from a textarea name='resulta'
if (isset($_POST['subs'])) //from submit name='subs'
{
$aa=mysql_query("select max(reservno) as 'maxr' from reservation") or die(mysql_error()); //select maximum reservno
$bb=mysql_fetch_array($aa);
$cc=$bb['maxr'];
$lines = explode("\n", $val);
foreach ($lines as $line) {
mysql_query("insert into location_list (reservno, location) values ('$cc', '$line')")
or die(mysql_error()); //insert value of textarea then save it separately in location_list if \n is found
}
如果我在 textarea 上输入以下数据(假设我从预订表中获得了最大的 reservno '00014'),
Davao - Cebu
Cebu - Davao
然后提交,我的 location_list 表中会有这些数据:
loc_id || reservno || location
00001 || 00014 || Davao - Cebu
00002 || 00014 || Cebu - Davao
然后这段代码:
$gg=mysql_query("SELECT GROUP_CONCAT(IF((@var_ctr := @var_ctr + 1) = @cnt,
location,
SUBSTRING_INDEX(location,' - ', 1)
)
ORDER BY loc_id ASC
SEPARATOR ' - ') AS locations
FROM location_list,
(SELECT @cnt := COUNT(1), @var_ctr := 0
FROM location_list
WHERE reservno='$cc'
) dummy
WHERE reservno='$cc'") or die(mysql_error()); //QUERY IN QUESTION
$hh=mysql_fetch_array($gg);
$ii=$hh['locations'];
mysql_query("update reservation set itinerary = '$ii' where reservno = '$cc'")
or die(mysql_error());
应该用'Davao - Cebu - Davao' 更新预订表,但它会返回这个'Davao - Cebu - Cebu'。我以前在这个论坛的帮助下让这段代码正常工作,但现在我面临另一个困难。只是无法让它工作。请帮我。提前致谢!
【问题讨论】:
-
@Omesh,我将此代码归功于您。 :)) 请继续帮助我完成这项工作。谢谢
-
是的,您可以发布原始问题的链接:stackoverflow.com/questions/12171581/mysql-string-functions/…
-
你真的需要开始规范化。你正在撕开一根绳子,只是为了再次重建它......
-
@MarcB,是的,我会在解决这个问题后这样做。一次一个问题。我不是那个天才。 :))) 不过感谢您的建议。 :)))
-
loc_id的数据类型是什么?应该是INT。你能发布你的Mysql版本吗?
标签: mysql sql-order-by