• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

nach bestimmten Teil in der DB suche...

Metallica

Lounge-Member
Hi Leuts!

wieder mal so'ne metallica-spezialfrage:
in meiner DB gibt's ein Feld NR in dem pro DS eine 10stellige Zahl steht.
Mit folgendem php-script will überprüfen, an welcher Stelle eine von mir gesuchte Zahl in meiner DB steht damit ich nicht immer solange suchen muss.
Das Problem: wenn ich eine Zahl suche, dann hab ich nicht die ganze 10-stellige zahl, sondern nur einen Teil davon. zB die letzten fünf stellen.
ist es möglich, dass mysql nicht nach einer kompletten übereinstimmung sucht, sondern zB nach 67890 und mir dann die ID von dem jeweiligen DS ausgibt??

CODE:
$searched_nr = "67890";
$snr = mysql_query("SELECT NR, ID FROM tabelle WHERE NR = '$snr'");
$anz = mysql_num_rows($snr);
if($anz == 0) { echo "Keinen Übereinstimmung gefunden!"; }
if($anzcard == 1) {
$id2 = mysql_fetch_array($snr);
$id = $id2["ID"];
echo "Übereinstimmung gefunden! Datensatznummer: $id";
}
 
Pass aber auf, das dann nicht der falsche Datensatz zurückgegeben wird :eek:. denn:

12367890 passt auf deine Query ebenso wie 67890123 oder tausenden von anderen Möglichkeiten!
 
Jep...


aber, du kannst es einengen, z.b. wenn du immer nur die ersten 4 Stelklen kennst, dann

LIKE '$var%'

Oder wenn du die letzten kennst eben umgekehrt.

Eventl kannst du auch ne Suche auf die ARt machen:

LIKE '?$var%'
LIKE '??$var%'
LIKE '???$var%'
LIKE '????$var%'

Die Fragezeichen stehen für nur eine Zahl die fehlt. % sucht danach egal wie viele Zahlen oder Buchstaben vor der angegebenen Zahl stehen.

Ich hoffe das mit dem ? hab ich richtig reingesetzt =)
 
Zurück
Oben