Я использовал версию этого кода раньше, и он выложил бы мой контент слева направо, как и должно. Я не могу заставить его читать таким образом для нового проекта и искал некоторую помощь. Это читается как:
A A A
B B B
C C C
Вместо
A B C
D E F
Вот ссылка на то, как это выглядит, и код, любая помощь будет принята с благодарностью, спасибо.
http://www.amphenol-industrial.com/test
<table style="width: 100%;" sizcache="14" sizset="0" border="0" cellpadding="0" cellspacing="0">
<tbody sizcache='14' sizset='0'>
<?
// Make a MySQL Connection
mysql_connect("localhost", "amphenol_web", "ampheweb") or die(mysql_error());
mysql_select_db("amphenol_conn") or die(mysql_error());
// Retrieve all the data from the "distributors" table
$query = "SELECT * FROM products WHERE page = '1' ORDER BY name";
$result = mysql_query($query) or die(mysql_error());
$cols = 6; // Here we define the number of columns
echo "<table>"; // The container table with $cols columns
do{
echo "<tr>";
for($i=1;$i<=$cols;$i++){ // All the rows will have $cols columns even if
// the records are less than $cols
$row=mysql_fetch_array($result);
?>
<?
$image = $row['image'];
$name = $row['name'];
$description = $row['description'];
$link = $row['link'];
$page = $row['page'];
if ($image == ""){echo "<td> </td>";}
else {echo
"<tr valign='top'>
<td><a href='$link'"?> onclick="_gaq.push(['_trackEvent', 'Clicks', 'Connectors', '<?php echo "$name"?>']);"><? echo "<img style='border: #015d90 1px solid;' alt='$name' src='/$image' height='74' width='120' /></a></td>
<td width='2'> </td>
<td><span style='font-family: andale mono,times; font-size: 8pt;'><b>$name:</b> $description</span></td>
<td><span style='font-family: andale mono,times; font-size: 8pt;'><b> </b></span></td>
<td><span style='font-size: 8pt;'><a href='$link'"?> onclick="_gaq.push(['_trackEvent', 'Clicks', 'Connectors', '<?php echo "$name"?>']);"><? echo "<img style='border: #015d90 1px solid;' alt='AC Threaded' src='$image' height='74' width='120' /></a></span></td>
<td width='2'> </td>
<td><span style='font-family: andale mono,times; font-size: 8pt;'><b>$name:</b> $description</span></td>
<td><span style='font-family: andale mono,times; font-size: 8pt;'><b> </b></span></td>
<td><a href='$link'"?> onclick="_gaq.push(['_trackEvent', 'Clicks', 'Connectors', '<?php echo "$name"?>']);"><? echo "<img style='border: #015d90 1px solid;' alt='$name' src='$image' height='74' width='120' /></a></td>
<td width='2'> </td>
<td><span style='font-family: andale mono,times; font-size: 8pt;'><b>$name:</b> $description</span></td>
</tr>
<tr>
<td height='25'> </td>
<td height='25'> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>";
}
}
// else{
// echo "<td> </td>"; //If there are no more records at the end, add a blank column
}
// }
// }
while($row);
echo "</table>";
?>
</tr>
</tbody>
</table>
Причина, по которой ваши продукты печатаются
AAA
ВВВ
CCC
…
Это потому, что вы выполняете цикл for для одних и тех же данных SQL, и данные SQL не изменяются до тех пор, пока цикл while не будет выполнен снова, следовательно, используется while ($ row).
Вам нужно будет сделать что-то вроде следующего:
$counter = 0;
echo "<table>";
while($row = mysql_fetch_assoc($result))
{
if($counter == 0){echo "<tr>"; }
echo "<tr>";
echo "<td>";
echo $row[yourProductData]//call your product data here
....
echo "</td>";
echo "</tr>";
$counter++;
if($counter == 4){echo "</tr>"; $counter= 0;}
}
echo"</table>";
Что-то простое должно быть лучшим и менее запутанным форматом, чтобы получить
азбука
DFG
…
Спасибо за информацию. С небольшой настройкой я смог заставить его работать, но это привело меня к последнему препятствию.
Я запускаю это через Joomla и плагин Jumi. Я пытаюсь заставить свой тег loadposition работать, но это не сработает, и я чувствую, что Jumi как-то связан с проблемой. Любая помощь будет принята с благодарностью, так как мне нужно, чтобы это работало, чтобы люди могли просматривать несколько страниц продукта, и именно это делает модуль loadposition для нашего сайта.
http://www.amphenol-industrial.com/1
$query = "SELECT * FROM products WHERE page = '1' ORDER BY name";
$result = mysql_query($query) or die(mysql_error());
?>
<?
$i = 0;
while($row = mysql_fetch_assoc($result))
{
if($i == 0){echo "<tr valign='top'>"; }
echo "<td>";
echo "<a href='$row[link]'"?> onclick="_gaq.push(['_trackEvent', 'Clicks', 'Connectors', '<?php echo "$row[name]"?>']);"><? echo "<img style='border: #015d90 1px solid;' alt='$row[name]' src='/$row[image]' height='74' width='120' border='0' /></a></td>
<td width='2'> </td>
<td><span style='font-family: andale mono,times; font-size: 8pt; line-height:15px;'><b>$row[name]:</b> $row[description]</span></td>
<td><span style='font-family: andale mono,times; font-size: 8pt; line-height:15px;'><b> </b></span>";
echo "</td>";
$i++;
if($i == 3){echo "</tr>
<tr>
<td height='25'> </td>
<td height='25'> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>"; $i= 0;}
}
echo"</tbody>";
echo"</table>";
?>
<p style="text-align: center;"><br />{loadposition connmenu}</p>
Я наконец понял это и просто хотел поделиться, если это может помочь кому-то еще. Код, который мне нужен, чтобы обойти Jumi, выглядит следующим образом:
<?php $document = &JFactory::getDocument();
$renderer = $document->loadRenderer('modules');
$position = 'connmenu';
$options = array('style' => 'raw');
echo $renderer->render($position, $options, null);?>