2013-02-23 2 views
2

그래서 운동 사이트를 만들었고 순간에 수많은 연습 문제가 표시되었습니다. MySQL 데이터베이스에서 데이터를 가져 오는 데 문제가 없습니다. 내 문제는 각 연습을 별도의 페이지에서 볼 수 있습니다. 순간 운동은 모두이 기능을 사용하여 뽑아됩니다어떻게 MySQL 데이터를 가져 와서 PHP로 가져 와서 수백만 페이지를 만들지 않고 다른 페이지에서 사용하십시오.

//Show exercises based on exercise category 
function show_exercise($cat, $category) 
{ 
    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
    $query = "SELECT * FROM exercises WHERE cat_id='$cat' "; 
    $result = mysqli_query($dbc, $query); 
    while($row = mysqli_fetch_array($result)) 
    { 
     $output[] = '<div class="item"> 
     <h2>'. $row['name'] .'</h2> 
     <img src="'. $row['image'] .'" alt="'. $row['name'] .'" /> 
     <input class="button" type="submit" name="add" value="add" /> 
     <a href="index.php?p=view"><input class="button" type="submit" name="view" value="view"/></a> 
     </div>'; 
    } 
    echo join('', $output); 
} 

지금이 그냥 배열로 한 페이지에 내 다른 운동을 모두 끌어 : 여기

//Category 1 is biceps 
$cat = 1; 
//$category is used for the case statement, to allow the form to submit and refresh   to the case statement that it is on, for each instance of the function. 
$category = 'biceps'; 
show_exercise($cat, $category); 

은 함수 자체입니다. 나는 각 개별 운동을 선택하고 볼 수 있기를 원하지만 어떻게해야할지 모르겠다. 한 가지 방법은 모든 운동을위한 페이지를 만드는 것이지만 수백 가지가 있습니다. 위 코드의 버튼은 사용되지 않지만 아이디어는 '보기'버튼을 클릭하면 더 자세하게 읽을 수있는 별도의 연습 페이지로 이동한다는 것입니다. 데이터베이스에서 위의 코드에서 사용 된 모든 데이터는 개별 연습 페이지에서 사용할 수 있습니다.

내 페이지는 switch 문을 사용하여 관리되며 답변을 변경할 수 있으므로이 부분을 언급 할 것이라고 생각했습니다. 다음은 내가 사용하고있는 switch 문입니다.

// Validate what page to show: 

if(isset($_GET['p'])) 
{ 
    $p = $_GET['p']; 
} 
elseif(isset($_POST['p'])) 
{ 
// Forms 
    $p = $_POST['p']; 
} 
else 
{ 
    $p = NULL; 
} 
// Determine what page to display: 

switch ($p) 
{ 
    case 'contact' : 
     $page = 'contact.php'; 
     $page_title = 'Contact Us'; 
    break; 

    case 'exercises' : 
     $page = 'exercises.php'; 
     $page_title = 'Exercises'; 
    break; 

    case 'routines' : 
     $page = 'routines.php'; 
     $page_title = 'Your Routines'; 
    break; 

    case 'arms' : 
     $page = 'arms.php'; 
     $page_title = 'arms routine'; 
    break; 
} 

이 문장은 계속됩니다. 내가이 소리를 그게 뭔지보다 더 어렵게 만들지는 모르겠다. 질문이 있으면 제가 의견을 말할 준비가됩니다.

+0

친애하는 신 남자 - 프레임 워크를 사용하십시오! 프레임 워크는 많은 문제를 해결해 줄뿐만 아니라 필요한 것을 할 수있는 유연성을 제공합니다. [CodeIgniter] (http://ellislab.com/codeigniter)를 확인하십시오. – adomnom

+0

나는 codeigniter를 배우고 있습니다. 우리의 교사는 우리가 프레임 워크를 사용하지 못하게합니다 : -/ –

답변

0

각 운동을 선택하고 볼 수 있기를 원하지만 어떻게해야할지 모르겠다. 한 가지 방법은 모든 운동을위한 페이지를 만드는 것이지만 수백 가지가 있습니다.

"페이지"란 무엇을 의미합니까?

어쨌든 실제로 쿼리 문자열 매개 변수를 전달할 수 있으므로 PHP 스크립트는 둘 이상 필요하지 않습니다. 그러나 일반적으로 여러 페이지에 걸쳐 배포하는 경우 유지 관리가 더 쉽습니다. 이미이 일을하고있는 것 같습니다. 좋은.

예를 들어 "보기"페이지에 액세스 할 때만 사용되는 "itemid"라는 매개 변수를 추가 할 수 있습니다.

마 - 스크립트에서 포함 된 다른 스크립트 (이 "페이지 스크립트"라고 부름)에서보기 페이지가 구현 된 경우 모든 "페이지 스크립트"가 동일한 기능, 즉 generate_page($query_string)을 구현하는 것이 좋습니다 그것은 mother-script에서 query-string으로 호출됩니다. OOP를 사용한 경우 각 페이지는 동일한 인터페이스를 구현하는 클래스가 될 수 있습니다. 하지만 이미하고있는 것과 비슷한 것을 제안하려고합니다.

어머니 페이지에 대해이 같은 뭔가 :

<?php 
$pagename = $_GET["page"]; 
$allowed_pages = ["view", "contact"]; 
if (!in_array($pagename,$allowed_pages)) exit("Invalid page!"); 
require($page . ".php"); 
generate_page($_GET); 
?> 

view.php

<?php 
function generate_page($arguments) { 
    if (!isset($arguments["item"])) exit("Item needs to be specified!"); 
    // Do SQL query and view THIS item. (remember to guard against SQL injection!) 
    // you can do this by using a different WHERE clause 
} 
?> 

지금은 원하는 것을 보여줄 수 있습니다 볼 수 있습니다. 다른 페이지에서는 원하지 않는 경우 $arguments 매개 변수를 사용할 필요가 없습니다.

<a href="index.php?p=view&item={$row['itemid']}">과 같은 것으로 링크를 변경할 수 있습니다.

+0

페이지에 의해 나는 수동으로 PHP를 사용하는 대신 백가지 운동 페이지를 만드는 것을 의미합니다. 저는 PHP에서 절대 초보자입니다. 나는 당신의 코드가 무엇을하는지 모른다. DVD의 카테고리를 검색 할 때 play.com을 상상하고 DVD를 클릭하면 자체 페이지가 있습니다.하지만 연습을 위해 원하는 것입니다. 내가 필요한 모든 데이터를 가져 왔어. 그리고 각 행에 대해 내가 뽑아 볼 때 특정 운동을보기 버튼을 가지고 싶습니다. 이해 하겠니? –

+0

네, 이해한다고 생각합니다. 각 운동에 ID가 있으면 쿼리 문자열 매개 변수로 전달할 수 있습니다 ('$ _GET'으로 끝납니다). 내 대답의 어느 부분을 이해하지 못합니까? –

+0

맞아, 내 page switch 문은 index.php에있다. 내 함수는 functions.php에 있고 view.php에 넣으라고 말한 코드가 거기에있다. generate_page 함수 란 무엇입니까? 항목을보기 위해 SQL 쿼리를 작성하는 방법을 모릅니다. –

관련 문제