Antworten auf deine Fragen:
Neues Thema erstellen

Suma & Blätterfunktion

Ben78

Nicht mehr ganz neu hier

Hi Leutz,

ich möchte meiner Suma eine Blätterfunktion hinzufügen. Dazu habe ich ein Skript mit zwei Querys. Beide Skripts, also Suma und Blätterfunktion habe ich bereits vereint. Für das erste, schaut es schonmal ganz gut aus. Die erste Ergebnisseite wird mir - bis auf die Anzahl der Suchergebnisse - wie gewünscht angezeigt. Als Anzahl in dem Feld Ihre Sucheingabe ergab 5271 Ergebnisse erhalte die Anzahl aller Datensätze meiner DB-Tabelle und nicht die Anzahl der rausgefilterten Suchergebnisse, die mir jedoch als erstes angezeigt werden. D. h. also, dass die Suche funzlt.

Das nächste Kernproblem was ich habe, sind die Sitelinks der Blätterfunktion. Sie werden mir zwar einwandfrei grafisch angezeigt, aber führen nach jedem Klick zu folgendem Ergebnis:

Ungültige Abfrage: 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 'LIMIT 30,15' at line 1

Woran liegt das. Ich hocke schon wieder seit drei Tagen und Nächten vor dem Compi und komme nicht mehr weiter:motz::':)motz:. Das aktuelle Ergebnis ist bis jetzt das beste und bereits der vierte Anlauf gewesen, das zusammengefügte Skript zum laufen zu bringen. Ich bin immer noch ein Anfänger und deswegen auf Eure Hilfe angewiesen, auch wenn ich es dieses Mal alleine schaffen wollte.

Ich finde diesen blöden Syntaxfehler in meiner Query bie LIMIT einfach nicht und bin sogar viel mehr der Meinung, dass beide Queries so passen wie sie hier stehen oder. Was ist denn da bitte falsch? Immerhin wird mir die aller erste Ergebnisseite fast perfekt angezeigt. Bis auf weiter oben beschriebenes mit den Zahlen.

Hier mal meine beiden Queries im Skript:
1. Query:

PHP:
$pfad = $_SERVER['PHP_SELF'];    // aktuellen Dateipfad ermitteln, wichtig fuer die Links der Seitennavigation 

$query = mysql_query("SELECT * FROM beauty"); // DB Abfragee 
echo "$query";

// ------------------------------------------------------------------------ 

$datensaetze_pro_seite = "15";      // Anzahl der Datensaetze die Pro Seite angezeigt werden sollen 
$p = "3";                                // Anzahl der Links die in der Seitenavigation ausgegeben werden 

$total = mysql_num_rows($query);                      // liefert die Anzahl der Datensaetze der Abfrage
$seiten = ceil($total / $datensaetze_pro_seite);     // Berechnet die Seitenanzahl insgesamt

2. Query:
PHP:
$suchwort = (empty($suchwort) AND isset($_GET['suche'])) ? trim($_GET['suche']) : ''; 
$marke = (empty($marke) AND isset($_GET['hersteller'])) ? trim($_GET['hersteller']) : '';

// Vars
$suchwort = (isset($_POST['suche']) AND $_POST['suche'] != 'Produktfinder') ? trim($_POST['suche']) : '';
$marke = isset($_POST['hersteller']) ? trim($_POST['hersteller']) : '';



// Querey
$abfrage = "SELECT * FROM beauty WHERE";

if ($suchwort) $abfrage .= " MATCH (Bezeichnung, Beschreibung, Marke)  AGAINST('" . mysql_real_escape_string($suchwort) . "')";

if ($marke) 
{
if ($suchwort) $abfrage .= "AND";
$abfrage .= " Marke LIKE '%" . mysql_real_escape_string($marke) . "%'";
}

$abfrage .= ' LIMIT ' . intval($start) . ',' . intval($datensaetze_pro_seite);



// if sucheingabe
$db_erg = mysql_query( $abfrage );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}

echo "$abfrage";

Ich bin jedem für Seine Hilfe sehr Dankbar...VERY BIG THX im Voraus an alle!!!
 

Chriss1987

me.drinkCoffee();

AW: Suma & Blätterfunktion

Hi,

gib doch mal $abfrage per echo aus und sag uns mal, was dort drin steht (vor dem query)!

So fällt mir beim ersten überfliegen nichts besonderes auf...

Schöne Grüße aus dem Sauerland!
Chriss
 

