Jump to content
  • 0

PHP. Организация вывода новостей.


yummi
 Share

Question

хочу сделать вывод новостей. надоело инклюдить) тем более что 100 новостей ручками тупо инклюдить) вот посмотрите мою схему, как я хочу сделать:

(сверху бд msql)

http://s46.radikal.ru/i111/0907/83/a245b9c2117e.png

итак, у меня есть пара вопросов:

1) рыжим отмечены отношения в БД. Я о них вскользь слышала. Зачем они понимаю. но как они устанавливаются? как их использовать? (просьба своими словами. ну или ссылка, но не мануал-реферат с height страницы равной ∞))

2) справа В общем показано страница с выводом всех новостей с предпросмотром. то есть выводятся не все новости целиком, а только начальгые строки. вопрос - как????

3) слева - новость целиком, если нажать на кнопку "предпросмотр")))

итак, прописывать в переменную $раздел или $имя новости самомой - тупо. значит нужно организовать цикл. но что то на ум не приходит ничего умного на этот счёт - видно чего-то не хватает из знаний.

кроме как великого кода, написанного мною

<?php 


include ('connect.php');
$news=mysql_query("SELECT * FROM `news`");


while ($row = mysql_fetch_array($news))
{
echo $row['id']." ".$row['text']."<br>";
}
?>

никак раньше новости не выводила. вот с моей задумкой, его нужно как то жестоко изменять, или подругому быть???

помогите пожалуйста, все когдато ведь начинали)

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
  Veseloff said:
Я, например, вообще ни черта не понял.

гм, мне нужно сделать выборку из БД и организовать всё это дело как на рисунке.

P.S. и нарисовала, и по пунктам спросила, почему не понятно?

Link to comment
Share on other sites

  • 0
  Quote
2) справа В общем показано страница с выводом всех новостей с предпросмотром. то есть выводятся не все новости целиком, а только начальгые строки. вопрос - как????

substr()

поскольку не вижу структуру таблицы, навскидку сказать не могу, кроме того что этот кусок кода все равно можно выкинуть. и если нет никаких религиозных возражений, посоветую использовать для работы с БД вот такой класс (взят из форумного движка PunBB с небольшими изменениями):

<?php
!function_exists('mysql_connect') ? exit('This PHP environment doesn\'t have MySQL support built in. MySQL support is required if you want to use a MySQL database to run this script. Consult the PHP documentation for further assistance.') : null;

class DBLayer {
var $prefix;
var $link_id;
var $query_result;
var $saved_queries = array();
var $num_queries = 0;

function DBLayer($db_host,$db_username,$db_password,$db_name,$db_prefix,$p_connect) {
$this->prefix = $db_prefix;
if($p_connect) {$this->link_id = @mysql_pconnect($db_host,$db_username,$db_password);}
else {$this->link_id = @mysql_connect($db_host,$db_username,$db_password);}

if($this->link_id) {
if(@mysql_select_db($db_name,$this->link_id)) {return $this->link_id;}
else {exit('Unable to select database. MySQL reported: '.mysql_error().'<br />File: '.__FILE__.'Line: '.__LINE__);}
}
else {exit('Unable to connect to MySQL server. MySQL reported: '.mysql_error().'<br />File: '.__FILE__.'Line: '.__LINE__);}
}

function start_transaction() {return;}
function end_transaction() {return;}

function query($sql,$unbuffered = false) {
if($unbuffered) {$this->query_result = @mysql_unbuffered_query($sql,$this->link_id);}
else {$this->query_result = @mysql_query($sql,$this->link_id);}
if($this->query_result) {
++$this->num_queries;
return $this->query_result;
}
else {
if(defined('PUN_SHOW_QUERIES')) {$this->saved_queries[] = array($sql,0);}
return false;
}
}

function result($query_id = 0,$row = 0) {return ($query_id) ? @mysql_result($query_id,$row) : false;}
function fetch_assoc($query_id = 0) {return ($query_id) ? @mysql_fetch_assoc($query_id) : false;}
function fetch_row($query_id = 0) {return ($query_id) ? @mysql_fetch_row($query_id) : false;}
function num_rows($query_id = 0) {return ($query_id) ? @mysql_num_rows($query_id) : false;}
function affected_rows() {return ($this->link_id) ? @mysql_affected_rows($this->link_id) : false;}
function insert_id() {return ($this->link_id) ? @mysql_insert_id($this->link_id) : false;}
function get_num_queries() {return $this->num_queries;}
function get_saved_queries() {return $this->saved_queries;}
function free_result($query_id = false) {return ($query_id) ? @mysql_free_result($query_id) : false;}

function escape($str) {
if(is_array($str)) {return '';}
elseif(function_exists('mysql_real_escape_string')) {return mysql_real_escape_string($str,$this->link_id);}
else {return mysql_escape_string($str);}
}

function error() {
$result['error_sql'] = @current(@end($this->saved_queries));
$result['error_no'] = @mysql_errno($this->link_id);
$result['error_msg'] = @mysql_error($this->link_id);
return $result;
}

function close() {
if($this->link_id) {
if($this->query_result) {@mysql_free_result($this->query_result);}
return @mysql_close($this->link_id);
}
else {return false;}
}

}
?>

Link to comment
Share on other sites

  • 0

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

А так смысл правильный у вашего куска кода. Двигайтесь в том же направлении ))

Ну и про класс для работы с БД D.S.Denton правильно говорит.

Edited by demous
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy