Intereting Posts
Как я могу отобразить изображение из вложений документа в CouchDB? Количество число последовательных посещений Неверные настройки DNS, php_network_getaddresses: getaddrinfo failed Имя или услуга неизвестны, nslookup CSS Minifier в PHP Содержимое ответа должно быть строкой или объектом, реализующим __toString (), «boolean», заданный после перехода на psql Инициализировать свойство класса анонимной функцией Как заполнить форму PDF в php PHP Script для загрузки исходного кода веб-страницы и поиска определенной строки Как обновить данные в базе данных SQL php получает правильную дату по неделям один год, используя strtotime Как я могу обмениваться контентом со своей внутренней страницы на странице Facebook? PHP __destruct вызывает net :: ERR_CONNECTION_RESET register_shutdown_function нет. Какая разница? как передать значение php из одного файла в другой через java-скрипт В DomDocument, повторное использование DOMXpath, он стабилен? PHP – скрыть параметры url (GET)

Использование результата SQL в цикле foreach

Я чувствую, что мне не хватает чего-то глупого очевидного здесь, я пытаюсь получить результаты SQL-запроса, а затем использовать их в цикле. Я чувствую, что мне не хватает чего-то глупого очевидного, я пробовал его с и без пропущенной строки.

<?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>"; } } ?> 

Любая помощь будет принята с благодарностью

Related of "Использование результата SQL в цикле foreach"

Вместо вашего foreach() вы должны сделать что-то подобное (подробнее см. Страницу руководства mysql_query () ):

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

Сначала вы должны получить результаты в массив. Похоже, вы начали это делать, но прокомментировали это.

 $results = mysql_query($query); //$userData = mysql_fetch_array($results, MYSQL_ASSOC); $resultset = array(); while ($row = mysql_fetch_array($results)) { $resultset[] = $row; } // $resultset now holds all rows from the first query. foreach ($resultset as $result){ //... etc... 

другой вариант

 $num_rows = mysql_num_rows($result) for ($i=0;$i<$num_rows;$i++) { $row = mysql_fetch_assoc($result) $messageID = $row['messageID']; } 

Вы можете сделать что угодно отсюда.

Помните, 1 запрос в объект, как $ result 2- выбор строки за один раз из объекта в массив, который отражает всю строку в таблице, заданную вашим определением запроса ассоциативными ключами или числовыми 3-сделать что-то с массивом

Вы прокрутите объект по строке и поместите в строку $ row в виде массива.

ура

У меня нет репутации для комментариев, и приведенные выше ответы верны, но на странице справочника php mysql_query () говорится, что

это расширение было устарело в PHP 5.5.0, и оно было удалено в PHP 7.0.0. Вместо этого следует использовать расширение MySQLi или PDO_MySQL.

Итак, теперь правильный путь:

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