2015-02-03 4 views
0

Так что я пытаюсь изо всех сил пытаться создавать php-методы с нуля. Мои классы еще не совсем классы, я все еще работаю над этим. Во всяком случае, моя проблема заключается в том, что я не могу получить значения, которые я ожидаю от своей базы данных. Вот отрывок из моего кода:Метод вызова из другого php-файла

file1.php

<?php function dbConnect() { 
$connection = mysqli_connect("localhost", "music_root", "", "music"); 
if($connection->connect_error) { 
    return null; 
} 

return $connection;} 

function getCategory() { 
$cn = dbConnect(); 
if($cn == null) { 
    echo "Failed to connect to database."; 
} else { 
    $fetchQuery = mysqli_query($cn, "SELECT * FROM tbl1 ORDER BY 'Name'") or die(mysqli_error($cn)); 
    if(mysqli_num_rows($fetchQuery) > 0) { 
     while($item = mysqli_fetch_array($fetchQuery)) { 
      return $item["Name"]; 
     } 
    } 
}} ?> 

Вот фрагмент кода, как я называю выше метод file2.php

<?php ini_set("display_errors", 1); 
    include_once("file1.php"); 
    $con = dbConnect(); 
    $updateStat = false; ?> 

<div> 
    <label>Genre</label> 
    <select id="genre" name="genre" value="Please select genre"> 
    <option value="<?php $con->getCategory() ?>"></option> 
    </select> 
</div> 

Я пробовал печатать сообщение в начало метода, чтобы увидеть, если он вызывается, но сообщение не печаталось, так что мне было интересно, чего мне здесь не хватает?

+0

Вы не включили '' file1.php' в file2.php' ?! – Rizier123

+2

use require_once(), когда «в том числе» терпит неудачу, requiere забрасывает E_ERROR, включает в себя только выбросы NOTICE – donald123

+0

У вас много ошибок в коде! 1. Где определяется 'dbConnect()'? 2. Я не думаю, что функция 'dbConnect()' возвращает объект, который имеет метод 'getCategory()', иначе, пожалуйста, покажите нам свое определение класса. Также ваша функция 'getCategory()' файла1 никогда не используется в вашем коде прямо сейчас! Поэтому вы должны сказать нам, почему это имеет отношение к вашему вопросу. – Rizier123

ответ

1

Я думаю, что у вас есть Serveral ошибка в коде ... я думаю, вы не использовать объектно-ориентированное программирование (классы), поэтому я modfiy примера, который должен работать .. .if нет, пожалуйста, отправлять сообщения об ошибках

file1.php

function getCategory($cn) { 
    $out = array(); 
    if($cn == null) { 
     echo "Failed to connect to database."; 
    } else { 
     $fetchQuery = mysqli_query($cn, "SELECT * FROM tbl1 ORDER BY 'Name'") or die(mysqli_error($cn)); 
     if(mysqli_num_rows($fetchQuery) > 0) { 
     while($item = mysqli_fetch_array($fetchQuery)) { 
      $out[] = $item["Name"]; 
     } 
     } 
     return $out; 
    } 
} 

fil2.php

<?php 
    ini_set("display_errors", 1); 
    require_once("file1.php"); 
    $con = dbConnect(); 
    $updateStat = false; 
    $res = getCategory($con); 
?> 

<div> 
<label>Genre</label> 
<select id="genre" name="genre" value="Please select genre"> 
<?php   
    foreach($res as $cat): 
?> 
<option value="<?php echo $cat ?>"><?php echo $cat ?></option> 
<?php endforeach;?> 
</select> 

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