如何将MySQL存储过程中的选定值存储到PHP中的变量中?

时间:2018-11-20 19:38:17

标签: php mysql

基本上,我想从运行随机生成数字的存储过程中获取一个值,并稍后在网站上使用它。最终,我将需要根据用户执行的操作将随机生成的数字传递回MySQL数据库。

存储过程:

BEGIN
    SET @leftplayerone = 0;
    SET @rightplayerone = 0;

    SET @leftplayerone = (SELECT FLOOR(RAND()*((SELECT COUNT(*) FROM 
Players)-1+1))+1);

   WHILE @rightplayerone = 0 OR @rightplayerone = @leftplayerone
    DO
        SET @rightplayerone = (SELECT FLOOR(RAND()*((SELECT COUNT(*) FROM 
Players)-1+1))+1);
    END WHILE;

   SELECT @leftplayerone;
   SELECT @rightplayerone;
END

我有一个单独的桌子,其中包含许多球员。我想从该表中随机抽取1个玩家,然后在我的网站上显示该玩家。然后,我要随机显示同一张桌子上的其他玩家。然后应向用户展示这两个随机生成的玩家,然后选择带有5个不同按钮的呈现给他们的选项。然后,我想将该响应以及随机生成的两个播放器发送回数据库以存储该信息。

我只是在寻找有关如何从存储的过程中拉出两个随机生成的玩家并将其显示在网站上的帮助-我只是将其余的细节放在上下文中。

更新:

我的PHP代码是:

<?php
  $sql = "CALL FantasyUnited.GetRandomPlayersForTradeProposal();";
  $result = mysqli_query($conn, $sql);
  $resultCheck = mysqli_num_rows($result);

if ($resultCheck > 0) {
    while ($row = mysqli_fetch_assoc($result)) {
      echo "<tr><td>". $row["PlayerOne"] ."</td><td>". $row["PlayerTwo"] ." 
  </td></tr>";
    }
  echo "</table>";
  }
  else {
    echo "0 result";
  }


  $conn-> close();

?>

我现在能够显示随机的玩家ID-现在我需要弄清楚如何显示与玩家ID相关的玩家名称,而不仅仅是显示ID号。然后保存该信息,并在用户单击有关这两个玩家的按钮时将其传递回数据库。

http://pr0digy.me/trades.php

用户将选择播放器名称下方的选项(按钮)之一。我希望他们按下按钮,并将球员的姓名存储并发送回数据库。

1 个答案:

答案 0 :(得分:2)

将过程的最后一行更改为:

SELECT @leftplayerone AS leftplayer, @rightplayerone AS rightplayer;

以便您可以在PHP中一次获取两个结果。

然后在PHP中可以做到:

$result = $pdo->query("CALL yourProcedure");
$row = $result->fetch(PDO::FETCH_ASSOC);
$leftplayer = $row['leftplayer'];
$rightplayer = $row['rightplayer'];

这是PDO语法,相应的mysqli语法差别不大。