Ben78

Nicht mehr ganz neu hier

AW: Suma & Blätterfunktion

Das ist ja das verwirrende für mich. Die Query scheint in Ordnung zu sein.
PHP:
echo $ abfrage;
...spuckt folgendes aus: (aber nur auf der ersten Ergebnisseite)

SELECT * FROM test WHERE MATCH (Bezeichnung, Beschreibung, Marke) AGAINST('schuhe')AND Marke LIKE '%adidas%' LIMIT 0,15

Sobald ich einen Sitelink anklicke, erhalte ich nur das Hier:
Resource id #3Ungültige Abfrage: 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 'LIMIT 30,15' at line 1

PHP:
echo $ abfrage;
...wird mir hier gar nicht mehr angeizeigt.

Dafür zeigt mir aber...
PHP:
echo $ query;
folgendes an: Resource id #3
 
Zuletzt bearbeitet:

Chriss1987

me.drinkCoffee();

AW: Suma & Blätterfunktion

...
PHP:
echo $ abfrage;
...wird mir hier gar nicht mehr angeizeigt.
...

Hi,

ist ja auch logisch, du sagst ja deinem Script, dass es nach der MySQL-Fehlermeldung die weitere Ausführung abbrechen soll (die()), desswegen sollst du den Query-String auch VOR dem Query ausgeben...

Schöne Grüße aus dem Sauerland!
Chriss
 

Ben78

Nicht mehr ganz neu hier

AW: Suma & Blätterfunktion

THX @ Chriss1987

AHAAAA...ich glaube ich habe Dich verstanden. Mein...
PHP:
echo $abfrage;
...war an der falschen Stelle im Skript.

Jetzt habe ich es glaube ich richtig gemacht. Ich erhalte jetzt folgende Ausgabe:
SELECT * FROM test WHERE LIMIT 60,15Ungültige Abfrage: 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 'LIMIT 60,15' at line 1

Aber da fehlen jetzt die Suchbegriffe in der Ausgabe. Also immer dann, sobald ein Sitelink meiner Blätterfunktion angeklickt wurde. Wie kann man das beheben?
 
Zuletzt bearbeitet:

Chriss1987

me.drinkCoffee();

AW: Suma & Blätterfunktion

Hi,

wie sieht denn der Link aus, bzw. was übergibst du wie?
Mal abgesehen davon, überschreibst du dir die GET-Werte:
PHP:
$suchwort = (empty($suchwort) AND isset($_GET['suche'])) ? trim($_GET['suche']) : ''; 
$marke = (empty($marke) AND isset($_GET['hersteller'])) ? trim($_GET['hersteller']) : '';

// Vars
$suchwort = (isset($_POST['suche']) AND $_POST['suche'] != 'Produktfinder') ? trim($_POST['suche']) : '';
$marke = isset($_POST['hersteller']) ? trim($_POST['hersteller']) : '';
mach da mal nen
PHP:
$suchwort = (empty($suchwort) AND isset($_GET['suche'])) ? trim($_GET['suche']) : ''; 
$marke = (empty($marke) AND isset($_GET['hersteller'])) ? trim($_GET['hersteller']) : '';

// Vars
$suchwort = (isset($_POST['suche']) AND $_POST['suche'] != 'Produktfinder') ? trim($_POST['suche']) : $suchwort;
$marke = isset($_POST['hersteller']) ? trim($_POST['hersteller']) : $marke;
raus.

Schöne Grüße aus dem Sauerland!
Chriss
 

Ben78

Nicht mehr ganz neu hier

AW: Suma & Blätterfunktion

...ergibt keine Veränderung.

Aber ich glaube das Prinzip verstanden zu haben. Ich muss irgendwie dafür sorgen, dass die Werte für die beiden Variablen erhalten bleiben.

Antwort auf Deine Frage:

ich übergebe die Sucheingaben über POST. Ich hoffe Deine Frage richtig verstanden zu haben?!?
 

Chriss1987

me.drinkCoffee();

AW: Suma & Blätterfunktion

...ergibt keine Veränderung.

Aber ich glaube das Prinzip verstanden zu haben. Ich muss irgendwie dafür sorgen, dass die Werte für die beiden Variablen erhalten bleiben.

Antwort auf Deine Frage:

ich übergebe die Sucheingaben über POST. Ich hoffe Deine Frage richtig verstanden zu haben?!?

Hi,

ok, und wenn du die nächste Seite aufrufst? Wie sieht der Link zum Blättern aus?

