Wer findet den Fehler?

08/29/2012 17:13 DevelopmentFOE#1
Quote:
Parse error: syntax error, unexpected '{' in /users/***/www/inc/comments_viewer.php on line 11
Comments_viewer.php:

PHP Code:
<?php

        
include('db/db_index.php'); 
        
            
$selector                          =  "SELECT * FROM comments WHERE id = '$sql_row->id'";
            
$select_query                   =  mysql_query($selector); 
            
        
            while(
$row mysql_fetch_object($select_query)) {
                echo 
"$row->name";
            }
            
?>
08/29/2012 20:44 dowhile#2
Geht der Code noch weiter? In Zeile 11 gibt es kein '{'.
08/29/2012 21:17 -b4ck#3
Quote:
Originally Posted by dowhile View Post
Geht der Code noch weiter? In Zeile 11 gibt es kein '{'.
Code:
1 <?php
2
3        include('db/db_index.php'); 
4        
5            $selector                          =  "SELECT * FROM comments WHERE id = '$sql_row->id'";
6            $select_query                   =  mysql_query($selector); 
7            
8       
9            while($row = mysql_fetch_object($select_query)) {
10                echo "$row->name";
11            }
12            
13?>

Code:
$selector                          =  "SELECT * FROM comments WHERE id = '$sql_row->id'";
was soll das werden?
08/30/2012 00:04 Shadow992#4
Quote:
Originally Posted by DevelopmentFOE View Post
Comments_viewer.php:

PHP Code:
<?php

        
include('db/db_index.php'); 
        
            
$selector                          =  "SELECT * FROM comments WHERE id = '$sql_row->id'";
            
$select_query                   =  mysql_query($selector); 
            
        
            while(
$row mysql_fetch_object($select_query)) {
                echo 
"$row->name";
            }
            
?>
Mit Zeile 11 müsste dein include in Zeile 11 gemeint sein, also schau da mal rein.
Ansonsten ist zwar Zeile 5 etwas unlogisch, sollte es keine globale Variable geben, die "$sql_row" heißt, aber müsste gehen, da PHP ja nicht über nicht definierte Variablen meckert (bzw. Errors wirft), sondern versucht sie selbstständig irgendwie auszubessern.

Edit:
Ich weiß nicht ob in PHP so etwas möglich ist:

"while($row = mysql_fetch_object($select_query))"

In C/C++ gehts, aber ich glaube PHP hat damit Probleme, packs mal in die While-Schleife rein und speichere das Ergebnis in einer Variable, sollte der Fehler nicht in der Include-Datei liegen.
08/30/2012 03:50 dowhile#5
Shadow: Das ist in PHP genau gleich wie in C++, ergo funktioniert das.
08/30/2012 20:59 kissein#6
mysql_fetch_object liefert bereits ein object mit der string-method zurück also kann
PHP Code:
echo "$row->name"
zu
PHP Code:
echo $row->name
08/31/2012 10:20 WurstWare#7
Quote:
Originally Posted by -b4ck View Post
Code:
1 <?php
2
3        include('db/db_index.php'); 
4        
5            $selector                          =  "SELECT * FROM comments WHERE id = '$sql_row->id'";
6            $select_query                   =  mysql_query($selector); 
7            
8       
9            while($row = mysql_fetch_object($select_query)) {
10                echo "$row->name";
11            }
12            
13?>

Code:
$selector                          =  "SELECT * FROM comments WHERE id = '$sql_row->id'";
was soll das werden?
$sql_row ist aus der Datei wo die Datei includiert wird.

So trotzdem allen:

Quote:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /users/testsrv/www/inc/comments_viewer.php on line 9
PHP Code:
<?php

        
include('db/db_index.php'); 
        
            
$selector                          =  "SELECT * FROM comments WHERE id = '$row->id'";
            
$select_query                   =  mysql_query($selector); 
            
        
            while(
$row mysql_fetch_object($select_query)) {
                echo 
$row->name;  
            }
            
?>
08/31/2012 13:03 Mikesch01#8
PHP Code:
<?php

        
include('db/db_index.php'); 
        
            
$selector =  "SELECT * FROM comments WHERE id = '".$row->id."'"//PHP-Variablen sollten im String verkettet werden.
            
$select_query =  mysql_query($selector); 
            
        
            while(
$row mysql_fetch_object($select_query)) {
                echo 
$row->name;  
            }
            
?>
08/31/2012 13:19 WurstWare#9
Quote:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /users/testsrv/www/inc/comments_viewer.php on line 9
:/
08/31/2012 15:23 kissein#10
ist doch logisch oder nicht ? :) Mikesch01 hat da leider einen Fehler eingebaut

In Zeile 5 wird mit einer mysql resource versucht ein sql query zu erstellen, und in Zeile 9
wird erst diese mysql resource erstellt.

d.h.

$row->id wird im sql statement so nicht funktionieren können weil automatisch "null"
08/31/2012 17:08 dowhile#11
Die Meldung besagt, dass du der Methode mysql_fetch_object() keine MySQL-Resource übergeben hast. Wenn du dir auf php.net die Doku zu mysql_query() anschaust (denn deren Rückgabewert verwendest du als Parameter für mysql_fetch_object()), siehst du, dass mysql_query() entweder eine MySQL-Resource zurückgibt, wenn das Query ausgeführt werden konnte, oder false, wenn nicht.

Liegt ein Fehler vor, kannst du mit mysql_errno() die Nummer des Fehlers und mit mysql_error() die Fehlermeldung bekommen.

Was du also tun musst:
- Prüfe, ob der Rückgabewert von mysql_query() ungleich false ist
- Wenn ja, hole die Datensätze
- Wenn nein, gebe dir die Fehlermeldung aus
08/31/2012 21:37 Mikesch01#12
Quote:
Originally Posted by kissein View Post
ist doch logisch oder nicht ? :) Mikesch01 hat da leider einen Fehler eingebaut
Naja fast, ich bin davon ausgegegangen, dass er im Script vorher diese schon bereits durch eine andere MySQL-Resource definiert hat. Scheint wohl aber nicht so^^

Aber du hast definitiv Recht, da dies nun nochmals den Resource-Fehler ausgespuckt hat.
09/02/2012 00:07 WurstWare#13
Unknown column 'id' in 'where clause'