2014-01-25 3 views
1

Я ищу способ очистки своей БД кнопкой на html-странице (.php). У меня есть код, который работает нормально, но каждый раз, когда я заходил на страницу, функция очищает мою БД без меня, нажимая кнопку.Функция запускается даже тогда, когда она не называется

Вот мой код

<button id="checkoutbutton" onclick="cleanDb()">Clean DB</button> 
<script> 
function cleanDb() 
{alert("<?php clean();?>")} 
</script> 
<?php 
function clean() 
{ 
$con=mysql_connect("localhost","rss","Habb0") or die("Failed to connect to MySQL: " . mysql_error()); 
$db=mysql_select_db("kalender",$con) or die("Failed to connect to MySQL: " . mysql_error()); 
$sql='DELETE FROM `bilder` WHERE `stop` < now()'; 
mysql_query($sql); 

echo "Databasen är rensad från gamla bilder";} 
?> 

Пожалуйста, помогите мне!

+1

вы вызываете функцию в php, поэтому, когда страница загружается, ваш 'clean()' будет вызывать. если вы хотите выполнить его, нажав кнопку. вызовите для него функцию ajax. –

ответ

3

PHP анализируется на стороне сервера, JavaScript анализируется на стороне клиента. Любая работа PHP будет выполняться первой, перед любым javascript (не учитывая AJAX).

+0

Как решить проблему с помощью кнопки? – user223062

+0

@ user223062 Используйте ajax или форму или гиперссылку. Создайте отдельную страницу PHP, которая будет выполнять операцию db. Сделайте свою кнопку запрошенной этой страницей. – TwilightSun

+0

@ user223062 заставить PHP взаимодействовать, как это не так, вам нужно знать, как работает HTTP. – TwilightSun

1

Используйте этот код, но я не использую javascript. В вашем случае вы должны рассмотреть AJAX. Но второй вариант, как следовать

<form action="" method="post"> 
<button id="checkoutbutton" onclick="cleanDb()" name="clebtn">Clean DB</button> 
</form> 
<?php 
if(isset($_POST['clebtn'])) 
{ 
    function clean() 
    { 
    // your code 
    } 

} 

?> 
1

вы должны вызвать Аякса для него, как этот

<button id="checkoutbutton" onclick="cleanDb()">Clean DB</button> 
<div id="result_content"></div> 
<script> 
function cleanDb() 
{ 
    if(window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } 
    else 
    {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 

      var result = xmlhttp.responseText; 
      // do your task for result 
     } 
    } 

    var url="clean_db.php"; 

    xmlhttp.open("GET",url,true); 

    xmlhttp.send(); 
} 
</script> 

и PHP File clean_db.php

<?php 
clean(); 
echo "db has been cleaned"; 

function clean() 
{ 
$con=mysql_connect("localhost","rss","Habb0") or die("Failed to connect to MySQL: " . mysql_error()); 
$db=mysql_select_db("kalender",$con) or die("Failed to connect to MySQL: " . mysql_error()); 
$sql='DELETE FROM `bilder` WHERE `stop` < now()'; 
mysql_query($sql); 

echo "Databasen är rensad från gamla bilder";} 
?> 
+0

Приятный, я помню только, как писать AJAX с jQuery. – TwilightSun

+0

@TwilightSun спасибо –

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