2015-11-07 2 views
0

Я полный noob с выполнением OOP и в настоящее время ищут рефакторинг процедурного PHP-проекта. В настоящее время у меня возникают проблемы, пытаясь просто отобразить мои результаты из запроса SELECT, - иронически делает запрос INSERT. Это мой файл Класс:Отображение результатов запроса SELECT с использованием oop php

<?php 
class MadLibs {     
    private $noun; 
    private $verb; 
    private $adverb; 
    private $adjective; 
    private $story; 

    // Getters 
    public function getNoun() { 
     return $this->noun; 
    } 
    public function getVerb() { 
     return $this->verb; 
    } 
    public function getAdverb() { 
     return $this->adverb; 
    } 
    public function getAdjective() { 
     return $this->adjective; 
    } 
    public function getStory() { 
     return $this->story; 
    }   
    // Setters 
    public function setNoun($noun) { 
     $this->noun = $noun; 
    } 
    public function setVerb($verb) { 
     $this->verb = $verb; 
    } 
    public function setAdverb($adverb) { 
     $this->adverb = $adverb; 
    } 
    public function setAdjective($adjective) { 
     $this->adjective = $adjective; 
    } 
    public function setStory($story) { 
     $this->story = $story; 
    } 
    // Figured this one out 
    public function insertStoryToDatabase() { 
     date_default_timezone_set('America/Chicago'); 
     $submit_date = date('Y-m-d' . " " . 'H:i:s');    
     $dbc = mysqli_connect('localhost','root','','mad_libs') 
      or die('Error establishing connection');       
     $query = "INSERT INTO storyTime (noun, verb, adjective, adverb, createdDate, fullStory) " . 
       "VALUES ('$this->noun','$this->verb','$this->adjective','$this->adverb','$submit_date','$this->story')";    
     mysqli_query($dbc,$query) 
       or die('Error querying database');      
     mysqli_close($dbc); 
    } 
    // method I am having trouble setting up 
    public function displayAllStories() { 
     $dbc = mysqli_connect('localhost','root','','mad_libs') 
      or die('Error establishing connection');     
     $result  = "SELECT fullStory, createdDate FROM storyTime ORDER BY createdDate DESC";    
     $display = mysqli_query($dbc,$result) 
       or die('Error gathering data!');    
     while ($row = mysqli_fetch_array($display)) { 
      echo $row['story'] . '<br/>'; 
     } 
     return $display; 
    }  
    }  
?> 

И это то, что я делаю в моем другом PHP файле:

<?php 
    require_once('MadLibs.php'); 
    // Instantiating instance of MadLibs() 
    $foo = new MadLibs(); 

    // Playing around to see ensure getters/setters were correct 
    $foo->setNoun('Bob'); 
    $foo->setVerb('jumps'); 
    $foo->setAdverb('quietly'); 
    $foo->setAdjective('ugly'); 
    $foo->setStory("The " . $foo->getNoun() . " always " . $foo->getVerb() . " at the " 
. $foo->getAdjective() . " strangers " . $foo->getAdverb() . ".");  
    echo $foo->getNoun(); 
    echo '<br />'; 
    echo $foo->getVerb(); 
    echo '<br />'; 
    echo $foo->getAdverb(); 
    echo '<br />'; 
    echo $foo->getAdjective(); 
    echo '<br />'; 
    echo $foo->getStory(); 

    $foo->insertStoryToDatabase(); 

    $foo->displayAllStories();  
?>  

Я уверен, что это что-то простое, но для жизни меня я могу» Не знаю, что я делаю неправильно.

Ответы на любые вопросы приветствуются!

+0

' эхо $ строки [' истории ']. '
'; 'Сохраните это в переменной, а затем верните его. – aldrin27

ответ

0

Вы пытаетесь отобразить неправильную переменную в функции displayAllStories(). 'Эхо $ строки [' история '] should be change to $ строки [' fullStory ']; `или изменить ваш запрос

SELECT fullStory as story, createdDate FROM storyTime ORDER BY createdDate DESC 
+0

Спасибо @Senanayaka, я полностью встретился после того, как прочитал это! – kmancusi

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