2016-09-01 2 views
0

Ich versuche, ein vorhandenes Skript zu ändern, das nur Zeilen mit bestimmten Vorwahlen an Benutzer ausgibt, denen die spezifischen Vorwahlen zugewiesen wurden.Durchsuchen einer MySQL-Tabelle nach durch Komma getrennten Vorwahlen

Beispiel:

Eine Spalte mit dem Namen designed_areas in der Tabelle Benutzer verschiedene Daten wie beinhalten: CM, SS, RH

Wenn eine Leitung kommt, ich bin mit substr den ersten 2 Zeichen erkennen einer Postleitzahl.

$trimmed = substr("$postcode", 0, 2); 


$viewLeads=mysqli_query($con,"SELECT * FROM leads WHERE team = '$getID->team' ORDER BY id DESC"); 

while($lead=mysqli_fetch_object($viewLeads)){ 

Ich möchte auf dem mysqli_query erweitern und alle anderen Kabel aus der Datenbank auswählen, in dem die ersten zwei Zeichen der Postleitzahl jeden Benutzer designated_areas paßt .. die ist durch Komma getrennt.

Auf diese Weise sieht er nur Leads mit den Bereichen, an denen er arbeiten kann.

Kann jemand helfen?

Antwort

1

Sie können versuchen, eine Abfrage zu verwenden wie:

SELECT * FROM leads WHERE team = '$getID->team' and designed like '%{$trimmed}%' ORDER BY id DESC; 

Php Code:

$viewLeads=mysqli_query($con,"SELECT * FROM leads WHERE team = '$getID->team' and designed like '%{$trimmed}%' ORDER BY id DESC;"); 
1

Sie es mit einem regex tun können. Zum Beispiel in MySQL, wenn Ihr postal_code Tabelle sieht wie folgt aus:

PersonID Zips 
1   11111,22222,33333 
2   22222,12121,32323 

Und Sie wollen Personen, die wie 33 Postleitzahlen haben *

SELECT PersonID FROM `postal_code` WHERE zips rlike '33[0-9]{3}' 

Dies setzt voraus, dass alle Postleitzahlen sind 5 Ziffern und Sie suchen immer mit 2 Ziffern. Es sagt im Grunde "finde mich 5-stellige Zahlen, wo die ersten beiden Ziffern 33 sind" oder was auch immer Ihre Suchnummern sind.
Der PHP-Code könnte wie folgt aussehen:

$search = 33 ; 
$sql = "SELECT PersonID FROM `postal_code` WHERE zips rlike '$search[0-9]{3}'" ; 

Diese Lösung Streichhölzer unabhängig von Kommas, Leerzeichen finden, etc. Sie werden jede weitere Verarbeitung in Ihrem PHP-Code nicht benötigen.

+0

Das ist großartig, aber gilt das, wenn das "Zip" mit Zeichen und nicht mit Zahlen beginnt? Die echte Definition zwischen einem Ort wird mit den ersten zwei Buchstaben eines Codes definiert. –

Verwandte Themen