Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL WHERE Abfrage Probleme

Einklappen

Neue Werbung 2019

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

  • SQL WHERE Abfrage Probleme

    Guten Tag,


    bin gerade dabei ein PHP Script für eine Webseite zu schreiben. Dieses soll aus der Datenbank "d0135d03" bzw. der Tabelle "beitraege" alle Datensätze abrufen, die in der Spalte "category" "Vereinsleben" enthalten. Da in dieser Spalte auch noch andere Kategorien stehen, also bei anderen Beiträgen manchmal bis zu drei stück, scheitert es gerade daran, alles was davor bzw. dahinter steht zu ignorieren. Meinen bisherigen Code habe ich hier mal eingefügt:

    PHP-Code:
    <?php
    $connection 
    mysqli_connect("localhost""d0135d03""12345")
    or die (
    "Fehler im System");
    mysqli_select_db($connection'd0135d03')
    or die (
    mysqli_error($connection));


    $query "SELECT * FROM beitraege WHERE category=(*.'Vereinsleben'.*) ORDER BY ID DESC";
    $result mysqli_query($connection$query);
    while(
    $row mysqli_fetch_object($result))
    {
    ?>
    <div style="border-top: 3px solid black; border-bottom: 3px solid black;">
    <h2><?php echo $row->headline?></h2><br>
    <img src="images/beitraege/<?php echo $row->image?>"><br><br>
    <span>Veröffentlicht am <u style="color: blue;"><?php echo $row->date?></u></span><br>
    <span>Kategorien: <u style="color: blue"><?php echo $row->category?></u></span><br>
    <span>Autor: <u style="color:blue"><?php echo $row->author?></u></span><br>
    <p><?php echo $row->text?></p><br>
    <strong style="margin: 5px;"><bold><a href="https://<?php echo $row->links?>" style="overflow: hidden; "><?php echo $row->links?></a></bold></strong><br><br>
    <?php echo $row->other?>
    </div>
    <?php
    }
    ?>

    Danke schonmal im Voraus für die Antworten

  • #2
    Kaputtes DB Design, bzw. Verstoss gegen die Normalisierungsregeln.
    Das ist auch falsch
    Code:
    WHERE category=(*.'Vereinsleben'*.)
    Bringe erst mal deine DB in Ordnung, das heisst, pro Datensatz eine Kategorie in der Tabelle Kategorien mit id

    Der untere Klattegeratsch aus PHP, HTML und CSS ist auch falsch, ohne näher darauf einzugehen. Validiere das mal.

    Kommentar


    • #3
      Depends. Mit passenden Datentypen wie Arrays oder indexierbaren JSONB-Dokumenten wäre das auch so machbar. Aber der Fragesteller hat ja MySQL ...
      PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

      Kommentar


      • #4
        MySQL ..
        Eben

        Gut - man könnte auch dort mit set arbeiten, dennoch ist das Gleichheitszeichen hier falsch, da gehört ein LIKE hin.
        Und dann wäre da noch die Sache mit dem Kontextwechsel zu HTML, das hatte ich noch gar nicht erwähnt, aber bei so vielen Fehlern übersieht man auch schon mal was.

        Lasse dir auch immer die Fehlermeldungen von Mysqli ausgeben oder schaue in die Errorlog Datei.

        Kommentar


        • #5
          Und ja: select * ...
          PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

          Kommentar


          • #6
            Zitat von akretschmer Beitrag anzeigen
            Depends. Mit passenden Datentypen wie Arrays oder indexierbaren JSONB-Dokumenten wäre das auch so machbar. Aber der Fragesteller hat ja MySQL ...
            In der Theorie kannst du auch in MySQL einen Index in MySQL auf eine JSON Column legen über Umwege. Wahrscheinlich aber nicht so schön wie in postgresql.
            https://dev.mysql.com/doc/refman/8.0...y-indexes.html

            Kommentar


            • #7
              WHERE category like '%Vereinsleben%'
              Content-Datenbanken für Publisher und SEO
              [URL="http://www.contentdeals.de"][COLOR="Red"]contentdeals.de[/COLOR][/URL]

              Kommentar


              • #8
                Zitat von linear Beitrag anzeigen
                WHERE category like '%Vereinsleben%'
                Pfusch-Lösungen dieser Art mögen bei kleinen Datenmengen funktionieren, sind aber ein Garant für Probleme sobald die Anwendung und die Daten wachsen.
                PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                Kommentar

                Lädt...
                X