Ankündigung

Einklappen
Keine Ankündigung bisher.

explode vor while-schliefe

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • explode vor while-schliefe

    Hallo,

    folgene MySQL-Tabelle habe ich:
    INSERT INTO `Termine` VALUES (1, '4|5', 'E-Jugendturnier', '', '2011-11-21 09:30:00', '2011-11-21 15:00:00', '2010-11-17 20:28:11');

    In der zweiten Spalte speicher ich die IDs, der Mannschaften, die betroffen sind.
    Wenn der Termin mehrere Mannschaften betrifft werden sie mittels | von einander getrennt.
    In diesem Fall 4=E1 und 5=E2, jetzt ist bloß mein Problem: Wie komme ich daran?
    Ich muss ja irgendwie mit $MannschaftsID = explode('|', $row->MannschaftsID); daran!!!
    PHP-Code:
      if (isset($_GET['m']))
      {
          
    $sql "SELECT MannschaftsID, TerminTitel, TerminBeschreibung, TerminStart, TerminEnde FROM Termine WHERE MannschaftsID = '$_GET['m']'";

      } 

  • #2
    Darum normalisiert man eine Datenbank:
    http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)
    "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

    Kommentar


    • #3
      Genau das ist der Grund warum man nie mehrere Werte in eine Spalte drücken sollte. Richtig wäre hier, eine zusätzliche Tabelle in der du die Termine den Mannschaften zuordnest. Oder falls es eine geringe, feste Anzahl an Mannschaften ist ein SET zu verwenden und mit FIND_IN_SET zu arbeiten.

      Die Quick&Dirty Lösung ist etwas á la:
      Code:
      WHERE CONCAT('|', MannschaftsId, '|') LIKE '%|". (int) $_GET['m'] . "|%'
      (aber bitte nicht machen )
      [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

      Kommentar

      Lädt...
      X