CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
13.07.2010, 14:38:27
|
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
|
13.07.2010, 15:52:35
|
Junior Member
|
|
Registriert seit: May 2003
Ort: Trier
Alter: 47
Beiträge: 310
|
|
AW: Select Syntax fehlerhaft
Ändere mal dieses
Zitat:
Zitat von Klarissa
...
PHP-Code:
.
.
.
$lim = "LIMIT($start, $proseite)";
...
|
gegen dieses
PHP-Code:
.
.
.
$lim = "LIMIT ".$start.", ".$proseite."";
Also, LIMIT wird ohne Klammern verwendet.
Kai aka Knight1
|
13.07.2010, 15:52:49
|
|
Anfänger
|
|
Registriert seit: Jul 2006
Beiträge: 29
|
|
AW: Select Syntax fehlerhaft
Spendier' der Abfrage noch ein Leerzeichen.
[edit] Oh, das Leerzeichen vor LIMIT scheint gar nicht notwendig zu sein. Besser ist es trotzdem, wenn anstelle einer MySQL-Funktion wie RAND() mal ein Spaltenname ohne Backticks an dieser Stelle steht. Naja, knight1 hat dich ja schon auf die Klammern hingewiesen.
|
13.07.2010, 16:23:31
|
Anfänger
|
|
Registriert seit: Jul 2010
Alter: 67
Beiträge: 11
|
|
AW: Select Syntax fehlerhaft
Knight1,
DANKE!!!!! Das war es!
Nun komme ich endlich weiter!
Nochmals ein riesiges Dankeschön
Klarissa
|
13.07.2010, 16:28:09
|
Anfänger
|
|
Registriert seit: Jul 2010
Alter: 67
Beiträge: 11
|
|
AW: Select Syntax fehlerhaft
asipak4you!
Danke auch für Deine Antwort, - und überhaupt,
vielen Dank an alle, die
1. geantwortet haben,
2. den Threat nicht (wegen Dummheit der Frage) irgendwohin verschoben haben!! (das kann einem passieren, ich spreche aus Erfahrung, und habe mich daraufhin 19 Tage lang nicht mehr getraut, die Frage nochmals im www zu stellen)
Deswegen allen nochmals ein großes Dankeschön!
Eure Klarissa
PS. Wie erkäre ich das Thema als erledigt?
|
13.07.2010, 16:51:46
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: Select Syntax fehlerhaft
hallo Klarissa,
Zitat:
Zitat von Klarissa
2. den Threat nicht (wegen Dummheit der Frage) irgendwohin verschoben haben!! (das kann einem passieren, ich spreche aus Erfahrung, und habe mich daraufhin 19 Tage lang nicht mehr getraut, die Frage nochmals im www zu stellen)
|
threads werden (bei uns) i.a. nur verschoben, um die thematische gliederung des forums zu pflegen. schade, dass du diese erfahrung gemacht hast, denn deine frage war sehr vorbildlich aufgebaut:
- das problem wurde ausführlich beschrieben
- das betreffende script wurde gezeigt
- die (vollständige) fehlermeldung wurde nicht verheimlicht
- die code-Tags wurden verwendet
das ganze in gutem deutsch; rechtschreibung, grammatik, ausdruck 1a - ich wünschte, das würde viel häufiger so laufen .-)
Zitat:
Zitat von Klarissa
Wie erkäre ich das Thema als erledigt?
|
das ist nicht notwendig - unser forum ist nicht so überlaufen und daher recht übersichtlich.
cx
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:31:10 Uhr.
|