PHP中文俱乐部's Archiver

johnsysq 发表于 2006-5-25 11:01

问一个关于两个表查询后,将查询后的数据插入第三个表中的问题???

问一个关于两个表查询后,将查询后的数据插入第三个表中的问题???
php5关于mysql_fetch_array的例子中很简单,但我现在要做在一个数据库中有三个表,要查出这两个表中的内容,然后将查询的内容(两个字段)插入第三个表中。我改了一个程序,但在***之间报错,提示不应当出现$。。。。哪位给看看是什么原因????
代码如下:
<?
include 'db.inc';
if($zbdw=="")
{
    echo "<p align=center>Õб굥λÃû³Æ²»ÄÜΪ¿Õ!";
        echo "<meta http-equiv=\"refresh\" content=\"5;URL=tbxx.html\">";
        exit();
}
if($gsmc=="")
{
    echo "<p align=center>Ͷ±êµ¥Î»Ãû³Æ²»ÄÜΪ¿Õ!";
        echo "<meta http-equiv=\"refresh\" content=\"5;URL=tbxx.html\">";
        exit();
}
if($packno=="")
{
    echo "<p align=center>Ͷ±ê±ê¶Î»ò°üºÅ²»ÄÜΪ¿Õ!";
        echo "<meta http-equiv=\"refresh\" content=\"5;URL=tbxx.php\">";
        exit();
}
if($tbbj=="")
{
    echo "<p align=center>Ͷ±ê±¨¼Û²»ÄÜΪ¿Õ!";
        echo "<meta http-equiv=\"refresh\" content=\"5;URL=tbxx.php\">";
        exit();
}
if($zmark=="")
{
    echo "<p align=center>ÊÇ·ñÖб겻ÄÜΪ¿Õ!";
        echo "<meta http-equiv=\"refresh\" content=\"5;URL=tbxx.php\">";
        exit();
}
$result=mysql_query("SELECT zbgg.projectid,userinfo.userid from zbgg,userinfo where projectid=".$_POST['projectid']." and userid=".$_POST['userid'].");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
     ***** $u="INSERT INTO tbxx VALUES ('$row["projectid"]', '$row["userid"]','".$_POST['packno']."','".$_POST['tbbj']."','".$_POST['zmark']."')";****
$result=mysql_query($u,$link);
echo "<p align=center>Ͷ±êÐÅÏ¢ÌîдÍê±Ï!";
echo "<meta http-equiv=\"refresh\" content=\"7;URL=tbxx.php\">";
mysql_free_result($result);
}
        mysql_close($link);
?>

Boban 发表于 2006-5-25 11:56

回复: 问一个关于两个表查询后,将查询后的数据插入第三个表中的问题???

[php]
$u="INSERT INTO tbxx VALUES ('$row["projectid"]', '$row["userid"]','".$_POST['packno']."','".$_POST['tbbj']."','".$_POST['zmark']."')";
// 这样的写法有明显的错误。而且看不清楚,你可以改写成这样
$u = sprintf("INSERT INTO tbxx VALUES ('%s', '%s','%s','%s','%s')",参数1,参数2,参数3,参数4,参数5);
)
[/php]

johnsysq 发表于 2006-5-25 16:32

回复: 问一个关于两个表查询后,将查询后的数据插入第三个表中的问题???

老大:报错。。。。
Parse error: syntax error, unexpected T_STRING in C:\Program Files\Apache Group\Apache2\htdocs\insert2.php on line 35
我想是应该是逻辑上的错误。。。。但又不知该将"$U"这句放到哪里。。。:confused:

johnsysq 发表于 2006-5-29 16:17

回复: 问一个关于两个表查询后,将查询后的数据插入第三个表中的问题???

