Невозможно отобразить значения, разделенные запятыми, в таблице

У меня есть id, хранящиеся в виде значений, разделенных запятыми, в моей таблице базы данных, и я хочу показать список каждого соответствующего имени id в таблице html. До сих пор мне не удалось найти какое-либо решение для этого, потому что в настоящее время в таблице отображается values только для первого идентификатора, указанного в списке, разделенном запятыми. Могу ли я получить представление о том, как отображать значение каждого идентификатора как разделенное запятыми в таблице html.

<table id = "example"   class = "table table-striped table-hover table-bordered  dt-responsive nowrap"  cellspacing = "0" width = "100%">
<thead>
<tr>

<th>S No.</th>
<th>Level :<br>(Attempt)</th>
<th>Candidate's<br>Designation->id</th>
<th>Reporting<br>Head->id</th>
<th>mail To :</th>
<th>mail CC :</th>
<th>Status</th>
</tr>
</thead>
<tbody>
    <?php

     $sqlQuerybatch     =   "SELECT * from tbl WHERE status = 1 ";

     $sq1           =   $db->query($sqlQuerybatch);
     $i             =   1 ;
    if ($db->affected_rows > 0)
    {
        while($row=mysql_fetch_array($sq1))
        {
         extract($row);
         $des_cc=explode(',', $designation_cc_email);

       foreach($des_cc as $out) {
          $out = $rep; 
       }

     $sql_designation =  "SELECT designation from tbl_designation WHERE id = $designation_id ";
                  $sqdes            =   $db->query($sql_designation);
                 if ($db->affected_rows > 0)
    {
        while($rowdes=mysql_fetch_array($sqdes))
        { 
        $desid =  $rowdes['designation'];
        } 

             $sql_designation1 =  "SELECT designation from tbl_designation WHERE id = $designation_email ";
                  $sqdes1           =   $db->query($sql_designation1);
                 if ($db->affected_rows > 0)
    {
        while($rowdes1=mysql_fetch_array($sqdes1))
        { 
        $desid1 =  $rowdes1['designation'];
        } 

                 $sql_reporting =  "SELECT designation_id,reporting_head from tbl_reporting_head WHERE reporting_head_for = $designation_id and status=1";
                  $sqdes2           =   $db->query($sql_reporting);
                 if ($db->affected_rows > 0)
    {
        while($rowdes2=mysql_fetch_array($sqdes2))
        { 
        $desid2 =  $rowdes2['reporting_head'];
        $reportingheadid = $rowdes2['designation_id'];
        } 

      $sql_reporting1 =  "SELECT designation from tbl_designation WHERE id in($rep) ";
        $sqdes3             =   $db->query($sql_reporting1);
      if ($db->affected_rows > 0)
    {   
        while($rowdes3=mysql_fetch_array($sqdes3))
        { 
        $desid3 =  $rowdes3['designation'];
        }    
     ?>               
 <tr>
<td><?php echo $i ; ?></td>
<td><?php echo $attemp ; ?></td>
<td><?php echo $desid." -> ".$designation_id ; ?></td>
<td><?php echo $desid2." -> ".$reportingheadid ; ?></td>
<td><?php echo $desid1 ; ?></td> 
<td><?php echo $status ; ?></td>
</tr>
<?php $i++;}} }}}}?>                

</tbody>
</table>

$desid3 - это то место, где я хочу показать такие значения, как A,B и так далее. Я получаю здесь только A в каждой строке таблицы html. Извините за испорченный код, но уже много чего пробовал, но не получил точного результата.

Вы перезаписываете переменные, которые используете во многих ваших циклах. В основном вам останется последнее значение в массиве. Вот почему вы получаете только одно значение из своих переменных, которые назначаются в циклах.

ArtisticPhoenix 31.03.2018 10:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
77
1

Ответы 1

Все ваши петли неправильные, например

foreach($des_cc as $out) {
   $out = $rep; 
}

Проблема здесь в том, что вы перезаписываете переменную на каждой итерации без использования is. Это означает, что в переменной остается только последнее значение. Также в этом случае ваше задание тоже выполняется в обратном порядке. У вас должно быть:

foreach($des_cc as $out) {
   $rep = $out; 
}

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

В любом случае.

Что вам нужно сделать, так это внутри цикла, вам нужно поместить HTML, который вы выводите, чтобы вы могли выводить значение на каждой итерации цикла.

Итак, для примера, допустим, $des_cc - это такой массив:

$des_cc = [1,2,3,4,5,6];

Теперь возьми свою петлю

foreach($des_cc as $out) {
   $rep = $out; 
}

echo $rep;

Это выведет

6

Это последнее значение, присвоенное $rep. Теперь мы вывели эту переменную внутри цикла следующим образом:

