doulu4413 2013-06-09 03:23
浏览 9
已采纳

爆炸多个用户ID

Im having trouble getting explode to work I have a table field named Attending with multiple user Ids separated with commas 73,1,5 right now i can easily get user 73 to echo out but need explode for the rest, I want it to echo out each username of those 3 users or however many it ends up being. I was thinking it might be something like what i commented out with the //

Attending Field is list of users http://imageshack.us/a/img38/1425/eventsne.jpg

Trying to Echo out like this once i get username working ill do the avatar and in a table http://imageshack.us/a/img819/8210/events2d.jpg

$Attending1 = array(); 
$Attending1 = mysql_query("SELECT * FROM Events, Users WHERE Events.Attending = Users.UserId");

//$AttendingUserIds = $Attending1['Attending'];
//$AttendingExploded = explode(",", $AttendingUserIds);

//$Attending3 = array();
//$Attending3 = mysql_query("SELECT * FROM Events, Users WHERE $AttendingExploded = Users.UserId");


while ($Attending2 = mysql_fetch_array($Attending1)) {
    echo $Attending2['username'];
}

Just tryed KyleK 3rd suggestion

$Attending1 = array();
$Attending1 = mysql_query("SELECT * FROM Events, Users WHERE Events.Attending = Users.UserId");

$AttendingUserIds = $Attending1['Attending'];
//$AttendingExploded = explode(",", $AttendingUserIds);

$Attending3 = array();
$Attending3 = mysql_query("SELECT * FROM Events, Users WHERE Users.UserId IN ($AttendingUserIds)");

It gives me Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource where the While starts.

  • 写回答

3条回答 默认 最新

  • duan032225 2013-06-09 05:07
    关注

    You can do it all in just one SELECT, by joining Events and Users tables thru the find_in_set() function. That way, you will get all users which attended each event, because find_in_set() will look up the first parameter in the CSV string supplied as the second parameter. You may also want to add a WHERE to filter a specific event. And don't forget to replace the * with only the fields you need, to avoid unnecessary data traffic:

    $Attending = array(); 
    $Attending = mysql_query("
      SELECT * 
      FROM Events e
      INNER JOIN Users u ON find_in_set(u.UserId, e.Attending) 
    ");
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法