Boban老大及各位师兄,还是不好使啊。。。。怎么办呢???我现在卡在这儿了。。。老板明天就要看。。。。就是$U=insert into这句,我用排除法,在这儿换一句也不行,就是报错。脑子都木了!!!哪位给我帮看一下,谢了!!:(

Maxwin 发表于 2006-5-29 19:22

回复: 问一个关于两个表查询后,将查询后的数据插入第三个表中的问题???

你 echo $U; 看看符合mysql的逻辑否

johnsysq 发表于 2006-6-2 08:56

回复: 问一个关于两个表查询后,将查询后的数据插入第三个表中的问题???

:confused: 偶昨晚调试了一下,现在什么错也不报了,运行后在游览器里只显示一个空白页面,没有任何提示。。。哪位再给看一下究竟是什么原因呢???谢了先!!!!
修改后的代码如下:
<?
include 'db.inc';
if($zbdw=="")
{
    echo "<p align=center>招标单位名称不能为空!";
        echo "<meta http-equiv=\"refresh\" content=\"5;URL=tbxx.html\">";
        exit();
}
if($gsmc=="")
{
    echo "<p align=center>投标单位名称不能为空!";
        echo "<meta http-equiv=\"refresh\" content=\"5;URL=tbxx.html\">";
        exit();
}
if($packno=="")
{
    echo "<p align=center>投标标段或包号不能为空!";
        echo "<meta http-equiv=\"refresh\" content=\"5;URL=tbxx.php\">";
        exit();
}
if($tbbj=="")
{
    echo "<p align=center>投标报价不能为空!";
        echo "<meta http-equiv=\"refresh\" content=\"5;URL=tbxx.php\">";
        exit();
}
if($zmark=="")
{
    echo "<p align=center>是否中标不能为空!";
        echo "<meta http-equiv=\"refresh\" content=\"5;URL=tbxx.php\">";
        exit();
}
$sql = "SELECT zbgg.projectid,userinfo.userid from zbgg,userinfo where projectid='.$_POST[projectid].' and userid='.$_POST[userid].'";
$result = mysql_query($sql);
if (!$result) {
        echo "Could not successfully run query ($sql) from DB: " . mysql_error();
        exit;
    }
   while ($row = mysql_fetch_assoc($result)) {
$u = sprintf("INSERT INTO tbxx VALUES ('%s','%s','%s','%s','%s','%s','%s')",'$row[userid]','$row[projectid]','$_POST["packno"]','$_POST["zbnr"]','$_POST["zbsl"]','$_POST["tbbj"]','$_POST["zmark"]');
echo "$u";
echo "successfully insert!". mysql_error();
echo "<meta http-equiv=\"refresh\" content=\"7;URL=tbxx.php\">";
}
mysql_free_result($result);
mysql_close($link);
?>

Maxwin 发表于 2006-6-2 09:08

回复: 问一个关于两个表查询后,将查询后的数据插入第三个表中的问题???

空白?你在最后加个 echo 'end'; 看看有没有输出

johnsysq 发表于 2006-6-2 09:43

回复: 问一个关于两个表查询后,将查询后的数据插入第三个表中的问题???

testing......:)

johnsysq 发表于 2006-6-6 09:59

回复: 问一个关于两个表查询后,将查询后的数据插入第三个表中的问题???

各位:
"echo 'end';"也还是不行啊!我想原理很简单:“就是把两个表相对应字段projectid,userid的值取出来后,放入数组中,再把这个数组与表单传递过来的其他值一起插入一个新的表中”。但就是插入不了新表中???郁闷。。。。,我怀疑是不是取出的数组问题??我原来只通过表单传递变量就能顺利地将值插入到表中。可是现在,就是不行。哪位高手帮帮忙,给指点一二。。。。。:(

Maxwin 发表于 2006-6-7 18:46

回复: 问一个关于两个表查询后,将查询后的数据插入第三个表中的问题???

我让你加个 echo 'end'; 就是看看php程序又没有错误,既然你仍然看不到结果,就仔细检查自己的php程序吧。碰到算法的问题再说

wish2road 发表于 2006-7-22 15:37

回复: 问一个关于两个表查询后,将查询后的数据插入第三个表中的问题???

$u="INSERT INTO tbxx VALUES ('$row["projectid"]', '$row["userid"]','".$_POST['packno']."','".$_POST['tbbj']."','".$_POST['zmark']."')";


将"projectid"、"userid",“”去掉

ttian939 发表于 2006-7-23 16:21

回复: 问一个关于两个表查询后,将查询后的数据插入第三个表中的问题???

先echo出sql语句,然后房到phpmyadmin里跑下,看看效果,实在不行就直接在phpmyadmin里把结果用查询查出来,在把它自动生成的语句考到程序里,在把变量换进去,一定一点问题没有.

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.