News Script...

11/12/2014 21:28 Dealyise#1
Heyho, ich versuche vergebens ein Newsscript hinzukriegen, jedoch werden die News nicht gelistet.

Klasse für News:

Und hier soll es aufgelistet werden:

Wo ist da genau der Fehler? Bin noch relativ neu in der PHP-Szene. Bin mal von Java auf PHP umgestiegen :D
11/12/2014 23:34 mlukac89#2
U must include that php file in file that shows news, because u calling class and there in no that class in second file
11/13/2014 10:31 NotEnoughForYou#3
Wieso rufst du eine statische Funktion wie eine nicht statische Funktion auf? Klappt die Verbindung überhaupt? So wie du es jetzt hast sollte es nämlich nicht klappen, weil du in einer statischen Funktion Variablen aufrufst, die vor der Klasse deklariert wurden. Also solltest du eigentlich Fehler angezeigt bekommen. Lass das static weg, bring die Variablen in die Klasse, zb. über den Konstruktor und ruf dann die Funktion auf wie du sie hast (von weiteren Fehlern mal abgesehen, hab mir den Rest nicht so genau angekuckt, nur das mit dem static und den vars ist mir grad auf die schnelle aufgefallen).
11/13/2014 10:50 Dealyise#4
Quote:
Originally Posted by mlukac89 View Post
U must include that php file in file that shows news, because u calling class and there in no that class in second file
I did, it's still empty
11/13/2014 13:38 kyls#5
Was mir ins Auge springt ist das die Variable $row in deiner Klasse nicht existent ist... :)

PHP Code:
    public static function getNews() {
        
$conn = new mysqli($servername$username$password'tubecareer');
        
// Check connection
        
if ($conn->connect_error) {
            die(
"Connection failed: " $conn->connect_error);
        }
        
$sql 'SELECT * FROM news ORDER BY time';
        
$result $conn->query($sql);
        if (
$result->num_rows 0) {
            
// output data of each row
            
foreach ($row['id'] as $news) {
                echo 
'<div class="panel panel-info"><div class="panel-heading"><h4 class="panel-title">' $news["topic"] . '</h3></div><div class="panel-body">' $news["text"] . '</div></div>';
                
                
                
            }
        } else {
            echo 
'<div class="panel panel-info">No Recent News!</div>';
        }
    } 
11/13/2014 13:41 Menan#6
In der 2. Datei von dir..

Die getNews() Funktion gibt doch schon deine News per ECHO aus..
Beim call musst du dann nicht schreiben:

echo $data->getNews();

sondern ein einfacher Funktionsaufruf reicht, da die ausgabe ja von deiner Funktion erledigt wird.
Sprich:

$data->getNews();

sollte reichen, da deine Funktion ja keine Rückgabe besitzt, welche ausgegeben werden könnte.
11/13/2014 20:33 mlukac89#7
This line is wrong too foreach ($row['id'] as $news) u dont have $row['id'] defined.

try to put this

Code:
if ($result->num_rows > 0) { 
            // output data of each row 
            foreach ($result as $news) { 
                 print_r($news); // if this works then u will have all results from database then u use $news['name_of_field_what_u_need']
                //echo '<div class="panel panel-info"><div class="panel-heading"><h4 class="panel-title">' . $news["topic"] . '</h3></div><div class="panel-body">' . $news["text"] . '</div></div>'; 
                 
                 
                 
            } 
        } else { 
            echo '<div class="panel panel-info">No Recent News!</div>'; 
        }