当前位置: 代码迷 >> PHP >> 三表联查之后~数组的有关问题~
  详细解决方案

三表联查之后~数组的有关问题~

热度:285   发布时间:2013-01-27 13:55:24.0
三表联查之后~~~数组的问题~~
有点长~~先感谢看完并回复的朋友~~好了~~直入主题

mission_need表是任务表,主键misneed_id
offer_need表是竞价表,主键offneed_id,有任务id字段misneed_id,有发表该竞价的用户id字段offneed_user
userinfo表是用户信息表,主键user_id

举例:
现在是想取出misneed_id=5的这个任务下的任务信息+该任务下的所有竞价+每个开出竞价的该用户信息

我写的SQL是下面这样的~~~

SELECT * 
FROM mission_need
LEFT JOIN offer_need ON mission_need.misneed_id = offer_need.offneed_misid
JOIN userinfo ON offer_need.offneed_user = userinfo.user_id where mission_need.misneed_id=5

贴出部分代码如下
<?php
require('config.php');
require('conn.php');

$misneed_id=$_GET['id'];
$sql="SELECT * 
FROM mission_need
LEFT JOIN offer_need ON mission_need.misneed_id = offer_need.offneed_misid
JOIN userinfo ON offer_need.offneed_user = userinfo.user_id where mission_need.misneed_id='$misneed_id'";
$query=mysql_query($sql);
$result=mysql_fetch_array($query);
print_r($result);

$smarty->display('need_view.html');

?>


我数据库中正常取出是两行记录的...


可我打印出的数组却是这样
Array ( [0] => 1 [misneed_id] => 1 [1] => test [misneed_title] => test [2] => test [misneed_text] => test [3] => 5 [misneed_user] => 5 [4] => 4444 [misneed_price] => 4444 [5] => 0 [misneed_status] => 0 [6] => 0 [misneed_moneystatus] => 0 [7] => 20130119170332 [misneed_time] => 20130119170332 [8] => 20130102122522 [misneed_deadline] => 20130102122522 [9] => 1 [misneed_classid] => 1 [10] => ./upload_file/5/130119050132.jpg [misneed_file] => ./upload_file/5/130119050132.jpg [11] => 1 [offneed_id] => 1 [12] => offer test [offneed_text] => offer test [13] => 50 [offneed_price] => 50 [14] => 20130120211950 [offneed_time] => 20130120211950 [15] => 3 [offneed_round] => 3 [16] => 0 [offneed_status] => 0 [17] => 5 [offneed_user] => 5 [18] => 1 [offneed_misid] => 1 [19] => 5 [user_id] => 5 [20] => pingtai [user_name] => pingtai [21] => 03142410d7285f00e4363e005783c83a [user_pwd] => 03142410d7285f00e4363e005783c83a [22] => 1 [user_power] => 1 [23] => 555@qq.com [user_email] => 555@qq.com [24] => 2147483647 [user_phone] => 2147483647 ) 

这里明显只是其中一条记录的~~求教问题何在

------解决方案--------------------
执行一次 $result=mysql_fetch_array($query);
只读出一条记录
------解决方案--------------------
require('config.php');
require('conn.php');
 
$misneed_id=$_GET['id'];
$sql="SELECT * 
FROM mission_need
LEFT JOIN offer_need ON mission_need.misneed_id = offer_need.offneed_misid
JOIN userinfo ON offer_need.offneed_user = userinfo.user_id where mission_need.misneed_id='$misneed_id'";
  相关解决方案