Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbankabfrage Problem

Einklappen

Neue Werbung 2019

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

  • Datenbankabfrage Problem

    Hallo,
    ich steh auf dem Schlauch und brauche kurz Eure Hilfe!
    Folgendes Problem:
    aus einer SQL Datenbank möchte ich die Kalenderwochen auslesen.
    In der Datenbank gespeichert sind die Wochentage mit einer Spalte kw, die die Kalenderwoche angibt.

    Dazu habe ich folgende SQL-Abfrage:
    PHP-Code:
    SELECT FROM tab WHERE kw LIKE '$woche' ORDER BY id LIMIT 21 
    Die '$woche' ist ich die aktuelle Kalenderwoche, die ich mit
    PHP-Code:
     $woche date("W"); 
    bekomme.

    Leider hat mein Ergebnis die falsche Sortierung.

    Wie muss ich die Abfrage ändern um die aktuelle Woche auszugeben und die zwei Folgewochen?

    Vielen Dank für Eure Hilfe

  • #2
    Warum LIKE?

    Bei Fragen zu Datenbankabfragen bitte immer auch die Tabellenstruktur und Testdaten als SQL-Code mit posten.

    Kommentar


    • #3

      Vielen Dank für die Antwort.

      DIe Tabellenstruktur hier einzufügen bekomme ich irgendwie nicht hin.

      Was wäre denn besser als LIKE?

      Kommentar


      • #4
        # Name Typ Kollation Attribute Null Standard Kommentare Extra
        1 idPrimärschlüssel int(11) Nein kein(e) AUTO_INCREMENT
        2 time varchar(80) latin1_swedish_ci Ja NULL
        3 kw varchar( latin1_swedish_ci Ja NULL
        4 name varchar(80) latin1_swedish_ci Ja NULL
        5 comments varchar(80) latin1_swedish_ci Ja NULL
        6 replace varchar(80) latin1_swedish_ci Ja NULL
        7 craft varchar(80) latin1_swedish_ci Ja NULL
        8 solo varchar(80) latin1_swedish_ci Ja NULL
        9 roxy varchar(80) latin1_swedish_ci Ja NULL


        Oder doch - es hat mit der Tabellstruktur doch geklappt!

        Kommentar


        • #5
          Zitat von kunbsi Beitrag anzeigen
          Was wäre denn besser als LIKE?
          Die Frage ist, warum du überhaupt LIKE verwendest. LIKE hat doch einen sehr speziellen Nutzen. Was sind deine Gedanken dahinter? Ich hoffe doch, dass du dir Gedanken darüber machst, was du schreibst, und nicht einfach per Zufall irgendwelche Dinge durcheinander wirfst.

          Zitat von kunbsi Beitrag anzeigen
          # Name Typ Kollation Attribute Null Standard Kommentare Extra
          1 idPrimärschlüssel int(11) Nein kein(e) AUTO_INCREMENT
          2 time varchar(80) latin1_swedish_ci Ja NULL
          3 kw varchar( latin1_swedish_ci Ja NULL
          4 name varchar(80) latin1_swedish_ci Ja NULL
          5 comments varchar(80) latin1_swedish_ci Ja NULL
          6 replace varchar(80) latin1_swedish_ci Ja NULL
          7 craft varchar(80) latin1_swedish_ci Ja NULL
          8 solo varchar(80) latin1_swedish_ci Ja NULL
          9 roxy varchar(80) latin1_swedish_ci Ja NULL


          Oder doch - es hat mit der Tabellstruktur doch geklappt!
          Nein, das ist keine SQL-Code und somit wertlos.

          Poste bitte den SQL-Code, mit dem du die Tabelle erstellt hast.

          Kommentar


          • #6
            PHP-Code:
            --
            -- 
            Table structure for table `tab`
            --

            CREATE TABLE IF NOT EXISTS `tab` (
              `
            idint(11NOT NULL AUTO_INCREMENT,
              `
            namevarchar(50) DEFAULT NULL,
              `
            commentsvarchar(50) DEFAULT NULL,
              `
            replacevarchar(50NOT NULL,
              
            PRIMARY KEY (`id`)
            ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=;

            --
            -- 
            Dumping data for table `tab`
            --

            INSERT INTO `subjects` (`id`, `name`, `comments`, `replace`) VALUES
            (1'Physics''Interesting''Pendulum'),
            (
            2'Chemistry''Not for me''h2so4'),
            (
            3'Maths''Its Goood''Algorithms'),
            (
            4'Economic''Never wanna learn''blogs'); 
            Dazu wurde die Spalte kw hinzugefügt.
            Der Rest ist gewachsen und der Inhalt ist auch anders

            Kommentar


            • #7
              Du solltest schon die Tabellenstruktur posten, auf die sich die Abfrage bezieht.

              Als Alternative kannst du auch ein Beispiel auf http://sqlfiddle.com/ zusammen stellen und hier verlinken.

              Kommentar


              • #8
                Zu dem LIKE:

                wenn ich LIKE gegen ein = tausche zeigt er mir nur die jeweilige Woche an.
                Ich brauche aber die Woche und die folgenden zwei Wochen

                Kommentar


                • #9
                  Nach was soll den sortiert werden? Und nein, die ID taugt zum Sortieren nicht.

                  Zitat von kunbsi Beitrag anzeigen
                  […]
                  2 time varchar(80) latin1_swedish_ci Ja NULL
                  3 kw varchar( latin1_swedish_ci Ja NULL […]
                  Warum speicherst du eine Zeit nicht als Zeit (also Type TIME) und eine Kalenderwoche nicht als Zahl (TINYINT)? Und als Kodierung solltest du unbedingt utf8 verwenden (nicht nur in der Datenbank sondern überall)!

                  Kommentar


                  • #10
                    Zitat von kunbsi Beitrag anzeigen
                    Zu dem LIKE:

                    wenn ich LIKE gegen ein = tausche zeigt er mir nur die jeweilige Woche an.
                    Ich brauche aber die Woche und die folgenden zwei Wochen
                    Daran ändert auch ein LIKE nichts, da brauchst du schon ein BETWEEN o.ä. (wobei der Jahresübergang noch gesondert berücksichtigt werden müsste)

                    Kommentar


                    • #11
                      okay vielen Dank,
                      das mit dem Jahresübergang löse ich separat mit if else (hat auf jeden Fall dieses mal Funktioniert)

                      Mit BETWEEN habe ich auch überlegt - nur bin ich mir nicht sicher, wie ich den Zeitraum definieren kann.
                      Welche Möglichkeiten gäbe es denn dafür?

                      Kommentar


                      • #12
                        Gibts jetzt mal eine vollständige Tabellenstruktur, auf deren Basis man Hilfestellung geben kann? Am besten, nachdem du #9 abgearbeittet hast und nicht überall sinnlos VARCHAR verwendest.

                        Warum muss der Thread, der eine einfache Frage beinhaltet, so ausarten, weil du unkooperativ bist?

                        Kommentar


                        • #13
                          Wenn ich bei PHPmyadmin Tabellestruktur aufrufe kommt das oben angegebene.
                          Ich bin mir nicht sicher was du jetzt wirklich meinst.

                          Tut mir Leid
                          Vielen Dank

                          Kommentar


                          • #14
                            Zitat von kunbsi Beitrag anzeigen
                            Wenn ich bei PHPmyadmin Tabellestruktur aufrufe kommt das oben angegebene.
                            Ich bin mir nicht sicher was du jetzt wirklich meinst.
                            phpMyAdmin hat eine Exportfunktion, damit kannst du die Struktur sowie die Daten exportieren und das Ergebnis dann hier posten (Daten ggf. kürzen und anonymisieren).

                            Kommentar


                            • #15
                              In dem CREATE ist nirgends was von einer "Woche" ersichtlich. Dh es muss die Falsche sein.

                              Kommentar

                              Lädt...
                              X