2014-12-26 2 views
0

지금 당장 특정 데이터베이스 테이블에서 모든 레코드를 읽고 웹 사이트에 인쇄해야하는 방법을 알아 내려고 애 쓰고 있습니다. 내 웹 사이트에 '뉴스 피드'섹션이 있습니다. 그리고 나는 최신 뉴스를 모두 보여주고 싶습니다. 내 문제는 어떻게 연결하고 데이터베이스에서 선택하고 배열에 데이터를 저장하는 것이 아닙니다.특정 데이터베이스의 모든 레코드를 읽고 인쇄하는 가장 좋은 방법은 무엇입니까?

내 문제는 어디에서 어떻게해야합니까? 뉴스가 표시된 것과 같은 파일 또는 포함될 외부 파일에 있습니까? 그렇다면 외부 파일에서 어떻게해야합니까?

나는 하나의 모든 페이지에 'functions.php'라는 파일이 있습니다. 모양은 다음과 같습니다.

<?php 
if(!isset($_SESSION)){ 
session_start(); 
} 

function loggedIn(){ 
if(isset($_SESSION['user_id']) && ($_SESSION['user_id'] != "")){ 
    return true; 
}else{ 
    return false; 
} 
} 

if(loggedIn()){ 
$user_id = $_SESSION['user_id']; 
$user_email = $_SESSION['user_email']; 
$user_first_name = $_SESSION['user_first_name']; 
$user_last_name = $_SESSION['user_last_name']; 
$user_newsletter = $_SESSION['user_first_name']; 
} 

?> 

여기에 내가 mysqli 연결을 열고 데이터를 저장하는 방법은 무엇입니까?

mysqli_connect($server, $user_name, $pass_word, $database); 
$query = "SELECT * FROM news ORDER BY id"; 
news_data = mysqli_fetch_array($query); 

이 글을 읽는 사람 중 한 명에게 감사드립니다. 기쁜 성탄과 새해 복 많이 받으십시오 :)

+0

'$ 결과 = mysqli_query ($ 쿼리)에 의해 ORDER와 DESC 또는 ASC를 사용한다; while ($ news_data = mysqli_fetch_array ($ result)) {display $ news_data}'친숙한 [manual]을 읽으십시오. (http://php.net/manual/en/mysqli.query.php) –

답변

0

당신은 뉴스 피드를 표시하기 위해 사용하고있는 PHP 파일에 연결하고 닫을 수 있습니다. tablemakerFromArray 기능

mysqli_connect($server, $user_name, $pass_word, $database); 
$query = "SELECT * FROM news ORDER BY id"; 

//start table here 
while($news_data = mysqli_fetch_array($query)){ 
    //create html table content here 
} 

//close html table and db connection 

다른 방법은 매핑을하고있다 및 사용 :

mysqli_connect($server, $user_name, $pass_word, $database); 
$query = "SELECT * FROM news ORDER BY id"; 

$table_content_array=array(''); 
$i++; 
while($news_data = mysqli_fetch_array($query)){ 
    $table_conntent_array[$i][your_first_key]=$news_data['table_row_about_this_key']; 
    .....//other key and rows 
    ...... 
    $i++; 
} 

tableFromArray(table_content_array);//this func. will make keys of array table titles 

public static function tableFromArray($arr){ 
    if(count($arr)==0) 
    { 
     return 0; 
    } 
    ?> 
    <table border="1"><tr> 
    <?php foreach ($arr[0] as $key => $value) {?> 
     <td><?php echo $key; ?></td> 
    <?php }?> 
    <tr/> 
    <?php 
    $i=0; 
    foreach ($arr as $item) {?> 
    <tr/> 
     <?php foreach ($item as $alan) {?> 
      <td><?php echo $alan;?></td> 
     <?php }?> 
    </tr> 
    <?php }?> 
</table> 
<?php } 

이것은 PHP와 테이블의 모든 데이터를 표시하는 가장 간단한 방법입니다 이 같은 foreach 루프를 만들 수 있습니다 .

+0

요청 당 여러 번 데이터베이스 연결을 열거 나 닫을 때 불필요한 오버 헤드가 발생할 수 있습니다. mysqli_connect 함수를 데이터베이스 연결 함수가 사용/포함 된 이벤트에서 한 번만 평가되는 다른 포함으로 제거하는 것이 여전히 유용합니다. – superultranova

0

예, If (loggedIn()) 조건 내에 코드를 입력 할 수 있습니다.

if(loggedIn()){ 
 
$user_id = $_SESSION['user_id']; 
 
$user_email = $_SESSION['user_email']; 
 
$user_first_name = $_SESSION['user_first_name']; 
 
$user_last_name = $_SESSION['user_last_name']; 
 
$user_newsletter = $_SESSION['user_first_name']; 
 
mysqli_connect($server, $user_name, $pass_word, $database); 
 
$query = "SELECT * FROM news ORDER BY id"; 
 
news_data = mysqli_fetch_array($query); 
 
}
물론

는 PHP 프로젝트를 구성하는 많은 더 나은 방법이 있습니다,하지만 당신은 무엇을 위해,이 작동합니다.

+0

session_start()가 있기 때문에 모든 파일에 포함되어 있습니다. 그리고 나는 그러한 종류의 정보가 필요하지 않은 페이지에서 mysqli 연결을 열지 않는 것이 현명하지 않다고 생각한다. 어쩌면 새로운 함수 파일을 만들어서이 함수 페이지를 포함시킨 다음 뉴스 페이지에 넣고 if (loggedIn) {// mysqli 연결을 열고 데이터를 얻은 다음 다시 연결을 닫으라고해야할까요? } – user3703289

0

정말 당신에게 달렸습니다. 일반적으로 유사한 기능을 별도의 파일/라이브러리로 그룹화하는 것이 가장 좋습니다. 귀하의 경우에는 데이터베이스 관련 기능이 포함 된 파일을 보유 할 수 있습니다. 그러나 mysqli_connect가 다중 연결을 피하기 위해 요청 당 한 번만 호출되도록하는 것이 좋습니다. 요청 당 한 번로드 된 파일에 mysqli_connect 함수를 넣은 다음 필요할 때 함수 파일을로드 할 수 있습니다. 그런 다음 함수를 호출하여 필요에 따라 데이터베이스를 쿼리하십시오. 실제로 쿼리를 수행하지 않고 데이터베이스에 연결하려는 경우가 있습니다.이 경우 연결 논리를 분리하면 프로젝트가 좀 더 모듈화됩니다. 이를 처리하는 더 좋은 방법이 있지만 작은 개인 프로젝트의 경우이 방법이 문제가되어서는 안됩니다.

다른 의견에 따라 mysqli_connect (예 : mysql_conn.php) 함수가 포함 된 파일과 쿼리 함수 (예 : mysql_funcs.php)가 포함 된 파일을 가질 수 있습니다. 명시 적으로 mysql_conn.php를 포함 할 수도 있고 mysqli 연결을 사용하는 파일에 require_once를 사용하는 mysql_conn.php 스크립트를 포함시켜 연결이 한 번만 생성되도록 할 수 있습니다.

0

당신은 SELECT

을 시작하여 mysql_query()를 사용해야합니다 그리고 당신은

  $query = mysql_query("SELECT * FROM news ORDER BY id DESC"); 
      news_data = mysqli_fetch_array($query); 
관련 문제