2012-03-26 2 views
0

Я искал в Интернете способ использования нашей базы данных истории на нашем сайте drupal 7. У меня есть база данных, построенная с именами, датами брака и т. Д. Я хотел бы иметь базовую страницу для поиска. Я нашел сайт, который помог с кодом, но он не работает. Я не программист, но я могу следовать указаниям. Вот код, у меня есть:Запросить базу данных с drupal 7

На основной странице с использованием кода PHP как мой формат ввода,

<html> 
<body> 
<script language=”javascript” type=”text/javascript”> 
<!– 
//Browser Support Code 
function ajaxFunction(){ 
var ajaxRequest; // The variable that makes Ajax possible! 

try{ 
// Opera 8.0+, Firefox, Safari 
ajaxRequest = new XMLHttpRequest(); 
} catch (e){ 
// Internet Explorer Browsers 
try{ 
ajaxRequest = new ActiveXObject(“Msxml2.XMLHTTP”); 
} catch (e) { 
try{ 
ajaxRequest = new ActiveXObject(“Microsoft.XMLHTTP”); 
} catch (e){ 
// Something went wrong 
alert(“Your browser broke!”); 
return false; 
} 
} 
} 
// Create a function that will receive data sent from the server 
ajaxRequest.onreadystatechange = function(){ 
if(ajaxRequest.readyState == 4){ 
var ajaxDisplay = document.getElementById("ajaxDiv"); 
ajaxDisplay.innerHTML = ajaxRequest.responseText; 
} 
} 
var lastphp = document.getElementById("lastphp").value; 
var queryString = “?lastphp=” + lastphp; 
ajaxRequest.open(“GET”, “/php/check.php” + queryString, true); 
ajaxRequest.send(null); 
} 
//–> 
</script> 

<form name="myForm"> 
<table border=”0″> 
<tr> 
<td width = 100>Last Name: <br /></td> 
<td><input type="text" id="lastphp"> </td> 
</tr> 
</table> 
<br /> 
<input type="button" onclick="ajaxFunction()" value="Search" /> 
</form> 
<div id="ajaxDiv"></div> 
</body> 
</html> 

Затем я создал PHP файл:

<?php 
//Connect to MySQL Server 
//connect to your database ** EDIT REQUIRED HERE ** 
mysql_connect("localhost","root","") or die('Cannot connect to the database because: ' . mysql_error()); 

//specify database ** EDIT REQUIRED HERE ** 
mysql_select_db(“genealogy”) or die(“Unable to select database”); //select which database we’re using 

// Retrieve data from Query String 
$last = $_GET['lastphp']; 

// Escape User Input to help prevent SQL Injection 
$last = mysql_real_escape_string($last); 

//Build and run a SQL Query on our MySQL tutorial 
$query = “SELECT * from columbus_ledger_enquirer_obituary_db”; //just grab every row from our table 
$results = mysql_query($query)or die(mysql_error()); 

//print what the user entered (eventually I’m sure you’ll want to use this data in your query) 
echo “You Entered: ” . $last . “<br><br>”; 

//print the results 
echo “Database Results: <br>”; 
while($row = mysql_fetch_array($results)){ 
echo “$row[lastname]<br>”; //NOTE: Here we are printing all the data from the ‘lastname’ column of our database, either change this name, or make sure you have a lastname column with some data in it 
} 
?> 

Я поместил php-файл в папку php под/sites/default.

На главной странице есть красивая коробка и кнопка поиска, но когда я печатаю имя, ничего не происходит.

Может ли кто-нибудь здесь рассказать мне, что случилось?

Благодаря

+2

Это не похоже на правильный способ «Друпал» делать вещи. Я бы посоветовал прочитать руководство и начать с чего-то более простого. – SpaceBeers

ответ

3

As @SpaceBeers упоминает это действительно не хороший способ сделать такого рода вещи в Drupal (Google «самозагрузка Drupal» или для некоторых идей «доступ к пользовательским базам данных в Drupal»).

Причина ваш код, вероятно, не работает, хотя, потому что вы вызываете ваш AJAX при помощи следующего кода:

ajaxRequest.open(“GET”, “/php/check.php” + queryString, true); 

Проблема находится в пути ... Вы упоминаете вы» ве поместить папку «PHP» в «/ сайты/все», так что, конечно, путь от вашего вызова AJAX должен быть тот же:

ajaxRequest.open("GET", "/sites/all/php/check.php" + queryString, true); 
1

в эти дни «есть модуль для него» (для запроса внешнего базы данных в таких форматах, как Oracle, MS SQL, Postgress, SQLite или только любой формат, совместимый с PDO). Это модуль Forena (раскрытие: я являюсь его сопроводителем).

Перейдите к его demo site, чтобы увидеть его как работу, и обратитесь к его community docu для получения более подробной информации. Вот цитата из его документа:

... основанный на идее использования SQL для получения данных из базы данных и использования XHTML и CSS для его форматирования в веб-отчеты.

Он предназначен для использования существующих знаний HTML, CSS, SQL и JavaScript, чтобы помочь вам создать богатые интерактивные веб-отчеты.

Смежные вопросы