php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.08.2009, 09:32  
yanfred
Gast
 
Beiträge: n/a
Standard [Erledigt] Sortierung klappt nicht...

Hey ho,

ich nerv euch mal wieder

Folgende Situation: Habe eine Produktübersicht, die die Artikel aus einer Datenbank ausliest. Hierbei soll eine sortierung möglich sein (Alle anzeigen - Pfosten 1 - Pfosten 2 - Latten)

Dafür hab ich den Ansantz:

PHP-Code:
$sql "SELECT ";
$sql.=" ID, bezeichnung, farbe, kategorie, artikelnr, ean, lange, breite FROM
"
.$tabellenname;
$sql.=" WHERE (kategorie LIKE 'Zaunpfosten' OR kategorie LIKE 'Einzellatten') AND bezeichnung LIKE '%".$_GET['sort']."%'"
Wird die Seite normal aufgerufen, ist $sort leer, d.h. alle werden angezeigt.
Sortieren will ich folgendermaßen:

PHP-Code:
echo "<center><b>Filter: </b> <a href=\"./pfosten.php\">Alle anzeigen</a> - ";
echo 
"<a href=\"./pfosten.php?sort=70\">Pfosten 70x70</a> <b>-</b> ";
echo 
"<a href=\"./pfosten.php?sort=90\">Pfosten 90x90 - </a>";
echo 
"<a href=\"./pfosten.php?sort=75\">Einzellatten 75x20</a>"
Hintergrund:
In der DB gibt es unter "bezeichunng" nur 3 verschiedene Werte:

-Z Latte 75 / 20
-Z Pfosten 70 / 70 inkl. Kappe
-Z Pfosten 90 / 90 inkl. Kappe

Daher die gewählten Sortwerte von 70, 75 und 90. Wegen dem LIKE in der SQL Abfrage sollten nun ja nur jene Artikel Erscheinen, die die jeweilige Zahl enthalten.

Wenn ich nun aber nach irgendetwas sortieren will, gibt er mir alles aus den beiden Kategorie aus....

Einen Fehler schließe ich eigentlich aus, da ich bei anderen Produktansichten den selben Aufbau verwende:

PHP-Code:
$sql "SELECT ";
$sql.=" ID, bezeichnung, farbe, kategorie, artikelnr, ean, lange, breite FROM
"
.$tabellenname;
$sql.=" WHERE (kategorie LIKE 'Tore' OR kategorie LIKE 'Türen') AND bezeichnung LIKE '%".$_GET['sort']."%'"
Filtereinstellungen:
PHP-Code:
echo "<center><b>Filter:: </b> <a href=\"./tore.php\">Alle anzeigen</a> - ";
echo 
"<a href=\"./tore.php?sort=gerade\">Tore und T&uuml;ren \"Gerade\"</a> <b>-</b> ";
echo 
"<a href=\"./tore.php?sort=unter\">Tore und T&uuml;ren \"Unterbogen\"</a> <b>-</b> ";
echo 
"<a href=\"./tore.php?sort=ober\">Tore und T&uuml;ren \"Oberbogen\"</a>"
danke im vorraus... wette, es ist eh nur eine Kleinigkeit, die ich übersehen habe

yanfred

Geändert von yanfred (21.08.2009 um 09:48 Uhr).
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.08.2009, 09:36  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

  • Mit Sortierung hat das ja mal gar nichts zu tun, sortieren tust du ja überhaupt nicht
  • Auch SQL-Abfragen kann man lesbarer formatieren
  • Abfragen mit LIKE ohne Platzhalter machen keinen Sinn
  • Wenn in deiner Bezeichnung 'Pfosten' steht und du nach 'Zaunpfosten' abfrägst, kommt natürlich nichts zurück
  • Dito mit 'Latten' und 'Einzellatten'
__________________
Gruss
L
lazydog ist offline  
Alt 21.08.2009, 09:44  
yanfred
Gast
 
Beiträge: n/a
Standard

Hallo,

und schonmal danke für die Antwort.
Zitat:
* Mit Sortierung hat das ja mal gar nichts zu tun, sortieren tust du ja überhaupt nicht
Es ist doch eine Sortierung nach Artikelart, ansonsten halt "Filterung =/

Zitat:
* Auch SQL-Abfragen kann man lesbarer formatieren
Mhhhh, die ist aber ja noch kurz...
Werds aber beherzigen. Danke!

Zitat:
* Abfragen mit LIKE ohne Platzhalter machen keinen Sinn
War auch mehr ein Test, obs daran liegt.

Zitat:
* Wenn in deiner Bezeichnung 'Pfosten' steht und du nach 'Zaunpfosten' abfrägst, kommt natürlich nichts zurück
* Dito mit 'Latten' und 'Einzellatten'
In der Bezeichnung steht z.b.
Code:
Z Pfosten 70 / 70 inkl. Kappe
, abfragen tu ich ja nicht "Zaunpfosten (das ist die Spalte "Kategorie") sondern die Maße, also bei obigen Bsp. "70"

Gruß
 
Alt 21.08.2009, 09:53  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von yanfred Beitrag anzeigen
abfragen tu ich ja nicht "Zaunpfosten (das ist die Spalte "Kategorie")
Und was ist das:
Code:
...
    WHERE (
            kategorie LIKE 'Zaunpfosten' 
        OR 
            kategorie LIKE 'Einzellatten'
    ) 
    AND 
        ...
__________________
Gruss
L
lazydog ist offline  
Alt 21.08.2009, 09:57  
yanfred
Gast
 
