php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.11.2005, 16:15  
Erfahrener Benutzer
 
Registriert seit: 09.07.2004
Beiträge: 155
flual2000
Standard suchen nach einem Wert im String

Hallo,

ich habe mittels einem Formular einen String mit mehreren Werten in eine Datenbank gespeichert.
Jetzt will ich nur die Datensätze aus der datenbank herauslesen, die einen bestimmten Wert innerhalb dieses Strings haben.
D.h. Datensatz 1 String: Maus, Hund, katze
Datensatz 2 String: Maus, Katze
Bei der Suche nach Hund sollte also nur Datensatz 1 angezeigt werde.
Code:
if ($laender == "Holland" && $stadt == "alle""){
$res = mysql_query("select * from tabelle ");
$num = mysql_num_rows($res);
        while ($dsatz = mysql_fetch_assoc($res))
{        echo "<td>" . $dsatz["unternehmen"] ."
Die Variablen $laender und $stadt stammen aus einem Auswahlformular, das vorgeschaltet ist.
Ich habe bisher keine adquate Lösung gefunden.
Kann mir jemand helfen?
flual2000 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 12.11.2005, 16:24  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Du könntest jeden Datensatz mit preg_match() überprüfen.. aber schau mal im Manual, vielleicht gibt es da noch eine MySQL-eigene Funktion, die dürfte um einiges schneller sein.
Corvin ist offline  
Alt 12.11.2005, 16:52  
Clan
Gast
 
Beiträge: n/a
Standard

http://dev.mysql.com/doc/refman/5.0/...functions.html

Zitat:
... from bla where FIND_IN_SET('Hund',spalte) > 0;
 
Alt 12.11.2005, 17:24  
Erfahrener Benutzer
 
Registriert seit: 09.07.2004
Beiträge: 155
flual2000
Standard

Ich habe FIND_IN_SET angewendet, aber das Ergebnis ist, dass kein Datensatz gefunden worden ist. Es sollte aber wenigstens einer sein.
Muss ich den Inhalt der Spalte noch umwandeln mit unserialize?
flual2000 ist offline  
Alt 12.11.2005, 17:52  
Clan
Gast
 
Beiträge: n/a
Standard

Wenn es so

Zitat:
Maus,Hund,katze
in der Tabelle steht wird es auch gefunden.
Beantwortet dies deine Frage?

Zitat:
FIND_IN_SET(str,strlist)

Returns a value in the range of 1 to N if the string str is in the string list strlist consisting of N substrings. A string list is a string composed of substrings separated by ‘,’ characters. If the first argument is a constant string and the second is a column of type SET, the FIND_IN_SET() function is optimized to use bit arithmetic. Returns 0 if str is not in strlist or if strlist is the empty string. Returns NULL if either argument is NULL. This function does not work properly if the first argument contains a comma (‘,’) character.

mysql> SELECT FIND_IN_SET('b','a,b,c,d');
 
Alt 12.11.2005, 17:54  
Erfahrener Benutzer
 
Registriert seit: 09.07.2004
Beiträge: 155
flual2000
Standard

Nein,
in der Spalte steht es so:
a:3:{i:0;s:9:"Hund";i:1;s:9:"Katze";i:2;s:10:"Maus ";}

Ist das dann anders
flual2000 ist offline  
Alt 12.11.2005, 17:56  
Clan
Gast
 
Beiträge: n/a
Standard

Und das ist falsch!

Nochmal...
Der Wert muss so aussehen und nicht anders!

Zitat:
Maus,Hund,katze
kein
Zitat:
a:3:{i:0;s:9:"Hund";i:1;s:9:"Katze";i:2;s:10:"Maus ";}
oder sonstiges..
 
Alt 12.11.2005, 18:01  
Erfahrener Benutzer
 
Registriert seit: 09.07.2004
Beiträge: 155
flual2000
Standard

Was macht man denn dann in meinem Fall
flual2000 ist offline  
Alt 12.11.2005, 18:06  
Clan
Gast
 
Beiträge: n/a
Standard

ich vermute mal das du die spalte so brauchst, dann schlage ich dir mal vor eine zusätzlich spalte hinzuzufügen.

dort pumpste dann halt die werte nochmal neu ein und stellst die suchabfrage über die neue spalte.
das wars..
 
Alt 12.11.2005, 18:11  
Erfahrener Benutzer
 
Registriert seit: 09.07.2004
Beiträge: 155
flual2000
Standard

Nun habe ich versucht die Werte ohne den folgenden Code einzuspeichern:
if (isset($_POST['tier'])) {
reset($_POST['tier']);
foreach ($_POST['tier'] as $k => $v){
$beruf = serialize($_POST['tier']);}}

Das Ergebnis war, dass in der Spalte jetzt array eingetragen wird.
Muss ich aus dem Formularfeld bei den Checkboxen die Zeichen [] entfernen, damit die Werte adequat eingetragen werden können?
flual2000 ist offline  
 


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
Prüfen, ob in String Wert von Array enthalten ist. Lavalampe PHP Tipps 2008 5 03.04.2008 19:54
Fester Wert bei Registrierung festlegen themr Datenbanken 1 07.03.2008 14:41
wert aus array -> string alfonsodiecko PHP Tipps 2008 13 08.02.2008 01:25
Event abfangen Ambience JavaScript, Ajax und mehr 4 30.08.2007 14:36
nach grösstem (unbekannten) Wert suchen lindner Datenbanken 2 20.08.2006 22:13
strlen() gibt einen höheren wert aus als der string hat??? JDF1976 PHP Tipps 2006 4 26.05.2006 17:04
array verarbeitung (schlag auf den hinterkopf) PHP Tipps 2007 9 16.11.2005 11:37
minus wert, plus wert in variable nutzen PHP Tipps 2005-2 5 22.10.2005 19:15
String problem socke PHP Tipps 2005-2 6 17.09.2005 21:59
In allen Spalten nach String suchen Jacks Rache Datenbanken 0 05.08.2005 20:15
string -> int, nur wenn string zahl ist PHP Tipps 2005-2 3 06.06.2005 12:33
kleinsten und größten wert ermitteln niffi PHP Tipps 2005 14 26.04.2005 12:42
where string von einer funktion zu anderen transportieren PHP Tipps 2005 5 03.03.2005 16:29
[Erledigt] String mit Leerzeichen auffüllen HTML, Usability und Barrierefreiheit 2 27.10.2004 18:47
[Erledigt] Problem: per klick auf Button Wert erhöhen/verringern HTML, Usability und Barrierefreiheit 7 07.10.2004 08:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
wert aus string, find_in_set serialisierte daten, php string nach wert, ? im string suchen, string nach bestimmten wert suchen, in einer datenbank nach 2 werten durchsuchen, find_in_set() unserialize

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:41 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.