CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
23.10.2006, 23:48:48
|
Anfänger
|
|
Registriert seit: Jun 2006
Beiträge: 6
|
|
Suche in Array
Hallo,
ich habe folgendes Problem: in einer MYSQL-Datenbank habe ich in einem Feld (feldarray) Daten in einem Array gespeichert. Nun möchte ich alle Datensätze danach durchsuchen, ob in diesem Feld (bzw. dem jeweiligen Array) ein bestimmter Begriff vorkommt, und dann die Zahl dieser Vorkommnisse ausgeben.
Ich versuche es über eine SELECT-Abfrage, komme damit aber nicht weiter:
$query = "SELECT * FROM tabelle WHERE feldarray = 'Begriff'";
$sql = mysql_query($query);
$ergebnis = mysql_num_rows($sql);
Danke,
Haintz
|
24.10.2006, 00:27:48
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
AW: Suche in Array
Hi,
Zitat:
Zitat von Haintz
habe ich in einem Feld (feldarray) Daten in einem Array gespeichert.
|
Feldarray? Welchen Feldtyp hast Du genau genommen? SET?
Zitat:
Zitat von MySQL
SELECT * FROM tbl_name WHERE FIND_IN_SET('value',set_col)>0;
SELECT * FROM tbl_name WHERE set_col LIKE '%value%';
|
http://dev.mysql.com/doc/refman/5.1/de/set.html
|
24.10.2006, 00:37:56
|
Anfänger
|
|
Registriert seit: Jun 2006
Beiträge: 6
|
|
AW: Suche in Array
Die Bezeichnung "Feldarray" habe ich nur verwendet, um klarzumachen, dass es sich um ein Feld handelt, in dem ein Array abgelegt ist. Der Feldtyp ist "Blob".
Haintz
Geändert von Haintz (24.10.2006 um 01:01:02 Uhr)
|
24.10.2006, 06:02:12
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
AW: Suche in Array
Ich gehe davon aus, dass Du das Array serialisiert in der DB abgelegt hast.
Teste mal sowas in der Art:
Code:
$sql = "SELECT
COUNT(*) AS anz
FROM
tbl_tabelle
WHERE
feld
LIKE
'%$such_begriff%'";
Warum speicherst Du Arrays als BLOB?
Christian
|
24.10.2006, 11:11:04
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Suche in Array
Warum speicherst du überhaupt Arrays in einer Datenbank? Normalisiere lieber die Datenbankstruktur, so dass sich dein Problem über einfache Vergleiche lösen lässt.
|
25.10.2006, 21:43:08
|
Anfänger
|
|
Registriert seit: Jun 2006
Beiträge: 6
|
|
AW: Suche in Array
@chris 17: Array ist serialisiert abgelegt. Die vorgeschlagene SELECT-Abfrage funktioniert leider nicht. Ich hatte vermutet, dass ich das Feld mit "unserialize" bearbeiten muss, bevor eine Suche funktioniert, was aber wohl innerhalb der Abfrage nicht geht (oder?). Ich vermute außerdem, dass die Suche ziemlich lange dauern würde... :-(
@: xabbuh
Mir erschien es einfacher, direkt arrays abzulegen. Ich kann die Ergebnisse von Ankreuzfeldern aus einem Formular direkt in die Tabelle schreiben. Tatsächlich bestücke ich die Ankreuzfelder des Formulars bereits dynamisch aus einer Kriterientabelle.
Und nun im Zusammenhang mit Abfragen die Frage nach dem normalisieren der Datenbank, mhh...
Dann bekomme ich eine zusätzliche Tabelle, sehe ich das richtig? Eine Tabelle, in der die "Verknüpfungen" zwischen Haupt- und Ausprägungstabelle gespeichert werden?
Haintz
|
25.10.2006, 22:19:09
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Suche in Array
Zitat:
Zitat von Haintz
Ich hatte vermutet, dass ich das Feld mit "unserialize" bearbeiten muss, bevor eine Suche funktioniert, was aber wohl innerhalb der Abfrage nicht geht (oder?). Ich vermute außerdem, dass die Suche ziemlich lange dauern würde... :-(
|
Du vermutest falsch, weil MySQL kein unserialize() kennt.
Zitat:
@: xabbuh
Mir erschien es einfacher, direkt arrays abzulegen. Ich kann die Ergebnisse von Ankreuzfeldern aus einem Formular direkt in die Tabelle schreiben. Tatsächlich bestücke ich die Ankreuzfelder des Formulars bereits dynamisch aus einer Kriterientabelle.
Und nun im Zusammenhang mit Abfragen die Frage nach dem normalisieren der Datenbank, mhh...
|
Suche im MySQL nach dem Spaltentyp SET. Falls Du es verstanden hast:
mit diesem Spaltentyp bist Du in der Lage, die Ergebnisse von (Beispiel) 64 ja/nein Ckeckboxen zu speichern und in der Tabelle zu suchen (FIND_IN_SET() ).
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 22:41:51 Uhr.
|