Schöne Grüße aus dem Sauerland!
Chriss
 

Ben78

Nicht mehr ganz neu hier

AW: Suma & Blätterfunktion

Erstmal VERY BIG THX @Chriss1987;)

[EDIT: 15:15 Uhr]
Die Sitelinks zum Blättern sehe ich erst gar nicht mehr, weil ich nur den Syntax-Error als ungültige Abfrage zurück bekomme. Also nachdem ich von der Seite der ersten Suchergebnisse komme, weil ich mir jetzt z. B. Seite 4 anschauen will, bekomme ich nur eine weiße Seite mit der oben stehenden Fehlermeldung. Also dem Syntax-Error
 
Zuletzt bearbeitet:

lachender_engel

Aktives Mitglied

AW: Suma & Blätterfunktion

Ich erhalte jetzt folgende Ausgabe:
SELECT * FROM test WHERE LIMIT 60,15Ungültige Abfrage: 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 'LIMIT 60,15' at line 1

Na das kann auch nicht funktionieren.

Du musst schreiben
Code:
[I][B]SELECT * FROM test LIMIT 60,15[/B][/I]
Das WHERE ist falsch am Platz.

Wie ich Dir in Deinem letzten Beitrag schon geschrieben habe: Test die Querys erst über phpMyAdmin aus bis sie genau das heraus geben, was Du benötigst, dann entwickle Deinen Code.

Was das Blättern angeht, so musst Du mit dem Link immer den Start-Wert und den Step übergeben. Den baust Du dann so ein
PHP:
$sql="SELECT * FROM test LIMIT $from,$step"
und gut ist. (alles vereinfacht darestellt!)

Ok?!
 

Chriss1987

me.drinkCoffee();

AW: Suma & Blätterfunktion

Na das kann auch nicht funktionieren.
Du musst schreiben
Code:
[I][B]SELECT * FROM test LIMIT 60,15[/B][/I]
Das WHERE ist falsch am Platz.
.
.
.

Hi,
ich glaube, du verstehst da was falsch, er wollte nicht den Query, den er oben raus bekommen hat ausführen, sondern hinter dem WHERE sollten noch die Bedingungen zum Suchwort kommen, wenn ich das richtig verstanden habe, oder? Oder habe ich was falsch verstanden, dann hast du natürlich mit dem WHERE Recht ;)

@Ben78: aber du siehst den Link doch auf der 1. Seite oder nicht? Bzw du siehst den doch in der Adresszeile deines Browsers, dort, wo die weiße Seite kommt? Oder war es nicht so, dass du die Erste Seite angezeigt bekommst?

Schöne Grüße aus dem Sauerland!
Chriss
 

lachender_engel

Aktives Mitglied

AW: Suma & Blätterfunktion

er wollte nicht den Query, den er oben raus bekommen hat ausführen, sondern hinter dem WHERE sollten noch die Bedingungen zum Suchwort kommen, wenn ich das richtig verstanden habe, oder? Oder habe ich was falsch verstanden, dann hast du natürlich mit dem WHERE Recht

Das mit dem WHERE und wie der/die Syntax richtig lautet hatten wir schon in einem anderen Thread ausführlich diskutiert.
 

Chriss1987

me.drinkCoffee();

AW: Suma & Blätterfunktion

Das mit dem WHERE und wie der/die Syntax richtig lautet hatten wir schon in einem anderen Thread ausführlich diskutiert.

Hi,

das ist schon klar, dass nach dem WHERE noch was folgen MUSS, was ich meine ist, dass der Query nicht korrekt vom Programm zusammengebaut wird! Es fehlt dieser Teil
PHP:
...
// Querey
$abfrage = "SELECT * FROM beauty WHERE";

if ($suchwort) $abfrage .= " MATCH (Bezeichnung, Beschreibung, Marke)  AGAINST('" . mysql_real_escape_string($suchwort) . "')";

if ($marke) 
{
if ($suchwort) $abfrage .= "AND";
$abfrage .= " Marke LIKE '%" . mysql_real_escape_string($marke) . "%'";
}

$abfrage .= ' LIMIT ' . intval($start) . ',' . intval($datensaetze_pro_seite);
...

Und da scheitert es wahrscheinlich an der korrekten Übergabe der Parameter o.ä., sodass kein gültiger Query zusammengestellt wird ;)

Schöne Grüße aus dem Sauerland!
Chriss
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben