大家好,有一个问题请教一下大家,我现在做了一个网站,之前在一个菜单中有三个种类,由3个php文件做的,每个种类下又有3个不同的网页,每个网页都有一个php文件,这样就有了12个php文件,太多了。现在我想网页构成都一样,三个种类的由一个php文件就行了,其余的9个用另一个php文件就行了。
<form method=post action="categorie.php">
<input type="submit" name="<?php echo $categorie[$j]; ?>" value="<?php echo $categorie[$j]; ?>"><br>

</form><br>
categorie.php中:$categorie=$_POST[$categorie[$j]];
$resultat=mysql_query("SELECT * FROM circuits WHERE categorie=$categorie ")or die(mysql_error());现在三个种类的按钮已经出来了,链接到categorie.php时从数据库中读不到数据,为什么?

解决方案 »

  1.   

    categorie字段是什么类型的?如果是整数型的,不能作为表单name属性值,如果是字符串类型的,数据库查询语句要加上引号:
    $categorie=$_POST[$categorie[$j]]; //这里有可能是错误的,把完整代码发上来看看
    $resultat=mysql_query("SELECT * FROM circuits WHERE categorie='{$categorie}'")or die(mysql_error());
      

  2.   

    文件多不一定是坏事。
    要看代码结构。
    如果说他不同的文件是相同的代码只不过参数不一样那就确实需要重构。
    你先确定数据库连接正常,然后确定$categorie的值是否正确。打印出你的sql语句,在你的phpmyadmin里面运行一下,看sql语句是否正确……
    一步步检查
      

  3.   

    <?php
    $resultat=mysql_query("select * from circuits");
    $i=0;
    while($row=mysql_fetch_array($resultat))
    {
    $categorie[$i]=$row['categorie'];
    $i++;
    }
    $value=0;
    $N=0;
    for($j=0;$j<$i;$j++)
    {
    $T=0;
    for($k=$j-1;$k>=0;$k--)
    {
    if($categorie[$k]==$categorie[$j])
    $T++;
    }
    $value=$T;
    if($value==0)
    {
    $Cate[$N]=$categorie[$j];
    $N++;
    ?>
    <form method=post action="categorie.php">

    <input type="submit" name="$Cate[$N]" value="<?php echo $categorie[$j]; ?>"><br>

    </form><br>



    <?php
    } }
    ?>categorie.php中:
    <?php
    include("indexbase2.php");
    include("conn.php");$resultat=mysql_query("SELECT * FROM circuits WHERE categorie='".$_POST['$Cate[$N]']."' ")or die(mysql_error());?>
    因为circuits表单中有9个id,每3个是一类(categorie),所以上面的是输出3个categorie的按钮,我想都链接到categorie.php中,根据不同的变量从数据库读取不同的内容,还是有问题
    Notice: Undefined index: $Cate[$N] in E:\Program Files\EasyPHP5.3.0\www\royaltour3\categorie.php on line 36读取不到数据库的内容,谢谢大家!
      

  4.   

    $categorie=$_POST[$categorie[$j]];
    中的 $categorie[$j] 还存在吗?
    你 print_r($_POST); 看看
      

  5.   

    里面是空的,读不到$categorie[$j],怎么办啊?
      

  6.   

    谢谢4楼的朋友提醒,我刚已经发现问题了,name不能用变量,我加了一个提交按钮就好了!非常感谢!