在foreach循环中使用SQL结果 [英] Using an SQL result in a foreach loop

查看:180
本文介绍了在foreach循环中使用SQL结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我觉得我错过了一些愚蠢的明显的东西,我试图得到一个SQL查询的结果,然后在循环中使用它们。我觉得我失去了一些愚蠢的东西,我试过了,没有注释掉。

 <?php 
$ sentToID = $ _SESSION ['userID'];

$ query =SELECT *
FROM messages
WHERE sentToID ='$ sentToID';

$ results = mysql_query($ query);
// $ userData = mysql_fetch_array($ results,MYSQL_ASSOC);
$ b foreach($ results as $ result){
$ messageID = $ result ['messageID'];
$ sentFromID = $ result ['sentFromID'];
$ subject = $ result ['subject'];
$ body = $ result ['body'];
$ dateTime = $ result ['dateTime'];

$ query =SELECT usertype
FROM user
WHERE userID ='$ sentFromID';
$ messageResult = mysql_query($ query);
$ messageData = mysql_fetch_array($ messageResult,MYSQL_ASSOC);

$ usertype = $ messageData ['usertype'];

$ query =SELECT *
FROM $ usertype
WHERE userID ='$ sentFromID';

$ messageResult = mysql_query($ query);
$ messageData = mysql_fetch_array($ messageResult,MYSQL_ASSOC);

if($ usertype ==jobseeker){
$ forname = $ messageData ['forename'];
$ surname = $ messageData ['surname'];
回显< div>< p> 。 $ forename。 。 $姓。 < / p>
< p>主题:。 $ subject。< / p>
< p>正文:。 $ body。 < / P>< / DIV> 中;

if($ usertype ==employer){
$ forname = $ messageData ['forename'];
$ surname = $ messageData ['surname'];
$ companyName = $ messageData ['companyName'];

echo< div>< p> 。 $ forename。 。 $姓。 - 。 $ companyName。 < / p>
< p>主题:。 $ subject。< / p>
< p>正文:。 $ body。 < / P>< / DIV> 中;
}
}
?>

任何帮助将不胜感激

解决方案而不是你的 foreach(),你应该这样做(参见 mysql_query()手册页面):



<$ p $($ result = mysql_fetch_assoc($ results)){
//你的代码
}


I feel like I am missing something stupidly obvious here, I am trying to get the results of an SQL query and then using them in a loop. I feel like I am missing something stupidly obvious, I have tried it with and without the commented out line.

<?php
$sentToID = $_SESSION['userID'];

$query = "SELECT *
          FROM messages
          WHERE sentToID = '$sentToID'";

$results = mysql_query($query);
//$userData = mysql_fetch_array($results, MYSQL_ASSOC);

foreach ($results as $result){
    $messageID = $result['messageID'];
    $sentFromID = $result['sentFromID'];
    $subject = $result['subject'];
    $body = $result['body'];
    $dateTime = $result['dateTime'];

    $query = "SELECT usertype 
              FROM user
              WHERE userID = '$sentFromID'";
    $messageResult = mysql_query($query);
    $messageData = mysql_fetch_array($messageResult, MYSQL_ASSOC);

    $usertype = $messageData['usertype'];

    $query = "SELECT * 
              FROM $usertype
              WHERE userID = '$sentFromID'";

    $messageResult = mysql_query($query);
    $messageData = mysql_fetch_array($messageResult, MYSQL_ASSOC);

    if ($usertype == "jobseeker"){
        $forname = $messageData['forename'];
        $surname = $messageData['surname'];
        echo "<div><p>" . $forename . " " . $surname . "</p>
              <p>Subject: " . $subject ."</p>
              <p>Body: " . $body . "</p></div>";
    }
    if ($usertype == "employer"){
        $forname = $messageData['forename'];
        $surname = $messageData['surname'];
        $companyName = $messageData['companyName'];

        echo "<div><p>" . $forename . " " . $surname . " - " . $companyName . "</p>
              <p>Subject: " . $subject ."</p>
              <p>Body: " . $body . "</p></div>";
    }
}
?>

Any help would be greatly appreciated

解决方案

Instead of your foreach(), you should do something like this (see the mysql_query() manual page for more):

while($result = mysql_fetch_assoc($results)) {
    // your code
}

这篇关于在foreach循环中使用SQL结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