foreach($des_cc as $out) {
   $rep = $out; 
   echo $rep;
}

Он выведет это (при условии, что мы добавили возврат строки):

1
2
3
4
5
6

То же самое верно, если вы поместите эту переменную в свой HTML. Надеюсь, это имеет смысл.

Еще несколько примеров этой ошибки в вашем коде:

while($rowdes=mysql_fetch_array($sqdes)){ 
    $desid =  $rowdes['designation'];
} 

А ТАКЖЕ

while($rowdes2=mysql_fetch_array($sqdes2))
{ 
    $desid2 =  $rowdes2['reporting_head'];
    $reportingheadid = $rowdes2['designation_id'];
} 

Еще вы можете сохранить эти данные в другом массиве, например

 $rep = []
 foreach($des_cc as $out) {
    $rep[] = $out; 
 }

Этот пример в основном копирует массив в $rep по одному элементу за раз. Я не думаю, что это то, что вам нужно, я упоминаю это только для полноты.

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

Ansh 31.03.2018 10:10

Нет, в этом много плохого. Есть много запросов, много фрагментов. Так что не совсем понятно, каков будет конечный результат, и, вероятно, мне придется настроить базу данных и т. д. В противном случае я летаю вслепую. Это просто слишком много времени. Извините, но мне, вероятно, придется все это переписать. И таким образом вы бы ничему не научились.

ArtisticPhoenix 31.03.2018 10:13

:) Хорошо, спасибо за уделенное время.

Ansh 31.03.2018 10:16

Конечно, как я уже сказал, если бы я его переписал, вы бы ничего из этого не извлекли и рано или поздно снова оказались бы в той же ситуации. И это до того, как я рассмотрю время установки, которое потребовалось бы для репликации вашей базы данных и т. д. Удачи. Лучший совет, который я могу сказать, - создавать его медленно, по частям. Например, разметьте таблицу с некоторыми жестко закодированными данными только в HTML, затем добавьте в нее PHP и увеличьте сложность. Это упростит обработку каждого предмета.

ArtisticPhoenix 31.03.2018 10:45

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

ArtisticPhoenix 31.03.2018 10:47

Еще я вижу много путаницы с переменными (так я это называю). Примером является этот SELECT designation from tbl_designation, затем вы назначаете его $desid = $rowdes['designation'];. Но чуть позже у вас есть SELECT designation_id,reporting_head from tbl_reporting_head, и вы назначаете его $desid2 = $rowdes2['reporting_head'] и $reportingheadid = $rowdes2['designation_id'];. Итак, у вас есть $desid, $desid1 из одной таблицы и $desid2 из другой с неправильным полем?

ArtisticPhoenix 31.03.2018 10:54

Обычно это может сбивать с толку, когда переменная называется $desid{n} и поступает из разных источников. Не бойтесь подробно описывать имена переменных (используйте более информативные имена). Также старайтесь избегать использования переменных экземпляра, когда вы используете их только один раз и сразу после объявления. Примером этого является $sqlQuerybatch = "SELECT * ...";, затем вы используете его 1 раз, $db->query($sqlQuerybatch);, вместо этого вы можете просто использовать $db->query("SELECT * ..."); и избегать назначения такого количества переменных.

ArtisticPhoenix 31.03.2018 11:04

Еще раз спасибо за информативность и за то, что уделили мне драгоценное время. Я весьма признателен. Я просто хотел бы попросить у вас одно уточнение. У меня есть 3,5, хранящийся в базе данных, я просто хочу разделить эти два, найти их соответствующие имена из другой таблицы, а затем показать имена во втором последнем столбце в таблице html как имена, разделенные запятыми. Как это возможно? Просто некоторое представление об этом.

Ansh 31.03.2018 11:49

@ArtisticPhoenix здесь смешивают разные API-интерфейсы mysql. Обратите внимание на $db->query? Это предполагает mysqli_, поскольку mysql_ не предлагает объектно-ориентированный метод. Если только они не используют специальный метод, но я в этом сомневаюсь. Я только видел этот ответ от них, которые репостили в основном тот же вопрос сегодня. $db->affected_rows также предлагает mysqli_, поскольку идентификатор ссылки здесь первый, а метод ссылки mysql_ идет вторым. Обновлено: мы даже не знаем, подключены ли они, и если да; как? хех

Funk Forty Niner 03.04.2018 13:29

@FunkFortyNiner - хороший улов, спасибо, что указали на это! Лично мне не нравится mysqli, он сбивает с толку больше, чем PDO. Мне это всегда казалось полмерой ..

ArtisticPhoenix 03.04.2018 18:07

Другие вопросы по теме