2013-11-22 2 views
0

저는 Joomla 3.0 (최신 버전입니다)과 마법사를 사용하고 있습니다. 내가 만든 데이터베이스의 테이블에 입력 한 데이터를 제출할 양식이 있습니다. 어떤 이유로 테이블에 쓰지 않고 데이터베이스를 찾을 수 없다고 확신합니다.Joomla 데이터베이스에 쓸 수 없습니까?

저는 마술사를 사용하고 있기 때문에 데이터베이스에 연결하기 위해 코드를 포함 할 필요가 없으며 자동으로 수행됩니다. 수많은 코드 변형을 시도했지만 아무 것도 작동하지 않습니다. 이것은 꽤 단순해야만하는 것처럼 보입니다.

저는 PHP/SQL 코딩에 익숙하지 않으므로 코드에 문제가있을 수 있습니다. 그러나 많은 다른 것들을 시도한 후에 테이블에 쓸 수없는 또 다른 이유가 있는지 궁금합니다.

여기 내 HTML 양식 및 PHP입니다. 본질적으로, 여기에 입력 된 사용자 이름이 내 데이터베이스의 사용자 테이블에 있는지 확인하고 싶습니다. 존재하고 확인란이 켜져 있으면 out_of_office 테이블에 사용자 이름과 메시지를 입력하십시오. 확인란이 선택되어 있지 않으면 표에서 행을 삭제합니다. 하지만 지금은 테이블에 글을 쓸 수 없으므로 먼저 파트를 제대로 작동시켜야한다고 생각했습니다.

<form method="post" action=""> 
<p>Out of Office <input name="onoff" type="checkbox" value="ON"></p> 

<p><label>Custom Out of Office Message</label> 
<input type="text" name="custommessage" size="30" maxlength="25"/></p> 

<p><label>Enter Username</label> 
<input type="text" name="enterusername" size="30" maxlength="25"/></p> 

<p><input type="submit" name="submit" value="Submit" /></p> 
</form> 

<?php 
$username = $_POST['enterusername']; 
$message = $_POST['custommessage']; 
$query = "INSERT INTO out_of_office VALUES ('$username', '$message')"; 

mysql_query($query) or die ('Error'); 

echo "data entered"; 

?> 

웹 사이트의 페이지로 이동하면 "오류"라는 흰색 페이지가 표시됩니다. 내가 말했듯이, 나는 PHP를위한 많은 코드를 시도했지만 아무것도 작동하지 않는다. 도와주세요!

+0

데이터베이스에 데이터를 삽입하는 방법에 대한 설명서를 읽으십시오. 당신은 그것을 완전히 잘못하고 있습니다. – Lodder

+0

"문서"는 무엇입니까? 마법사, joomla, myphpadmin ...? 내가 말했듯이 나는 다른 솔루션을 제공하는 많은 문서를 읽었다. 어느 것도 작동하지 않습니다. – user2647160

답변

2

기사에 코드를 모두 넣는 대신 기사로 가져올 수있는 작은 모듈을 만들어야합니다.

여기에 기본 모듈을 개발하는 방법에 대한 documentation이 있습니다. 이 외에도 다음을 사용할 수도 있습니다 module generator

일단 기본 모듈을 갖추면 joomla 코딩 표준을 사용하여 $_POST 데이터를 가져오고 싶을 것입니다. 다음은이 작업을 수행하는 방법에 대한 다음의 읽기 유무 : 데이터베이스 쿼리에 관해서는

http://docs.joomla.org/Inserting,_Updating_and_Removing_data_using_JDatabase

을 다시, 특정 코딩 표준에보고해야합니다. 여기에 대한 자세한 내용을 읽어

여기

http://docs.joomla.org/Inserting,_Updating_and_Removing_data_using_JDatabase

는 데이터베이스 쿼리 오프 시작하는 데

$db = JFactory::getDbo(); 
$query = $db->getQuery(true); 

$columns = array('username', 'message'); 
$values = array($db->quote($username), $db->quote($message)); 

$query 
    ->insert($db->quoteName('out_of_office')) 
    ->columns($db->quoteName($columns)) 
    ->values(implode(',', $values)); 

$db->setQuery($query); 
$db->execute(); 

그냥 뭔가처럼 보일 것입니다 무슨의 예입니다. 행운을 빕니다.

희망 하시겠습니까?

+0

테이블에 필요한 열이 이미 있으므로 $ columns = array ('username', 'message')가 필요하지 않습니다. 부분 또는 ... -> 열 ($ db-> quoteName ($ 열)), 맞습니까? 아니면 단지 값을 삽입 할 열을 말하는 것입니까? – user2647160

+0

예, 여기에 값을 추가 할 열이 정의되어 있습니다. – Lodder

관련 문제