Привет всем помогите сделать постраничнй вывод Это сам вывод с гостевой как его разбить постранично потому что много собирается PHP: <?php $message_file = file("engine/quest.csv"); foreach($message_file as $line) { $elem = explode(";",$line); echo("<tr> <td align=center valign=top colspan=2><b>Имя :</b> $elem[1] ( <b>$elem[2]</b> )</td> </tr> <tr> <td align=center valign=top width=50%><b>E-mail :</b> <a href=mailto:$elem[3] target=_blank>$elem[3]</a></td> <td align=center valign=top width=50%><b>Сайт :</b> <a href=$elem[4] target=_blank>$elem[4]</a></td> </tr> <tr> <td valign=top colspan=2><div style=margin-left:20px; ><b>Вопрос </b>№ ($elem[0]) $elem[5]</div></td> </tr> <tr> <td align=right valign=top colspan=2><small>Написано : $elem[6]</small></td> </tr> <tr> <td bgcolor=#E0F1F7 valign=top colspan=2 ><div style=margin-left:20px;><b><font color=red>$elem[7]</font></b></div></td> </tr> <tr> <td valign=top colspan=2 > </td> </tr>"); } echo("</table>"); ?>
Вот я шото делал такое но не преключаются страницы и записывает 2 сообщения почемуто где здесь ошибка PHP: <? ?> <?php ob_start(); session_start(); error_reporting(0); $page_h1 = 'Появились вопросы - напишите нам'; $page_title = 'FAQ'; $page_descr = 'FAQ'; $page_keyws = 'FAQ'; $path = ' , <img src=./engine/img/li.gif /> <a href="./guest.html">FAQ</a>'; $site="http://".$_SERVER['SERVER_NAME']; $message_file="engine/guest.csv"; $general=file($message_file); $lines_file=file($message_file); $lines=count($lines_file); $Pmessage_file = file("$message_file"); $onlyg=3; if (@$page == "" or $page < 0) { $page = "1"; } $first = count($Pmessage_file) - ($onlyg * ($page - 1)); $second = count($Pmessage_file) - ($onlyg * $page) + 1; if ($second < 1) { $second = 1; } $pages = (int) ((count($Pmessage_file) + $onlyg) / $onlyg); for ($onlyg = 1; $onlyg <= $pages; $onlyg++) { if ($onlyg != $page) { $line .= " | <a href=\"guest.html?id=$onlyg\">$onlyg</a>"; } if ($onlyg == $page) { $line .= "<a href=\"guest.html?id=$onlyg\">$onlyg</a>"; } } for ( $i = $first-1; $i >= $second-1; $i--) { list($max,$name,$city,$email,$url,$text,$d,$reply,$redata)=explode(";", ($general[$i])); $id = $i; $id++; echo "<table border=1 bordercolor=#E5E5E5 align=center cellpadding=0 cellspacing=0 width=100%> <tr> <td align=center valign=top colspan=2><b>Имя :</b> $name ( <b>$city</b> )</td> </tr> <tr> <td align=center valign=top width=50%><b>E-mail :</b> <a href=mailto:$email target=_blank>$email</a></td> <td align=center valign=top width=50%><b>Сайт :</b> <a href=$url target=_blank>$url</a></td> </tr> <tr> <td valign=top colspan=2><div style=margin-left:20px; ><b>Вопрос :</b> $text</div></td> </tr> <tr> <td align=right valign=top colspan=2><small>Сообщение № $max написано $d</small></td> </tr> <tr> <td bgcolor=#E0F1F7 valign=top colspan=2 ><div style=margin-left:20px;><b>$reply</b><font color=red>$redata</font></div></td> </tr> <tr> <td valign=top colspan=2 > </td> </tr></table>"; } echo "Страницы : $line<br>"; echo "Всего ссообщений : $lines<br>"; if ( isset($_POST['submit'])) { $error = ""; if ( isset($_POST["name"]) && !empty($_POST["name"])) $name = $_POST["name"]; else $error .= "<li>Не введено Имя</li>"; if ( isset($_POST["city"]) && !empty($_POST["city"])) $city = $_POST["city"]; else $error .= "<li>Не введено Откуда</li>"; if ( isset($_POST["email"]) && !empty($_POST["email"])) $email = $_POST["email"]; else $error .= "<li>Не введен E-mail</li>";; if ( isset($_POST["text"]) && !empty($_POST["text"])) $text = $_POST["text"]; else $error .= "<li>Не введён текст сообщения</li>"; if ( strlen($text) > 1000 ) $error.="<li>Максимальная длинна сообщения 500 символов</li>"; if ( strlen($name) > 40 ) $error.="<li>Максимальная длинна имени 40 символов</li>"; $url = trim($_POST['site']); if ( $url == "http://" ) $url = ""; $text = stripslashes(htmlspecialchars($text)); $name = stripslashes(htmlspecialchars($name)); $city = stripslashes(htmlspecialchars($city)); $email = stripslashes(htmlspecialchars($email)); $text = str_replace("\n"," ",$text); if ( eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email) ) $error = $error."<li>Неправильно введён E-mail!</li>"; if ( !preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i",$email) && trim($email) != "" ) $error = $error."<li>Неправильно введён E-mail!</li>"; if ( !empty($error) ) echo("<ul style='color:red;'>".$error."</ul>"); else // записываем в файл { // вычисляем номер последней записи id $file = file("engine/guest.csv"); $max = 0; foreach( $file as $line) { if ( !empty($line) ) { $elem = explode(";",$line); if ( $elem[0] > $max) $max = $elem[0]; } } $max++; if (is_writeable("engine/guest.csv")) { $month = array('1' => 'января','2' => 'февраля','3' => 'марта','4' => 'апреля','5' => 'мая','6' => 'июня','7' => 'июля','8' => 'августа','9' => 'сентября','10' => 'октября','11' => 'ноября','12' => 'декабря'); $d=date("d {$month[date("n")]} Y, в H:i"); $f=fopen("engine/guest.csv","a+"); $write_text = "$max;$name;$city;$email;$url;$text;$d;$reply;$redata \n"; fputs($f,$write_text); fclose($f); { echo("<font color=red>Ваш вопрос записан! Спасибо! В ближайшее время Вы получите ответ.</font><html><head><meta http-equiv='Refresh' content='2; URL = guest.html'></head>"); } } else echo("<p style='color:red;'>Не удалось записать в файл<html><head><meta http-equiv='Refresh' content='2; URL = guest.html'></head></p>"); } } ?> <style type="text/css"> .textfield { border: #DBDBDB solid 1px; background-image: url('./images/textfield.gif'); } .button { background-image: url('./images/textfield.gif'); border: #DBDBDB solid 1px; } textarea { border: #DBDBDB solid 1px; font-size:10px; } small {font-size:9px; margin-right:40px; } </style> <br/> <form action='' method='POST'> <input type="hidden" name="action" value="do"> <input type="hidden" name="reply" /> <hr style="width:100%; color:#E0F1F7;" /> <table align="center" border="0" cellpadding=0 cellspacing=5 width=100% > <tr> <td align='right' width=30%>Имя : </td> <td><input type="text" name="name" size="40" class="textfield"> <span style="color:#FF0000;font-size:10pt">*</span></td> </tr> <td align='right'>Откуда : </td> <td><input type="text" name="city" size="40" class="textfield"> <span style="color:#FF0000;font-size:10pt">*</span></td> </tr> <tr> <td align='right'>E-mail : </td> <td><input type="text" name="email" size="40" class="textfield"> <span style="color:#FF0000;font-size:10pt">*</span></td> </tr> <tr> <td align='right'>Сайт : </td> <td><input type="text" name="site" size="40" value="http://......net" class="textfield"></td> </tr> <tr> <td align='center' colspan=2> <textarea type="text" name="text" rows="10" cols="90"></textarea></td> </tr> <tr> <td> </td><td><input type="submit" value="Отправить" name="submit" class="button"></td> </tr> </table> </form> <? echo("<br/>Придерживайтесь правил"); $content = ob_get_contents(); ob_end_clean(); ?>
Помогите пожалуйста осталась одна проблема почему не переключается работает отлично в админке а на сайте нет всмысле в браузере переключается ?page=1или2 а на самом деле нет помогите пожалуйста PHP: <? // подключаем ф-ю function navigator( $title, $title_links, $id, $quantity_show, $total, $get ) { if( $id=='' ) { $id='1'; } if( $quantity_show < '1' ) { $quantity_show = '1'; } $line = $title; $pages = ceil( $total / $quantity_show ); for( $i = 1; $i <= $pages; $i++ ) { if( $pages > $pages - $id and $id <= $pages ) { $e = ( $i * $quantity_show ) - $quantity_show; $e = $e / $quantity_show; if( $i == '0' ) { $e++; } if( $quantity_show == '1' and $i != '1' ) { $e++; } if( $id == $i ) { $second = $quantity_show * $id; $first = $second - $quantity_show; if($second > $total) { $second = $total; } if($second < '0') { $second = '0'; } $e = $e + 1; $line.= ' <a href="?'.$get.'='.$i.'" title="'.$title_links.' '.$i.'">'.$e.'</a> |'; } if( $id < $i and $id < $i and $id != $i) { $e = $e + 1; $line .= ' <a href="?'.$get.'='.$i.'" title="'.$title_links.' '.$i.'">'.$e.'</a> |'; } if( $id > $i and $id > $i and $id != $i) { $e = $e + 1; $line .= ' <a href="?'.$get.'='.$i.'" title="'.$title_links.' '.$i.'">'.$e.'</a> |'; } } } if( strlen( $line ) > '11' ) { return array( $line, $first, $second ); } return FALSE; } # если есть данные в командной строке, то выводим их if ( isset( $_GET ) ) { foreach ( $_GET as $key => $value ) { $$key=$value; } } # считываем базу в массив строк, в нашем случае база называется 'txt/csv' и данные в ней должны иметь разделение \n $file = file('engine/guest.csv'); # считаем сколько всего строк в базе $total = count($file); $count = count($file); # применим функцию (по три записи на вывод) $line_arr = navigator('Страниц :','', $page, 3, $total, 'page'); # в итоге получается $line - линия навигации $line = $line_arr[0]; # какой первый $file выводить, именно на этой страничке $first = $line_arr[1]; # какой последний $file выводить, именно на этой страничке $second = $line_arr[2]; # еще раз печатаем линию навигации, но уже вверху for ( $i = $total - $first - 1; $i >= $total - $second; $i--) { $elem = explode (';', $file[$i]); echo(" <table border=1 bordercolor=#E5E5E5 align=center cellpadding=0 cellspacing=0 width=100% ><tr> <td align=center valign=top colspan=2><b>Имя :</b> $elem[1] ( <b>$elem[2]</b> )</td> </tr> <tr> <td align=center valign=top width=50%><b>E-mail :</b> <a href=mailto:$elem[3] target=_blank>$elem[3]</a></td> <td align=center valign=top width=50%><b>Сайт :</b> <a href=$elem[4] target=_blank>$elem[4]</a></td> </tr> <tr> <td valign=top colspan=2><div style=margin-left:20px; ><b>Вопрос :</b> $elem[5]</div></td> </tr> <tr> <td align=right valign=top colspan=2><small>Сообщение № $elem[0] написано $elem[6]</small></td> </tr> <tr> <td bgcolor=#E0F1F7 valign=top colspan=2 ><div style=margin-left:20px;><b>$elem[7]</b><font color=red>$elem[8]</font></div></td> </tr> <tr> <td valign=top colspan=2 > </td> </tr></table>"); } if($line != '') { echo "$line"; } echo "<br>Всего ссообщений : $count<br>"; ?>