Beiträge: n/a
Standard

Zitat:
...
WHERE (
kategorie LIKE 'Zaunpfosten'
OR
kategorie LIKE 'Einzellatten'
)
AND
...
Ist doch richtig Oo

Die Datenbank ist folgendermaßen aufgebaut:

ID | Bezeichnung | kategorie | farbe | ...
1 | Z Pfosten 70 / 70 inkl. Kappe | Zaunpfosten | weiß | ...
2 | Z Pfosten 90 / 90 inkl. Kappe | Zaunpfosten | weiß | ...
3 | Z Latte 75 / 20 | Einzellatten | weiß | ...
4 | Z Pfosten 70 / 70 inkl. Kappe | Zaunpfosten | braun | ...
5 | Z Pfosten 90 / 90 inkl. Kappe | Zaunpfosten | braun | ...
6 | Z Latte 75 / 20 | Einzellatten | braun | ...
 
Alt 21.08.2009, 09:59  
Erfahrener Benutzer
 
Benutzerbild von DER_Brain
 
Registriert seit: 18.04.2005
Beiträge: 1.541
PHP-Kenntnisse:
Fortgeschritten
DER_Brain ist zur Zeit noch ein unbeschriebenes Blatt
Standard

schau dir bitte auch noch was zum thema
XSS, Cross Site Scripting bzw. SQL-Injection an..

is gefährlich.
DER_Brain ist offline  
Alt 21.08.2009, 10:00  
Erfahrener Benutzer
 
Registriert seit: 13.05.2009
Beiträge: 1.166
PHP-Kenntnisse:
Fortgeschritten
dennis81 befindet sich auf einem aufstrebenden Ast
Standard

Willst du nun nach Bezeichnung oder Kategorie filtern?

btw: Suchst du das hier?
MySQL :: MySQL 5.0 Reference Manual :: 3.3.4.7 Pattern Matching
dennis81 ist offline  
Alt 21.08.2009, 10:04  
yanfred
Gast
 
Beiträge: n/a
Standard

Hi @ all


@dennis81
Nach Bezeichnung.

D.h. entweder nur die 90x90er Pfosten, die 70x70er Pfosten oder nur die Latten.

Ja, das suche ich, ist aber auch wie dort beschrieben angewendet:

BSP: SELECT * FROM pet WHERE name LIKE '%w%';
bei mir: [...] LIKE '%".$_GET['sort']."%'";

@ Brain:

Danke für Hinweis. Aber das da müsste doch risikolos so gehen, oder nicht?
habs schon mit nem JS alert und nem iframe getestet, wurde nix angezeigt.
 
Alt 21.08.2009, 10:10  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Lass dir halt mal die evaluierte Abfrage ausgeben und teste sie im PMA
__________________
Gruss
L
lazydog ist offline  
Alt 21.08.2009, 10:32  
yanfred
Gast
 
Beiträge: n/a
Standard

Danke für den Tipp, aber hat sich soeben erledigt... -.-

hab die ganze Zeit an der falschen (alten) datei gearbeitet, aber die neue im Browser die neue aktualisiert... *ausrast*

Dann kanns ja nicht gehen -.-'


PS:

Es lag hieran: $sql.=" WHERE (kategorie LIKE 'Zaunpfosten' OR kategorie LIKE 'Einzellatten') AND bezeichnung LIKE '%".$_GET['sort']."%'";

So steht es nun dort (und Funktioniert)

Und so hatte ich es die ganze Zeit:

PHP-Code:
$sql.=" WHERE kategorie LIKE 'Zaunpfosten' OR kategorie LIKE 'Einzellatten' AND bezeichnung LIKE '%".$_GET['sort']."%'"
(Klammern um OR vergessen...)

Nochmal thx an alle, die ich jetzt hier die letzte Stunde verrückt gemacht hab....
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Sortierung nach bestimmten Variablen "Status", Priorität" usw. Tyrra PHP Tipps 2009 13 28.07.2009 13:32
[Erledigt] teilausgabe eines arrays nach sortierung bananajoe PHP Tipps 2009 2 11.06.2009 00:22
[Erledigt] Inhalt mehrdimesionales array nach Sortierung ausgeben supervision PHP Tipps 2009 7 26.05.2009 21:08
Sortierung von Datensätzen VitaminC PHP Tipps 2009 2 23.04.2009 21:38
sortierung brian johnson Datenbanken 6 05.05.2008 19:53
Sortierung eines Arrays nach ANZAHL Werte simsalabim PHP Tipps 2008 5 06.11.2007 13:44
Sortierung eines Arrays vollkommenegal PHP-Fortgeschrittene 5 14.07.2007 21:12
Sortierung nach punkten und Tordifferenz xXx PHP Tipps 2006 12 08.04.2006 16:28
Dynamische Sortierung phpbeginner PHP Tipps 2006 4 25.02.2006 21:39
Eigene Sortierung bei der SQL-Abfrage Datenbanken 14 09.02.2006 10:53
MySQL abfrage mit berechneter Sortierung Dragon26mFR Datenbanken 5 08.05.2005 14:01
Sortierung der NULL-Inhalte Datenbanken 3 28.09.2004 22:16
[Erledigt] sortierung vom user aus Datenbanken 10 23.09.2004 18:02
Gleiche Abfrage, unterschiedliche sortierung juhuwoorps Datenbanken 2 05.09.2004 00:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php like sortieren, sql sortierung klappt nicht, sql select teilausgabe, sortierung gerade php, where kategorie like, kappe für zaunpfosten

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:47 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum