Select zwischen 1 und 11 unterscheiden

Elementar

Mitglied
huhu tutorials Team !

habe eine tabelle( 3 einträge) in der spalte stehen :

|6|7|8|9|5|
|6|7|8|5|
|6|9|11|3|

// Bedingung
$where[] = "cid LIKE '|%".$sort."%|'";
// abfrage
$database->setQuery( "SELECT * from #__dir_listings"
. (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "")
."\n ORDER BY lid DESC"
. "\n LIMIT $pageNav->limitstart,$pageNav->limit");

nun meine frage:
wenn ich 2 zahlen habe 1 und 11 , zeigt mir dir select immer den letzten eintrag an (6|9|11|3), egal ob $sort 1 ist oder 11, was nicht sein darf .
Kann mir jemand einen tipp geben wie ich dies umgehe, das beide werte als ganze zahl gesucht werden.

edit: $where[] = "cid = '|%".$sort."%|'"; liefert kein ergebnis.


Greets Elementar
 
Zuletzt bearbeitet:
Zuallererst: Ich werde dir keine (einfache) Lösung liefern.

Stattdessen möchte ich dir die Normalisierung von relationalen Datenbanken ans Herz legen.
Die erste Normalform schreibt hierbei die atomare Speicherung von Daten vor. D.h. eine einzelne Information darf nicht weiter zerlegbar sein. Deine Spalte cid enthält hierbei keine atomare, sprich nicht mehr teilbare, Information. Demzufolge würde ich dir dringendst empfehlen, alle cids in eine separaten Tabelle auszulagern und diese mit Hilfe eines Schlüssels zu verknüpfen.
Die Umstellung dauert wahrscheinlich ein bischen - sie lohnt sich aber allemal.

Greetings

André
 
Zuletzt bearbeitet:
Zurück