2014-11-05 48 views
0

我想从一个函数从类到另一个文件,但是当我运行代码它说:“致命错误:调用成员函数start_order()在非对象在C:\第4" 行的appserv \ WWW \店\ start.php从类不工作获取功能

这是调用代码:

<?php 
    @session_start(); 
    require_once ('include/functions.php'); 
    $users->start_order(); 
    ?> 

这是类和函数代码:

<meta charset='utf-8' /> 
    <?php 
    require_once ('include/config.php'); 
    class users { 

    public function start_order() { 
    if($_SESSION['id']) { 
    $services=mysql_query("SELECT * FROM services"); 
    print (" 
    <form action='<?php echo $PHP_SELF; ?>' method='post'> 
    <input name='orderlink' type='text'></input> 
    <input name='orderquantity' type='text'></input> 
    <input name='ordersubmit' type='text'></input> 
    </form> 
    "); 
    $order_submit=$_POST ['ordersubmit']; 
    $order_link=$_POST ['orderlink']; 
    $order_quantity=$_POST ['orderquantity']; 
    if($order_submit AND !empty($order_link) AND !empty($order_quantity)){ 
    while ($fetch_services=mysql_fetch_object($services)) { 
    print ("<select>"); 
    print ("<option value='$fetch_services->id'>$fetch_services->service_name ($fetch_services->service_price)</option>"); 
    print ("</select>"); } 
    } else { echo "خطاء";} 
    $s_id=$_POST ['service']; 
    $g_s_i=mysql_query("SELECT * FROM services WHERE id='$s_id'"); 
    $fetch_service=mysql_fetch_object($g_s_i); 
    $s_price=$fetch_service->servic_price; 
    $service_n=$fetch_service->service_name; 
    $charge=$s_price/$order_quantity*$order_quantity; 
    $date=date ("Y-m-d"); 
    $userbalance=mysql_query("SELECT * FROM users WHERE id='$_SESSION[id]'"); 
    $fetch_userbalance=mysql_fetch_object($userbalance); 
    $u_balance=$fetch_userbalance->balance; 
    if ($u_balance >= $charge) { 
    $insert_order_values=mysql_query("INSERT INTO orders(id,u_id,u_name,date,link,charge,quantity,service_name,status) VALUES ('','$_SESSION[username]','$date','$order_link','$charge','$order_quantity','$service_n','0')"); 
    $update_balance=mysql_query("UPDATE users SET balance=$u_balance-$charge WHERE id='$_SESSION[id]'"); 
    } 
    else { echo "not enough fund";} 
    }}} 

    ?> 

回答

1

你的天堂”目前还没有赚到用户。

$users = new users(); 
$users->start_order(); 

另外,最好的做法是大写你的类名,这样看起来不像你的实例。

$users = new Users(); 
$users->start_order(); 
1

您使用前需要先创建对象的一个​​实例:

<?php 
@session_start(); 
require_once ('include/functions.php'); 
$users = new users(); 
$users->start_order(); 
?> 
+1

仅供参考到OP,在'创建实例时,除非在构造函数需要参数()'是可选的。您可以轻松执行'$ users = new users;' – 2014-11-05 19:11:26