Добрый день, подскажите как вывести данные из mysql в таблицу в три столбца такого типа: 1 | 4 | 7 2 | 5 | 8 3 | 6 | 9
структуру, в смысле, в базе. а не наглядное представление должно быть что-то типа этого: CREATE TABLE IF NOT EXISTS `messages` ( `message_id` int(10) unsigned NOT NULL auto_increment, `transmitter_id` int(10) unsigned NOT NULL, `reciver_id` int(10) unsigned NOT NULL, `time` int(10) unsigned NOT NULL, `recived` enum('y','n') NOT NULL default 'n', `subject` varchar(255) default NULL, `body` text NOT NULL, `hide` enum('y','n') NOT NULL default 'n', PRIMARY KEY (`message_id`), KEY `transmitter_id` (`transmitter_id`), KEY `reciver_id` (`reciver_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
titch, я так понял, что цифрами он обозначил порядок записей в базе. Нужно в нарисованном порядке вывести. Как выглядит таблица, не важно.
ща попробую. задачка вроде как школьная, но вот сразу не припоминается ничего. На собеседованиях такую могут подкинуть
брррр... тут делать нечего))) на пожалуйста)) <?php $db = mysql_connect ("localhost","root","пароль"); mysql_select_db("БАЗА, не ТАБЛИЦА, БАЗА",$db); mysql_query("SET NAMES utf8");//Кодировка1 $massiv=mysql_fetch_array(mysql_query("SELECT 1колонка,2колонка,3колонка и т.д. через запятую FROM таблица",$db)); echo' <table width="100"> <tr> <td>'.$massiv['1-колонка в таблице'].'</td> <td>'.$massiv['2-колонка в таблице'].'</td> <td>'.$massiv['3-колонка в таблице'].'</td> </tr> <tr> <td>'.$massiv['4-колонка в таблице'].'</td> <td>'.$massiv['5-колонка в таблице'].'</td> <td>'.$massiv['6-колонка в таблице'].'</td> </tr> <tr> <td>'.$massiv['7-колонка в таблице'].'</td> <td>'.$massiv['8-колонка в таблице'].'</td> <td>'.$massiv['9-колонка в таблице'].'</td> </tr> </table> '; ?>
Inject ты меня не понял я не про бордюры толкую а про то как выводятся значения у тебя в примере таким образом: 1 2 3 4 5 6 7 8 9 а надо таким: 1 4 7 2 5 8 3 6 9
значит делайте рандомный вывод http://www.php.ru/forum/viewtopic.php?t=31403 ленитесь посмотреть тему?!? Я там написал как делается рандом вывод...
Вот блин, долго искал функцию mod в php PHP: $qr=mysql_query("SELECT id FROM table ORDER BY id LIMIT 9"); $arr=array(); while($tArr=mysql_fetch_array($qr)){$arr[]=$tArr['id'];}//просто в массив собираем все записи mysql_free_result($qr); $arr2=array();//в этом массиве будет нужный нам порядок индексов 0,3,6,1,4,7,2,5,8 for($i=0;$i<sizeof($arr);$i++){ $i2=fmod($i,3)*3;//0,3,6,0,3,6,0,3,6 $i2=$i2+(int)($i/3);//0,3,6,1,4,7,2,5,8 $arr2[]=$arr[$i2]; } for($i=0;$i<sizeof($arr2);$i+=3){//вывод в браузер echo $arr2[$i],'|',$arr2[$i+1],'|',$arr2[$i+2],'<br/>'; } Inject, что-то ты совсем о своём..
dark-7, последний цикл выводит так, как ты написал в первом посте. Ты уж сам выведи в том формате, какой нужен. В массиве $arr2 такой порядок, какой тебе нужен, осталось строками вывести. Как-то так, наверное. Код (Text): echo '<table>',"\n"; for($i=0;$i<sizeof($arr2);$i+=3){//вывод в браузер echo '<tr><td>',$arr2[$i],'</td><td>',$arr2[$i+1],'</td><td>',$arr2[$i+2],'</td></tr>',"\n"; } echo '</table>',"\n";
как вариант: PHP: <? $a = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14); $columns = 3; $counter = 0; echo "<table>\n <tr>\n "; foreach ($a as $val) { $counter++; echo "<td>$val</td>"; if ($counter == $columns ) { echo "\n </tr>\n <tr>\n "; $counter = 0; } } echo "\n</table>"; или PHP: <? $a = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14); $a = array_chunk ($a, 3); echo "<table>\n"; foreach ($a as $tr) { echo "<tr><td>".implode('</td><td>', $tr); } echo "</table>\n"; минусы есть - сами понимаете какие. хз. по мне так пофик, браузер подправит.