Mysql выборочный массив, результаты таблицы - PullRequest
3 голосов
/ 20 июля 2011

Я довольно новичок в этом и не уверен, как мне это сделать,

У меня есть база данных со столбцом с именем "names"

как мне сделать так, чтобы она отображаласьтак?

  <tr>
  <td width="270px">Henry</td>
  <td width="270px">Jeffrey</td>
  <td width="270px">Hansel</td>
  </tr>

  <tr>
  <td width="270px">Michelle</td>
  <td width="270px">Jackson</td>
  <td width="270px">Ivan</td>
  </tr>

Я знаю, как мне это сделать, если записи идут одна за другой вертикально.

  $result = mysql_query('SELECT * FROM member');

  while($row = mysql_fetch_array($result))
  {
  echo'
  <tr>
  <td width="270px">'.$row['names'].'</td>
  <td width="270px">Jeffrey</td>
  <td width="270px">Hansel</td>
  </tr>';

Кинда застряла здесь ...

Извините, я забыл поставить это.

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

что насчет этого?Что, если я хочу вместо этого зациклить?

<tr>
<td><img src="images/ava/A.png" /></td>
<td>A</td>
<td width="2px" rowspan="3"></td>
<td><img src="images/ava/B.png" /></td>
<td>B</td>
</tr>


<tr>
<td>A</td>
<td>B</td>
</tr>

Ответы [ 6 ]

3 голосов
/ 20 июля 2011

$row будет обновляться на каждой итерации цикла:

$result = mysql_query('SELECT * FROM member');

echo '<tr>';

for($i = 0; $row = mysql_fetch_array($result); $i = ($i+1)%3){
    echo '<td width="270px">'.$row['names'].'</td>';
    if($i == 2)
        echo '</tr><tr>';
}

echo '</tr>';
2 голосов
/ 20 июля 2011
$result = mysql_query('SELECT * FROM member');
  echo'<tr>'
  while($row = mysql_fetch_array($result))
  {

  echo '<td width="270px">'.$row['names'].'</td>';
  }

  echo '</tr>';
1 голос
/ 20 июля 2011

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

$i = 1;
$initFlag = false;
$flag = "closed";
while($row = mysql_fetch_array($result)) {
    if($i%3 == 0) $initFlag = false;
    if($flag == "closed" && ($i == 1 || $i % 3 == 1)) { 
        echo "<tr>"; $flag = "started"; $initFlag = true; 
    }

    echo '<td width="270px">'.$row['names'].'</td>';

    if(!initFlag && $flag == "started" && $i % 3 ==0) { 
        echo "</tr>"; $flag = "closed"; 
    }


    $i++;
}
1 голос
/ 20 июля 2011

Допустим, у вас есть массив имен с именем $names, тогда вы можете делать то, что хотели, с кодом, который выглядит примерно так:

<tr>
<?php

foreach($names as $name) {
    print "<td>$name</td>";
}
?>
</tr>

Это поместило бы все имена в один ряд.

Чтобы начать новую строку, скажем, каждые 3 имени, вы можете поместить оператор if в цикл for следующим образом:

// assume we have these variables available.
$row_number;
$max_cols = 3;

// this goes at the top of the foreach
if($row_number % $max_cols == 0) {
    print '</tr><tr>';
}
1 голос
/ 20 июля 2011
$result = mysql_query('SELECT * FROM member');

echo '<tr>;

while($row = mysql_fetch_array($result))
{

    echo '<td width="270px">'.$row['names'].'</td>';
}

echo '</tr>';
0 голосов
/ 20 июля 2011

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

$result = mysql_query('SELECT * FROM member');

Вместо этого используйте:

$result = mysql_query('SELECT names FROM member');

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

$row_count = 0;
while($row = mysql_fetch_array($result))
  {
  if( $row_count % 3 == 0 )
    {
       echo '<tr>';
    }
    echo '<td width="270px">'.$row['names'].'</td>';
  if( $row_count % 3 == 0 )
    {
       echo '</tr>';
    }
  $row_count++; 
  }

Я не хочу слишком разборчиво относиться к вашей схеме, но если у вас есть выбор, лучше назвать таблицу множественным числом, например members, а не member, поскольку у вас есть набор строк, каждая из которых представляет один «член». И если ваши члены не имеют несколько names, этот столбец лучше всего назвать «имя».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...