aus array suchen

kaits

Mitglied
hallo

ich habe diese tabelle:

ID - NAME - CATEGORY
-------------------------------------
1 - asdasd - 1
2 - dsadsa - 1|2
3 - asddsa - 2
3 - dsaasd - 2|3

und wenn ich jetzt ins einen textbox den nummer 1 schreibe, dann wie kann ich die einträge ausgeben, wo der CATEGORY die nummer 1 hat? die einträge sind 1 und 2, weil in der eintrag nummer 2 ist der nummer 1 ja erhalten, obwohl 1 und 2 mit | getränt sind. da muss der süstem dass erkennen und trotzdem dass ausgeben, was ich möche.

ich hoffe, dass mein deutsch nicht so schlecht ist?


danke
 
HI
Mein Vorschlag du läst dir alles ausgeb und schaust mit der Funktion
strpos() ob eine 1 an welcher Stelle in der Zeichenkette die 1 Steht
ist sie nicht vorhanden gibt die Funktion logischer weise eine 0 zürück

Gruß benny
 
Hi,

Sagen wir es mal so: dein letzter Satz ist fehlerfrei :)

Welche Tabelle hast du denn, eine HTML-Tabelle, oder eine Mysql-Tabelle ?

Bei einer Mysql-Tabelle wäre der Code zum suchen eines bestimmten Eintrags so:

PHP:
   <?php
   mysql_connect("Host", "Benutzer", "Passwort"); or die(mysql_error());
   mysql_select_db("Datenbankname") or die(mysql_error());
   $sql = "SELECT * FROM Datenbankname WHERE CATEGORY ="1";
   $result = mysql_query($sql) or die(mysql_error());
   		 
   		 while($row = mysql_fetch_assoc($result))
   	   {
 		 $ID			 = "$row[ID]";
 		 $Name			= "$row[Name]";
   		 $CATEGORY  = "$row[CATEGORY]";
   	   }
   
   echo "$ID";
   echo "<br>";
   echo "$Name";
   echo "<br>";
   echo "$CATEGORY";
   ?>

So wäre die Abfrage bei einer Mysql-Tabelle.
Falls do etwas Ahnung von PHP hast, sollte sich das ganze eigentlich selbst erklären.
Wenn nicht, einfach mal nach nem Mysql-Tutorial googlen.

Gruss
Commi

PS: argh.... habe gerade den Titel gelesen..... :-( *gg*
 
Ich würde empfehlen, dass Du eine zweite Tabelle anlegst.
Dein Design widerspricht bereits der ersten Normalform (english), da Du kein atomares Attribut in der Spalte CATEGORY hast.
In der zweiten Tabelle steht in Spalte 1 die ID der gezeigten Tabelle und in Spalte 2 die CATEGORY_ID.
Das würde dann so aussehen:

Jetzige Tabelle (ich nenne sie jetzt `Tabelle`):
ID - NAME - CATEGORY
-------------------------------------
1 - asdasd - 1
2 - dsadsa - 1|2
3 - asddsa - 2
4 - dsaasd - 2|3

In der vierten Zeile hast Du Dich vertippt?

Tabelle `Assoziationen`:
ID - CATEGORY_ID
-------------------------------------
1 - 1
2 - 1
2 - 2
3 - 2
4 - 2
4 - 3

Das Query wäre dann:
Code:
SELECT DISTINCT ID, NAME 
FROM Tabelle 
JOIN Assoziationen ON (Tabelle.ID=Assoziationen.ID)
WHERE Assoziationen.CATEGORY_ID=1 #die Kategorie, nach der Du suchst

Gruß hpvw

EDIT:
kle-ben hat gesagt.:
HI
Mein Vorschlag du läst dir alles ausgeb und schaust mit der Funktion
strpos() ob eine 1 an welcher Stelle in der Zeichenkette die 1 Steht
ist sie nicht vorhanden gibt die Funktion logischer weise eine 0 zürück

Gruß benny
[phpf]strpos[/phpf] gibt false (zu vergleichen mit ===false) zurück, wenn der gesuchte String nicht gefunden wurde. Wenn [phpf]strpos[/phpf] mit ==0 verglichen wird, kann der gesuchte String an Position 0 gefunden worden sein oder nicht vorhanden sein (boolean false gecastet auf int ergibt 0).

Gruß hpvw
 
Zuletzt bearbeitet:
Zurück