Ergebnis 1 bis 10 von 10

Thema: Mehrere Tags bzw. Array in einer Zelle in DB speichern

  1. #1
    Azubi(ne)
    Registriert seit
    23.12.2007
    Beiträge
    89
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Frage Mehrere Tags bzw. Array in einer Zelle in DB speichern

    Hallöchen,

    ich habe jetzt einige Zeit auf das Suchen einer Lösung über Google verwendet, komme allerdings irgendwie nicht richtig weiter.

    Ich würde gerne in einer mySQL Datenbank mehrere Werte in einer Zelle speichern (Primärschlüssel in einer anderen Tabelle), z.B.

    Name: Mustermann
    Vorname: Max
    Tags: 1,2,3,4

    Da in der Spalte "Tags" über 100 verschiedene Werte in Frage kommen (eingetragen werden allerdings max. 10 verschiedene), würde eine extra Zuordnungstabelle sicher den Rahmen sprengen. Auch habe ich mir die Funktion serialize() mal angeschaut, finde diese jedoch für meine Zwecke auch etwas komplex (es wird hinterher eine Tabelle mit ca. 100 Einträgen ausgegeben; bei jedem Datensatz wird geprüft, ob zu diesem Eintrag in der dazugehörigen Tabelle in der Spalte "Tags" ein bestimmter Wert X vorkommt). Der Feldtyp "SET" kommt leider auch nicht in Frage, da er zu wenige verschiedene Einträge zulässt.

    Meine Frage ist daher, ob es eine "einfache" Möglichkeit gibt, Werte innerhalb einer Spalte mit einem Sonderzeichen zu trennen (z.B. 1,2,3) und bei der Ausgabe gezielt nach einem Wert in dieser Spalte zu suchen (Wenn Wert "2" vorhanden, dann...)?

    Ich wäre euch für jede Hilfe dankbar

    LG
    Max
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Bandit
    Gast

    Standard AW: Mehrere Tags bzw. Array in einer Zelle in DB speichern

    Wenn maximal 10 Werte eingetragen werden, dann benutze 10 Tabellenspalten. Diese Werte in eine Spalte zu stoppen wird immer wieder Probleme machen.

  3. #3
    Azubi(ne)
    Themenstarter

    Registriert seit
    23.12.2007
    Beiträge
    89
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Mehrere Tags bzw. Array in einer Zelle in DB speichern

    Hi Bandit,

    danke für die schnelle Hilfe. An die Lösung habe ich auch schon gedacht. Aber müsste ich dann nicht in jeder Abfrage nach einem Wert in jedem der 10 Felder suchen? "If Feld1 ==1 OR Feld2 ==1 OR Feld3 =1,..."? Oder gibt es da eine andere Methode?

  4. #4
    Bandit
    Gast

    Standard AW: Mehrere Tags bzw. Array in einer Zelle in DB speichern

    Baue eine Funktion, die dir die Abfrage zusammenbaut, sind doch nur ein paar Zeilen.

  5. #5
    Azubi(ne)
    Themenstarter

    Registriert seit
    23.12.2007
    Beiträge
    89
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Mehrere Tags bzw. Array in einer Zelle in DB speichern

    So etwas habe ich noch nie versucht. Kannst du mir ein kurzes Beispiel geben? Problem ist, dass ich auch 2 AND Bedingungen habe, die neben dem Vorkommen eines Wertes in einem Datensatz erfüllt sein müssen.

    z.B. Bedigung1=blau AND Bedingung2=Montag
    und zudem die OR Bedingungen für das vorkommen der Tags.

  6. #6
    Bandit
    Gast

    Standard AW: Mehrere Tags bzw. Array in einer Zelle in DB speichern

    PHP-Code:
    <?php
       
    function createSubCondition($prefix$start$count$value)
       {
          
    $result = array();
          
          while(
    $count--)
             
    $result[] = $prefix $start++ . "=" $value;
             
          return (
    "(" implode (" OR "$result) . ")");
       }
       
       echo 
    createSubCondition("tag"1105);
    ?>
    Ausgabe
    (tag1=5 OR tag2=5 OR tag3=5 OR tag4=5 OR tag5=5 OR tag6=5 OR tag7=5 OR tag8=5 OR tag9=5 OR tag10=5)

  7. #7
    Azubi(ne)
    Themenstarter

    Registriert seit
    23.12.2007
    Beiträge
    89
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Mehrere Tags bzw. Array in einer Zelle in DB speichern

    Vielen Dank! Kannst du mir bitte noch verraten, wie ich die Funktion mit der DB Abfrage verbinde?

    Folgender Versuch von mir gibt mir leider einen Fehler aus

    PHP-Code:
    $load mysql_query("SELECT * FROM test WHERE $result"); 
    Fehlermeldung:

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource...

    sowie

    Fatal error: Cannot redeclare createsubcondition() (previously declared...

  8. #8
    Bandit
    Gast

    Standard AW: Mehrere Tags bzw. Array in einer Zelle in DB speichern

    Da du nicht verräts, was in $result steht, kann man nicht viel dazu sagen.

    Richtig debuggen

    1.Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2.Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
    3.Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    4.Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    5.An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysql_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    6.Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    7.Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    8.Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    9.Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.


    Die Fehlermeldung deutet darauf hin, dass du die Funktion in eine Schleife geschrieben hast oder in einer Datei, die mehrfach per include bzw. require eingebunden wird.

  9. #9
    Azubi(ne)
    Themenstarter

    Registriert seit
    23.12.2007
    Beiträge
    89
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Mehrere Tags bzw. Array in einer Zelle in DB speichern

    Das Error_reporting zeigt lediglich die oben beschriebenen Fehlermeldungen. Die $result verweist auf dein Code Beispiel von oben

    PHP-Code:
    $result = array(); 


    Fehler 1 bezieht sich auf die DB Abfrage, Fehler 2 auf die erste Zeile der Funktion.


    PHP-Code:

     <?php
            error_reporting
    (E_ALL);
       function 
    createSubCondition($prefix$start$count$value)
       {
          
    $result = array();
          
          while(
    $count--)
             
    $result[] = $prefix $start++ . "=" $value;
             
          return (
    "(" implode (" OR "$result) . ")");
       }
       
       echo 
    createSubCondition("tag"15$tag["tagnr"]);
    ?> 
            
            
            <?php
              $load 
    mysql_query("SELECT * FROM tags WHERE $result'");
              
    $rows mysql_num_rows($load);

  10. #10
    Bandit
    Gast

    Standard AW: Mehrere Tags bzw. Array in einer Zelle in DB speichern

    Meine Empfehlung: Lerne die Grundlagen!!! Die Funktion liefert einen String zurück, und dieser wird per echo ausgegeben. In $result beim mysql_query steht also nix drin, da keine Zuweisung existiert.

Ähnliche Themen

  1. PHP Seite, mehrere <title tags>, dynamische urls ?
    Von mischalemaus im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 09.08.2009, 18:39
  2. Den Wert einer Zelle in Tab1 in einer Spalte in Tab2 suchen.
    Von bewehh im Forum Forum für alle anderen Programmiersprachen
    Antworten: 2
    Letzter Beitrag: 01.06.2007, 18:50
  3. javascript: Drucken einer Zelle einer Tabelle ...
    Von mb59 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 03.04.2007, 16:20
  4. Daten aus nur einer Spalte einer Tabelle in Array speichern
    Von FaFoo im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 25.07.2006, 16:32
  5. array speichern/lesen
    Von gul2002 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 12
    Letzter Beitrag: 27.01.2006, 19:12

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •