mysqli\u multi\u query()用null重复获取的

mrwjdhj3  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(433)

我正在尝试使用mysqli\u multi\u query()从多个表中获取所有知道“photoshop”及其所有详细信息的用户。我也得到了结果,但是也有一些不速之客和正确的结果是空的。他们为什么在这里?
代码和输出如下:

  1. <?php
  2. $sql = "SELECT user_id FROM ts_users_skills WHERE skillsTeach='Photoshop'";
  3. if($res = mysqli_query($conn,$sql)) {
  4. while ($id=mysqli_fetch_array($res)) {
  5. $id=$id['user_id'];
  6. // echo($id);
  7. $get_teachers_details="SELECT * FROM ts_students_log WHERE user_id='$id';";
  8. $get_teachers_details.="SELECT * FROM ts_students_info WHERE user_id='$id';";
  9. if (mysqli_multi_query($conn,$get_teachers_details))
  10. {
  11. do
  12. {
  13. // Store first result set
  14. if ($mul_res=mysqli_store_result($conn)) {
  15. // Fetch one and one row
  16. while ($row=mysqli_fetch_assoc($mul_res))
  17. {
  18. // printf("%s\n",$row['mobile']);
  19. // print_r($row);
  20. echo "Id: " . $row['user_id']. " Mobile: " . $row['mobile']. "Email:-" . $row['email'] . "Name:-" .$row['name'] . "<br/>";
  21. }
  22. // Free result set
  23. mysqli_free_result($mul_res);
  24. }
  25. }
  26. while (mysqli_next_result($conn));
  27. }
  28. }
  29. }
  30. ?>

输出:

  1. Id: 3 Mobile: 7895447755Email:-aditya@chutiya.comName:-
  2. Id: 3 Mobile: Email:-Name:-Aditya Porwal
  3. Id: 4 Mobile: 9300010740Email:-rishabhgaandu@gmail.comName:-
  4. Id: 4 Mobile: Email:-Name:-Rishabh Agrawal
kr98yfug

kr98yfug1#

组合查询以获得单个结果集,您可以按自己的喜好进行排序:

  1. SELECT
  2. a.`user_id`,
  3. b.*,
  4. c.*
  5. FROM ts_users_skills a
  6. LEFT JOIN ts_students_log b
  7. ON a.`user_id` = b.`user_id`
  8. LEFT JOIN ts_students_info c
  9. ON a.`user_id` = c.`user_id`
  10. WHERE a.`skillsTeach` = 'Photoshop'
  11. ORDER BY a.`user_id`;

我使用了左联接,但是如果所有用户都在ts\u students\u info和ts\u students\u info中都有行,您可以将它们更改为just joins。
编辑
要回答下面评论中的问题,选择多种技能,请将where子句改为:

  1. WHERE a.`skillsTeach` in ('Photoshop','Video Editing','Web Design')

  1. WHERE a.`skillsTeach` = 'Photoshop'
  2. OR a.`skillsTeach` = 'Video Editing'
  3. OR a.`skillsTeach` = 'Web Design'
展开查看全部

相关问题