Einzelnen Beitrag anzeigen
  #1  
Alt 13.07.2010, 14:38:27
Klarissa Klarissa ist offline
Anfänger
 
Registriert seit: Jul 2010
Alter: 67
Beiträge: 11
Select Syntax fehlerhaft

Hallo, Selfphp-Gemeinde,

ich kann den Fehler nicht finden. Die Abfrage holt alle Ergebnisse in den Browser wie gewünscht, wenn die Limit Funktion nicht enthalten ist. Ich weiß einfach nicht, wie die Syntax lauten muß, und mit den mysql / php manualen verstehe ich es leider auch nicht.

Datenbankverbindung steht; anbei das generelle Such-Statement:
PHP-Code:
// grundlegendes Select Statement
    
    
$proseite =2;
    
$start $_GET['page'] * $proseite-$proseite;

    
$select 'Select distinct ID, Code, Text_gr, Title_gr, City_gr, Icon1, Icon2, Icon3, Icon4, Icon5' ;
    
$from ' from objects';
    
$where ' where 1=1';
    
$rand ' ORDER by rand()';
    
$lim =  "LIMIT($start, $proseite)"
nachfolgend das grundlegende Select Statement in der Ausführung:

PHP-Code:

$sql 
= ($select $from $where $rand);
$result mysql_query($sql);
$number mysql_num_rows($result);

echo
" Anzahl Objekte: $number <br />"// Ausgabe korrekt, ok

$start $_GET['page']* $proseite-$proseite;  // Ausgabe korrekt, alles ok
echo" START: $start <br />";

$seiten ceil($number/$proseite);

echo 
"Seitenanzahl: $seiten <br />";  // Ausgage korrekt, alles richtig


// hier nun die Query MIT der Variablen $lim, damit die Paginierung durchgeführt werden kann
 
    
$sql = ($select $from $where $rand $lim); //meint: suchen inkl. Kriterien, plus Angabe, wieviele Ergebnisse pro Seite gezeigt werden sollen

    
echo "<br />Die Abfrage lautet:  $sql<br />"//Query wird ausgeben
    
echo "Das Limit soll sein: $lim <br /><br />";//Das Limit wird angezeigt
    
$result = @mysql_query($sql);        //Die Query wird nochmals gezeigt mit 
    
echo mysql_error();                       //echo mysql_error()
    
echo"<br />";
var_dump($sql$result );
    echo
" <br /><br /> Result: $sql <br />";


 
//hier nochmal nachdenken:
 
$ende $start $proseite;
    if (
$ende $number) { $ende $number; }
    
    echo 
"<br />Seitenende nach <u>$ende</> Objekten <br />"// die Ausgabe ist richtig 
Die Fehlermeldung im Browser ist wie folgt:

HTML-Code:
Anzahl Objekte: 8
START: 0
Seitenanzahl: 4

Die Abfrage lautet: Select distinct ID, Code, Text_gr, Title_gr, City_gr, Icon1, Icon2, Icon3, Icon4, Icon5 from objects where 1=1 ORDER by rand()LIMIT(0, 2)
Das Limit soll sein: LIMIT(0, 2)

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(0, 2)' at line 1
string(137) "Select distinct ID, Code, Text_gr, Title_gr, City_gr, Icon1, Icon2, Icon3, Icon4, Icon5 from objects where 1=1 ORDER by rand()LIMIT(0, 2)" bool(false)

Result: Select distinct ID, Code, Text_gr, Title_gr, City_gr, Icon1, Icon2, Icon3, Icon4, Icon5 from objects where 1=1 ORDER by rand()LIMIT(0, 2)

Seitenende nach 2 Objekten 
Die Abfrage bringt alle gewünschten Ergebnisse, wenn kein Limit gesetzt wird.

Ich würde mich sehr freuen, wenn einer im Forum mir auf die Sprünge helfen könnte (ich versuche nun schon seid einer Woche, den Fehler zu beheben - wahrscheinlich wird es etwas absolut Dummes sein - ich sehe es aber leider nicht).

Vielen Dank schon jetzt einmal - ich hoffe auch, daß ich hier richtig gepostet habe
und LG
Klarissa
Mit Zitat antworten