[PHP]Fehlersuche

03/17/2015 14:23 DasPrinzip.#1
PHP Code:
$query "SELECT * FROM exc_pic ORDER BY RAND() LIMIT 10";
        
$result mysql_query($query);
        
        
$lines = array();
        while(
$row mysql_fetch_array($result)) {
        
$lines[] = array('picname' => $row['picname'], 'url' => $row['url'], 'headline' => $row['headline'], 'description' => $row['description']);
        }

     echo
        
'<li><p><a href="'.$lines['url'].' "><img src="/werbebilder/'.$lines['picname'].'" alt="'.$lines['picname'].'" /></a></p>
        <p>'
.$lines['headline'].'</p>
        <p>'
.$lines['description'].'</p>
        <p><a href="'
.$lines['url'].'">'.$lines['url'].'</a></p>
        </li>'

Ich bekomme nichts ausgegeben :( findet jemand einen Fehler? Ich starre schon 30 min auf diesen Teil aber finde nichts.
03/17/2015 14:44 Dingtax#2
Also soweit ich das sehen kann, hast du keine Syntax Fehler aber die Funktionen, die du verwendest, sind in der aktuellen Version von PHP als veraltet markiert, du solltest dir die Alternativen einmal anschauen ;)
  1. [Only registered and activated users can see links. Click Here To Register...]
  2. [Only registered and activated users can see links. Click Here To Register...]
03/17/2015 14:48 NotEnoughForYou#3
Es kann ja auch nicht wirklich etwas ausgegeben werden.

$lines ist ein numerisches array.
In diesem array sind wiederum assoziative arrays.

Du musst $lines ebenfalls mit einer Schleife durchlaufen. Woher soll man denn sonst wissen, was $lines['url'] sein soll? ($lines[0]['url'] wäre zb. korrekt)

PHP Code:
foreach($lines as $l) {
    echo 
$l['url'];

Allerdings sollte dir das Script einen Fehler werfen. Hast du error reporting aktiviert?
03/17/2015 15:33 DasPrinzip.#4
Quote:
Originally Posted by NotEnoughForYou View Post
Es kann ja auch nicht wirklich etwas ausgegeben werden.

$lines ist ein numerisches array.
In diesem array sind wiederum assoziative arrays.

Du musst $lines ebenfalls mit einer Schleife durchlaufen. Woher soll man denn sonst wissen, was $lines['url'] sein soll? ($lines[0]['url'] wäre zb. korrekt)

PHP Code:
foreach($lines as $l) {
    echo 
$l['url'];

Allerdings sollte dir das Script einen Fehler werfen. Hast du error reporting aktiviert?
Danke, das war das Problem =)
Nein war deaktiviert :rolleyes:
03/17/2015 16:45 dowhile#5
Anstatt 30 Minuten den Fehler nur durch drauf schauen finden zu wollen, ist es vielleicht besser, etwas mit dem Code zu spielen, um den Fehler einzugrenzen.
Wird ein einfaches "echo '123';" ausgeben? -> Script wird wirklich ausgeführt
Wird meine Schleife ausgeführt? -> Es gibt auch Daten, MySQL Teil geht
Haben meine Variablen die Struktur, die ich möchte (mit var_dump() kannst du dir die Struktur von Arrays und Objekten anschauen)? -> Variablen stimmen
Usw. dann findest du den Fehler viel schneller. Wenn du dir jeden Schritt ausgeben lässt findest du den Fehler (fast) immer.
03/18/2015 14:05 snow#6
#closed (on request)