作者Notte (why so serious ?)
看板PHP
标题Re: [请益] 下拉式选单传值 用$变数失败?
时间Sun Jul 27 15:23:39 2014
我一开始不好意思把功能都讲出来 感觉很像叫大家帮我写code =.=
因为我不太熟悉後台制作 以下可能有很多错误观念 再麻烦大家见谅
我原本设计的资料库是有
1.产品分类名称 2.产品分类代号 3.产品名称 4.产品代号 5.产品内容
(用来储存图文编辑器的内容)
我的需求功能是
第一个页面可以
增加产品分类
所以我在设计上有两个栏位 输入产品分类名称 & 输入产品分类代号
(这边我一直思考怎麽设计才好 还是我应该在资料库用
enum的型态设定?)
第二个页面是使用图文编辑器
1.有个下拉式选单 会是第一页新增过的
产品分类名称
2.有输入产品名称的栏位
____________以下是我的部分程式码______________
$sql = ("SELECT 产品分类代号,产品分类名称 FROM product
GROUP BY 产品分类名称");
(这边我不知道对不对 因为我不GROUP BY的话 会有很多重复名称)
$result = mysql_query($sql);
<select name="select">
<?php
while ($row =
mysql_fetch_assoc($result)){
echo "<option value =".$row['分类代号'].">".$row['分类名称']."</option>\n";
}
?>
</select>
<input type="submit" value=" 确认新增 "/>
________(以上都包在form里 action到下一页INSERT进资料库的code)____________
另外产品内容跟产品名称 都能顺利进资料库 唯独下拉式选单的值是空值
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 203.121.251.106
※ 编辑: Notte (203.121.251.106), 07/27/2014 15:29:37
1F:推 rocairforce:你的 $result 确定有捞到资的?? 07/27 16:23
2F:→ Notte:!! 好像没有 跑出Resource id #9 但是$sql在资料库跑可以 07/27 16:59
3F:→ Notte:我发现echo $row 也没值 但是选单里面有值 怎麽会这样@@??? 07/27 17:28
4F:推 rocairforce:把你的查询直接下给DB,没报错又没资料就是你的查询 07/27 18:55
5F:→ rocairforce:写错了,有的话在PHP里dump出来看看,如果是空的再去 07/27 18:56
6F:→ rocairforce:检查看看是什麽原因造成资料没到PHP,如果dump出来不 07/27 18:57
7F:→ rocairforce:是空的,再去看你HTML里的回圈错在哪里。 07/27 18:58
8F:→ rocairforce:debug如果经验还不够,最简单的方式就是一层一层去追 07/27 18:59
9F:推 hit1205:原po是在哪里 echo $row 的呢?如果是在 while 後面,因为 07/28 13:35
10F:→ hit1205:纪录已经都跑完了,他只会等於 false @@ 07/28 13:36
11F:→ hit1205:另外'像楼上说的用 var_dump() 会比 echo 好,因为你可以 07/28 13:36
12F:→ hit1205:看到那个变数本身的形态与内容 ($row 在 while 里时应该 07/28 13:36
13F:→ hit1205:是阵列 @@) 不过既然选项有跑出来的话应该是有抓到纪录... 07/28 13:37
14F:推 hit1205:资料库的部分,另一种做法是另外用一个表来存分类与代号 07/28 13:40
15F:→ hit1205:产品这边就只要记录他所属的分类代号就好 @@ 07/28 13:41
16F:→ Notte:感谢! 我会多加尝试的! 我的确是测试时在while後面echo @_@" 07/28 23:15
17F:推 hit1205:mysql_fetch_assoc()的作用是取出一列资料之後,把指针 07/29 10:46
18F:→ hit1205:移到下一列,所以回圈跑第二次的时候就会抓到下一列 07/29 10:46
19F:→ hit1205:直到最後没有任何纪录了,他就会回传false 07/29 10:47
20F:→ hit1205:而while就是不断在执行mysql_fetch_assoc(),直到false 07/29 10:47
21F:→ hit1205:就跳离while,所以在while後面时$row就会等於false 07/29 10:47
22F:→ Notte:已解决 下一页做处理的页面 是要GET select的name! 07/31 18:14
23F:→ Notte:应该说是取POST>>> $i = $_POST['select1']; 07/31 18:15
24F:推 birkhofflee: 请使用 PDO,以後 mysql_ 开头的 function 都会移除 08/20 21:59