У while кодировка впорядке у foreach вопросики...

THEDECAL

Новичок
Здравсвуйте, есть кусок куда который показывает таблицу с данными из БД MYSQL показывает она while`ом хочу сделать как положено через foreach он мне вопросики в ромбике выдаёт...
Вот кусок кода с соеденением к БД:
PHP:
<?php #mysql.php
    $dbname = "okay"; #Имя базы данных
    $user = "okay"; #Пользователь этой базы данных
    $pass = "123456"; #Пароль этого пользователя
    $server = "localhost"; #Адрес сервера
    $connect = mysql_connect ($server, $user, $pass) or die (mysql_error ()); #Соеденение с сервером БД
    mysql_select_db ($dbname) or die (mysql_error ()); #Соеденение с БД
    mysql_set_charset('utf8'); #Установка кодировки
?>
Вот кусок кода с while:
PHP:
$show_data = mysql_query($query_data) or die(mysql_error());
$num = 0;
while ($show_array = mysql_fetch_assoc($show_data))
{
    echo "<tr bgcolor='FFFFFF' align='center'>";
        $date = date('d.m.y H:i', strtotime($show_array['date']));
        $truedate = date('d.m.y H:i', strtotime($show_array['truedate']));
        #№
        echo "<td><ST4>", ++$num, "</td>";
        #Улица/Сегмент
        echo "<td><ST4>", $show_array['street'], "</td>";
        #Дом
        echo "<td><ST4>", $show_array['house'], "</td>";
        #Квартира
        echo "<td><ST4>", $show_array['room'], "</td>";
        #Телефоны
        if ($show_array['telmob'] === '0')
        {
            echo "<td><ST4>-</td>";
        }
        else
        {
            echo "<td><ST4>", $show_array['telmob'], ', ', $show_array['telhouse'], "</td>";
        }
        #Приоритет
        $plus = "<img src='images/plus.png'>";
        if ($show_array['prio'] === "Высокий") echo "<td><center><ST4>", $plus, $plus, "</td>";
        else echo "<td><center><ST4>", $plus, "</td>";
        #Комментарии
        echo "<td><ST4>", $show_array['comments'], "</td>";
        #Действительная причина
        if($_GET['switch'] === 'show_history_requests' OR $_GET['switch'] === 'search_requests')
        {
            echo "<td><ST4>", $show_array['truecomments'], "</td>";
        }
        #Время
        echo "<td><ST4>", $show_array['fromtime'], '-', $show_array['totime'], "</td>";
        #Дата добавления
        echo "<td><ST4>", $date, "</td>";
        #Дата выполнения
        if($_GET['switch'] === 'show_history_requests' OR $_GET['switch'] === 'search_requests')
        {
            echo "<td><ST4>", $truedate, "</td>";
        }
        #Выполнил
        if($_GET['switch'] === 'show_history_requests' OR $_GET['switch'] === 'search_requests')
        {
            echo "<td><ST4>", $show_array['worker'], "</td>";
        }
        #Категория
        if($enable_category) echo "<td><ST4>" . $show_array['category'] ."</td>";
        #Действия
        if($_GET['switch'] === 'show_history_requests' OR $_GET['switch'] === 'search_requests'){}
        else
        {
            echo "<td>";
                echo "<a href='index.php?switch=edit_requests&id=${show_array['id']}'><img src='images/edit.png'></a>";
                echo "<a href='index.php?switch=search_requests&show=search&id=${show_array['id']}'><img src='images/search.png'></a>";
                echo "<a href='index.php?switch=delete_requests&id=${show_array['id']}'><img src='images/delete.png'></a>";
            echo "</td>";
        }
    echo "</tr>";
}
А вот я пытаюсь сделать с foreach:
PHP:
$show_data = mysql_query($query_data) or die(mysql_error());
$num = 0;
$show_array = mysql_fetch_assoc($show_data)
foreach ($show_array as $cycle)
{
    echo "<tr bgcolor='FFFFFF' align='center'>";
        $date = date('d.m.y H:i', strtotime($cycle['date']));
        $truedate = date('d.m.y H:i', strtotime($cycle['truedate']));
        #№
        echo "<td><ST4>", ++$num, "</td>";
        #Улица/Сегмент
        echo "<td><ST4>", $cycle['street'], "</td>";
        #Дом
        echo "<td><ST4>", $cycle['house'], "</td>";
        #Квартира
        echo "<td><ST4>", $cycle['room'], "</td>";
        #Телефоны
        if ($cycle['telmob'] === '0')
        {
            echo "<td><ST4>-</td>";
        }
        else
        {
            echo "<td><ST4>", $cycle['telmob'], ', ', $cycle['telhouse'], "</td>";
        }
        #Приоритет
        $plus = "<img src='images/plus.png'>";
        if ($cycle['prio'] === "Высокий") echo "<td><center><ST4>", $plus, $plus, "</td>";
        else echo "<td><center><ST4>", $plus, "</td>";
        #Комментарии
        echo "<td><ST4>", $cycle['comments'], "</td>";
        #Действительная причина
        if($_GET['switch'] === 'show_history_requests' OR $_GET['switch'] === 'search_requests')
        {
            echo "<td><ST4>", $cycle['truecomments'], "</td>";
        }
        #Время
        echo "<td><ST4>", $cycle['fromtime'], '-', $cycle['totime'], "</td>";
        #Дата добавления
        echo "<td><ST4>", $date, "</td>";
        #Дата выполнения
        if($_GET['switch'] === 'show_history_requests' OR $_GET['switch'] === 'search_requests')
        {
            echo "<td><ST4>", $truedate, "</td>";
        }
        #Выполнил
        if($_GET['switch'] === 'show_history_requests' OR $_GET['switch'] === 'search_requests')
        {
            echo "<td><ST4>", $cycle['worker'], "</td>";
        }
        #Категория
        if($enable_category) echo "<td><ST4>" . $cycle['category'] ."</td>";
        #Действия
        if($_GET['switch'] === 'show_history_requests' OR $_GET['switch'] === 'search_requests'){}
        else
        {
            echo "<td>";
                echo "<a href='index.php?switch=edit_requests&id=${cycle['id']}'><img src='images/edit.png'></a>";
                echo "<a href='index.php?switch=search_requests&show=search&id=${cycle['id']}'><img src='images/search.png'></a>";
                echo "<a href='index.php?switch=delete_requests&id=${cycle['id']}'><img src='images/delete.png'></a>";
            echo "</td>";
        }
    echo "</tr>";
}
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Фанат
м?

Не верю я, что это все из-за while/foreach)))
 

THEDECAL

Новичок
Кем положено и зачем?
Какую цель ты преследуешь, заменяя вайл на форич?

c0dex, полуторасекундный барьер ;)
Хочу сделать сообщение если запрос ни чего не вернёт... Но мне для этого нужно вынести "$show_array = mysql_fetch_assoc($show_data)", чтоб он его проверял, ведь foreach выводит пока есть, что выводить, а while бесконечно...
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Боюсь тебе надо купить книгу по PHP и прочитать ее, у тебя while() будет выполняться не бесконечно.
 

Фанат

oncle terrible
Команда форума
это while выводит пока есть.

чтобы вывести сообщение, надо проверять, вернул ли запрос что-нибудь.
А вот чтобы сделать это по-человечески, как раз и нужен foreach. только не тупо, разумеется, воткнутый на место while
Для этого сначала собираешь все свои данные в массив

PHP:
$data = array();
$num = 1;
while ($row = mysql_fetch_assoc($show_data))
{
    $row['num'] = $num++;
    $row['date'] = date('d.m.y H:i', strtotime($show_array['date']));
    $row['truedate'] = date('d.m.y H:i', strtotime($show_array['truedate']));
    $data[] = $row;
}
потом делаешь HTML шаблон и инклюдишь его
PHP:
<? if (!$data): ?>
    Данные не завезли
<? endif ?>
<? foreach($data as $row): ?>
<tr bgcolor='FFFFFF' align='center'>
<td><ST4><?=$row['num']?></td>
<td><ST4><?=$row['street']?></td>
и так далее
<? endforeach ?>
 

THEDECAL

Новичок
это while выводит пока есть.

чтобы вывести сообщение, надо проверять, вернул ли запрос что-нибудь.
А вот чтобы сделать это по-человечески, как раз и нужен foreach. только не тупо, разумеется, воткнутый на место while
Для этого сначала собираешь все свои данные в массив
Я хочу проще, у меня заранее создан массив с текстами ошибок и сверху таблицы при наличии ошибки добавляеться поле с выводом текста ошибки:
$show_data = mysql_query($query_data) or die(mysql_error());
if(!$show_data)
{
$error_code = '1';
}
а там ниже уже foreach (поэтому я и хочу поменять)
 

THEDECAL

Новичок
а что за "<ST4>" присутствует в коде?
Это CSS
PHP:
                echo "<style type='text/css'>";
                    echo "ST1 {font-size: 26;font-family: sans-serif;color: #333366;font-weight: bold;}";
                    echo "ST2 {font-size: 24;font-family: sans-serif;color: #333366;}";
                    echo "ST3 {font-size: 14;font-family: sans-serif;color: #333366;font-weight: bold;}";
                    echo "REQ {font-size: 14;font-family: sans-serif;color: #E9967A;font-weight: bold;}";
                    echo "ST4 {font-size: 14;font-family: sans-serif;color: #333366;}";
                    echo "M {font-size: 16;font-family: sans-serif;color: #333366;font-weight: bold;}";
                    echo  "a {text-decoration: overline;}";
                echo "</style>";
 

THEDECAL

Новичок
Я создал отдельный файл, чтоб обратиться к БД, все равно вопросики, писал это:
PHP:
<?php
    $dbname = "okay"; #Имя базы данных
    $user = "okay"; #Пользователь этой базы данных
    $pass = "123456"; #Пароль этого пользователя
    $server = "localhost"; #Адрес сервера
    $connect = mysql_connect ($server, $user, $pass) or die (mysql_error ()); #Соеденение с сервером БД
    mysql_select_db ($dbname) or die (mysql_error ()); #Соеденение с БД
    mysql_set_charset('utf8'); #Установка кодировки отправки данных
    $q = "SELECT * FROM `requests`";
    $pq = mysql_query($q) or die (mysql_error());
    $test = mysql_fetch_assoc($pq);
    foreach ($test as $cycle)
    {
        echo $cycle['street'];
    }
?>
 

Фанат

oncle terrible
Команда форума
о господи
даже с готового кода скопировать не могут
 

Фанат

oncle terrible
Команда форума
так ты ж не решаешь.
ты тупо бьёшься головой об стенку, одну и ту же, даже не пытаясь ничего изменить.

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

THEDECAL

Новичок
так ты ж не решаешь.
ты тупо бьёшься головой об стенку, одну и ту же, даже не пытаясь ничего изменить.

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

Фанат

oncle terrible
Команда форума
блин ну почему у этих детей всегда такой убогий лексикон и всегда один и тот же? "не знаешь - не пиши", "не хочешь помогать - не помогай".
и ведь никогда собственную тупость не рассматривают в качестве причины проблем - только чья-то злая воля мешает их гениальному коду исполняться. "не помогли" бедной деточке. кругом злодеи.
а взять код, который злодеи ему написали, и сравнить со своими каракулями - это нам очень сложно. нам принципы не позволяют. мы разобраться хотим. на словах. а на деле палец о палец не ударим, даже с готовым кодом не пытаемся разобраться - почему он работает и в чем отличие от своего нерабочего

книги он читает. статьи ищет.

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

THEDECAL

Новичок
блин ну почему у этих детей всегда такой убогий лексикон и всегда один и тот же? "не знаешь - не пиши", "не хочешь помогать - не помогай".
и ведь никогда собственную тупость не рассматривают в качестве причины проблем - только чья-то злая воля мешает их гениальному коду исполняться. "не помогли" бедной деточке. кругом злодеи.
а взять код, который злодеи ему написали, и сравнить со своими каракулями - это нам очень сложно. нам принципы не позволяют. мы разобраться хотим. на словах. а на деле палец о палец ударить не хотим, даже с готовым кодом не пытаемся разобраться - почему он работает и в чем отличие от своего нерабочего

книги он читает. статьи ищет.

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