automatischer Seitenwechsel bei 25 Einträgen

wie oft noch?
bau endlich überall dein mysql_error ein
das hab ich dir im anderen poste auch schon geschrieben *G*

PHP:
$sql:
SELECT id, name, original_name, jahr, version, bild, cat, info, actors, fsk, quelle, kommentar, fsk2, version2 FROM dvd_uebersicht WHERE name LINKE'%%%' ORDER BY name LIMIT (-1)*25,25

$count:
SELECT COUNT(*) FROM dvd_uebersicht WHERE name LIKE '%%%' ORDER BY NAME

es gibt kein WHERE name LINKE'%%%'
das müsste WHERE name LIKE '%'
heißen und wenn du das machst dann isses eh unnötig da reicht dir das ORDER BY name schon vollkommen aus
 
SonicBe@m hat gesagt.:
es gibt kein WHERE name LINKE'%%%'
das müsste WHERE name LIKE '%'
heißen und wenn du das machst dann isses eh unnötig da reicht dir das ORDER BY name schon vollkommen aus
Das stimmt nicht ganz. Das mit den 3 % ist schon ok, denn er setzt das erste und das letzte % statisch und das mittlere kommt nur, wenn kein Suchbegriff eingegeben wurde. Ansonsten wird es durch den Begriff ersetzt, also z. B. "%von Bern%", oder ähnlich!
Und das n in "LINKE" war sicher nur ein Schreibfehler.
Aber mit den mysql_error hast Du natürlich recht.

redlama
 
Es ist dennoch vollkommen unperformant einen LIKE zu benutzen der alles matchen soll und dann auf einen count(*) einen ORDER BY zu legen wo es sowieso vollkommen egal ist.
Bitte schreibt nicht das es ok ist denn es ist nicht ok! Die leute sollen performante code schreiben und nicht irrgend nen der dann irrgend wie schon funktionieren wird ^^
ganz zu schweigen davon das es noch ein anderer irrgend wann auch noch anfassen muss ^^

die realisieren von solch einer Blätterfunktion ist denkbar einfach aber nicht wenn dann auch noch 100 abfragen an die mysql gestartet werden die Quark sind

dann definiere lieber eine variable
PHP:
$ifLike = $name != "": "WHERE name LIKE '%$name%' ORDER BY name": "";
das ding hauste dann in deinen query
PHP:
$sql="SELECT id, name, original_name, jahr, version, bild, cat, info, actors, fsk, quelle, kommentar, fsk2, version2 FROM dvd_uebersicht $ifLike LIMIT (-1)*25,25";
ein LIMIT (-1) * 25 ist ebenfalls quark es gibt keinen Datensatz -1 und erstrecht keinen -25
dann wie oben einfach eine Variable definieren die dies dynamisch baut aber nicht so!
Ihr braucht euch nicht wundern das das Internet so unsicher ist wenn man auf solch einer Basis programmiert!

Hoffentlich nehmt ihr das nun nicht als Angriff an aber ich möchte das wenn hier jemanden Hilfe bekommt er auch richtige Hilfe bekommt welche auch durchdacht und korrekt ist und nicht irrgend ne Schrottlösung die zwar funktioniert aber vollkommen überkompliziert geschrieben wurde
 
Zuletzt bearbeitet:
also das mit dem LINKE war wirklich ein Tippfehler, der aber nur hier ist, im Quelltext isses richtig...
ich hab mein $iflike (anders genannt) eingesetzt und auch den mysql_error (den ich jetzt wahrscheinlich in jede zukünftige Abfrage baue) eingebaut und es kommt folgender Fehler:

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 '(-1)*25,25' at line 1

Soweit klar, er versucht (-1)*25 zu rechnen.

aber mal von grund auf:
es gibt doch sicherlich eine total einfache lösung für das ganze verfahren.
wäre denn das, was Ben Ben zuletzt gepostet hat gut zu gebrauchen?!
 
uwee hat gesagt.:
d.h. ich müsste praktisch NUR $sql ändern und das ganze dann unter meine ganz normale select-abfrage schreiben?!

Du musst gar nix ändern... es sei denn du willst diene navigation über Seitenzahlen statt einzeln nach links / rechts machen.

Ansonsnt einfach die Funktion mit der Query ($sql) aufrufen, und die Daten aus dem Rückgabearray entsprechend verwerten...
 
ich hab dein beispiel jetzt mal aufgenommen und übernommen!

bekomme nen Fehler in der zeile:
PHP:
$pquery['query'] = $query.'LIMIT'.(($page-1)*$dpp).','.$dpp);

syntax error, unexpected ')'

aber es gehen zwei klammern auf und zwei zu...
 
Zuletzt bearbeitet:
Jo die Klammer vor dem ; ist zu viel...

Die Funktion war ursprünglich nicht so gedacht das sie ein Array zurückliefert, da sie aus einer Klasse stammt.... hab ich beim Umtippen auf die Schnelle vertippt.

Ablauf beim Aufruf wäre dann:

PHP:
$sql = "SELECT...";
$sql = pquery($sql,1,10);

$sth = mysql_query($sql['query']);

//Schlefie mit mysql_fetch_... auf $sth,
//verwerten der anderen Daten im Array $sql...
 
hier:
PHP:
$sth=mysql_query($sql['query']);
Fehler:
syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expectng T_STRING or T_VARIABLE or T_NUM_STRING...

sorry, wenn ich hier für euch wahrschienlich einfache fragen stelle, aber ich will das ja auch lernen
 
Sacht mal.. eure COUNT() Function fand ich ja fazinierend =)

Nur bei mir hat er ständig RESOURCE ID #10 angezeigt..

Wird denn bei euch wirklich eine Zahl ausgegeben!?

Hatte es so :
PHP:
$admin_meldung = mysql_query("SELECT count(*) FROM wgi_adminmeldungen WHERE noticed = 0");

und hab es jez so gelöst! (vielleicht ist das auch noch eine Fehlerquelle)

PHP:
		$result = mysql_query("SELECT COUNT(*) FROM wgi_adminmeldungen WHERE noticed = 0") or die("Error: " . mysql_error());
		while ($row = mysql_fetch_array($result, MYSQL_NUM))
			{	
			$admin_meldung = $row[0];	
			}

Bei mir funktionert es zumindest =)

( Die funktion des scriptes bei mir ist, das wenn Meldungen als nicht NOTICED sind, kommt ein PoPup mit ausfürhlicher Fehler Warn und Hinweisen Liste)
 
Zurück