Abfrage funktioniert nicht

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #31
    Ich meine damit das die Datenbankstruktur unverändert ist.
    Sie sieht wie folgt aus:

    id, zahl1, zahl2, zahl3, zahl4, zahl5, zahl6
    1, 10, 14, 20, 25, 33, 41
    2, 9, 18, 23, 30, 41, 45 Beispieldaten
    3, 15, 19, 29, 35, 36, 39

    Es soll möglich gemacht werden das komplette Zahlen Array mit past und copy in ein Datenfeld eingefügt werden und dann die Abfrage durchlaufen.

    Kommentar


    • #32
      Zitat von Tastatur Beitrag anzeigen
      Das Problem das die Zahlen drin stehen bleiben habe ich so gelöst.
      <input type="text" name="zahl1" value="<?php echo $_POST['zahl1']; ?>" />
      Siehst du, es geht doch, wenn man mal einen kleinen Denkanstoß bekommt.

      Zitat von Tastatur Beitrag anzeigen
      Ich meine damit das die Datenbankstruktur unverändert ist.
      Sie sieht wie folgt aus:
      id, zahl1, zahl2, zahl3, zahl4, zahl5, zahl6
      1, 10, 14, 20, 25, 33, 41
      2, 9, 18, 23, 30, 41, 45 Beispieldaten
      3, 15, 19, 29, 35, 36, 39
      Es soll möglich gemacht werden das komplette Zahlen Array mit past und copy in ein Datenfeld eingefügt werden und dann die Abfrage durchlaufen.
      Dazu gibst du die (eine) Zahlenkette (z.B. 10, 14, 20, 25, 33, 41) in ein Textfeld ein und machst nach dem Absenden ein Array daraus.
      PHP-Code:
      $zahlen explode(","$_POST['zahlen']); 
      Die Funktion array_unique entfernt doppelte Elemente aus einem Array und gibt das neue Array zurück.

      Hiermit machst du die Eingabeprüfung, ob Zahlen doppelt eingegeben wurden.
      PHP-Code:
      if(count(array_unique($zahlen)) < 6){ //Wurden doppelte Elemente entfernt, sind weniger als 6 Zahlen im Array
       
      echo "Mindestens eine der Zahlen ".implode(" | "$zahlen)." wurde doppelt eingegeben.";
       exit;

      Sind 6 Elemente drin, gehts weiter, wie gehabt, allerdings diesmal mit dem Zahlenarray.
      PHP-Code:
      $query="SELECT id FROM lotto WHERE 
       
      $zahlen[0] in (zahl1,  zahl2,  zahl3,  zahl4,  zahl5,  zahl6) and
       
      $zahlen[1] in (zahl1,  zahl2,  zahl3,  zahl4,  zahl5,  zahl6) and
       
      $zahlen[2] in (zahl1,  zahl2,  zahl3,  zahl4,  zahl5,  zahl6) and
       
      $zahlen[3] in (zahl1,  zahl2,  zahl3,  zahl4,  zahl5,  zahl6) and
       
      $zahlen[4] in (zahl1,  zahl2,  zahl3,  zahl4,  zahl5,  zahl6) and
       
      $zahlen[5] in (zahl1,  zahl2,  zahl3,  zahl4,  zahl5,  zahl6)"
      Gruß
      Günni

      PS.: Was soll denn mal daraus werden? Die ultimative "Wie waren die Lottozahlen der letzten 40 Jahre-Anwendung"?

      Kommentar


      • #33
        Ich hab das so gemacht wie du beschreiben hast, es kommt auch keine Fehlermeldung, jedoch auch kein Ergebnis.
        Ich hab daher die Datenbank einfacher gestalltet, sie hat jetzt nur 2 Spalten. "id" und "string". In der Spalte string sind die Lottozahlen durch Komma getrennt. In das Eingabefeld bzw. in die 6 Eingabefleder sollen dann solche 3,12,13,16,23,41 Zahlenkolonnen eingegeben werden.

        Die Datenbank sieht wie folgt aus:
        "id" wurde mit INT 20 und "string" mit VARCHAR 20 vergeben.

        id; string
        1; 3,12,13,16,23,41
        2; 3,12,18,30,32,49
        3; 12,14,23,24,34,36
        4; 4,13,23,30,36,44
        5; 5,6,31,39,44,49
        6; 6,18,22,29,37,44
        7; 4,8,12,16,27,44
        8; 9,24,26,37,44,46
        9; 5,20,21,26,31,47
        10; 8,10,22,26,31,37

        $abfrage="SELECT id FROM lotto WHERE
        string in ($zahl1,$zahl2,$zahl3,$zahl4,$zahl5,$zahl6)";

        Die Abfrage funktioniert, jedoch kommt ein Ergebnis raus
        was nicht stinmmen kann. Kann es sein das der "string" nicht erkannt wird?
        Oder was mach ich falsch ?

        Mittlerweile hab ich festgestellt, wenn ich im Eingabefeld Zahlen ohne (,) Komma eingebe, funktioniert die Abfrage, nur mit Komma geht nichts. Wo leigt der Fehler?
        Zuletzt geändert von Tastatur; 23.04.2013, 09:04.

        Kommentar


        • #34
          Zitat von Tastatur Beitrag anzeigen
          Ich hab daher die Datenbank einfacher gestalltet, sie hat jetzt nur 2 Spalten. "id" und "string". In der Spalte string sind die Lottozahlen durch Komma getrennt.
          Das ist großer Quatsch und bringt viele Probleme. Kommando retour.

          Kommentar


          • #35
            Tastatur: Grundlagen von Datenbanken unbedingt lernen und beachten
            Das musste und habe ich auch lernen und verstehen müssen.

            Jeder Datensatz ist eindeutig und nicht irgendein String, der dann per PHP aufgedröselt werden muss. Da brauchste auch keine Datenbank wie MySql für und dann kannte bei Textdateien bleiben. Bei 40.000 Datensätzen:

            Also bleib bei MySql und jede einzelne Zahl ist ein Datenfeld.
            Klar kann man auch mit SQL-Abfragen eine Regex innerhalb eines Strings durchführen, aber das würde deine Kenntnisse übersteigen.
            Solltest du dir das dennoch zutrauen, dann lies dazu das entsprechende Tutorial hier: MySQL :: MySQL 5.1 Referenzhandbuch :: G Beschreibung der MySQL-Syntax für reguläre Ausdrücke

            Wenn du das verstanden hast, dann kannste weiter mit Stringsuche in SQL weitermachen

            Kommentar


            • #36
              Wenn dieser Wert hier " 3,12,13,16,23,41 " in der Datenbank steht und wird in Eingabefeld auch so " 3,12,13,16,23,41 " eingegeben, dann muß er auch gefonden werden.
              Für mich stellt ich die Frage muß ich die Datenbank mit der Spalte "string"
              auf ....
              CHAR ()
              VARCHAR ()
              TINYTEXT
              TEXT
              BLOB
              MEDIUMTEXT
              MEDIUMBLOB
              LONGTEXT
              LONGBLOB
              TINYINT ()
              SMALLINT ()
              MEDIUMINT ()
              INT ()
              BIGINT ()
              FLOAT
              DOUBLE (,)
              DECIMAL (,)

              setzen damit er dies hier " 3,12,13,16,23,41 " erkennt.

              Kommentar


              • #37
                Zitat von Tastatur Beitrag anzeigen
                Für mich stellt ich die Frage muß ich die Datenbank mit der Spalte "string"
                auf ....
                CHAR ()
                VARCHAR ()
                TINYTEXT
                TEXT
                BLOB
                MEDIUMTEXT
                MEDIUMBLOB
                LONGTEXT
                LONGBLOB
                TINYINT ()
                SMALLINT ()
                MEDIUMINT ()
                INT ()
                BIGINT ()
                FLOAT
                DOUBLE (,)
                DECIMAL (,)

                setzen damit er dies hier " 3,12,13,16,23,41 " erkennt.
                Dann lese dir das Handbuch dazu [COLOR=Red]endlich[/COLOR] mal durch. Dann weist du das (hoffentlich)

                Meinen Post oben haste dir sowieso nicht durchgelesen. Geschweige den Hinweis auf REGEX
                Zuletzt geändert von Wasser_Wanderer; 23.04.2013, 16:53. Grund: Wut

                Kommentar


                • #38
                  Wenn doch jeder ein Selbststudium machen soll, wozu braucht er denn dieses Forum ? Das Forum ist dafür da, ohne ein Studium zu betreiben schnelle Hilfe zu haben. Dafür ist ds ganze Internet da. Ich leg euch gleich ein Ei hier in das Forum.
                  Angehängte Dateien

                  Kommentar


                  • #39
                    Zitat von Tastatur Beitrag anzeigen
                    Wenn doch jeder ein Selbststudium machen soll, wozu braucht er denn dieses Forum ? Das Forum ist dafür da, ohne ein Studium zu betreiben schnelle Hilfe zu haben. Dafür ist ds ganze Internet da. Ich leg euch gleich ein Ei hier in das Forum.
                    Ja. Ja. Alles ist umsonst. Auch das vorkauen Anderer?

                    Dann leg dein Ei auf deine Lochkarten.

                    Schnelle Hilfe: Ja. Bekommste hier oft. Hab ich auch schon bekommen.

                    Aber ohne sich mit Grundlagen zu beschäftigen, kommste hier nicht weit.

                    Auto fahren willste, aber keine Fahrschule besuchen bzw. Grundlagen lernen machen?

                    Kommentar


                    • #40
                      Zitat von Tastatur Beitrag anzeigen
                      Wenn doch jeder ein Selbststudium machen soll, wozu braucht er denn dieses Forum ? Das Forum ist dafür da, ohne ein Studium zu betreiben schnelle Hilfe zu haben.
                      Nein, ist es nicht.

                      Kommentar


                      • #41
                        Zitat von Tastatur Beitrag anzeigen
                        Wenn doch jeder ein Selbststudium machen soll, wozu braucht er denn dieses Forum ? Das Forum ist dafür da, ohne ein Studium zu betreiben schnelle Hilfe zu haben. Dafür ist ds ganze Internet da. Ich leg euch gleich ein Ei hier in das Forum.
                        Ich bin zwar noch nicht so sehr lange in diesem Forum aktiv, doch derartige Antworten gehen mir auch auf den Senkel.

                        Ein Forum, unabhängig von der Art und den Schwerpunkten eines Forums, ist zum Austausch von Meinungen gedacht, zum Diskutieren und zur Hilfe zur Selbsthilfe. Die Selbsthilfe besteht nun einmal darin, dass man sich auch mal ein oder zwei Bücher über MySQL besorgt, sich zusätzlich noch weitere Quellen online reinsaugt und wenn man dann an einen Punkt nicht weiter weiß, in einem Forum nachfragt.

                        Also, entweder ist Programmierung Dein Hobby, dann opferst Du auch gern die Zeit dafür und beschäftigst Dich auch mit den Grundlagen und fängst mit einfacheren Anwendungen an. Oder aber Programmierung ist nicht Dein Hobby und Du möchtest nur ein paar Scripts für irgendwelche Seiten, die Geld abwerfen sollen, dann wirst Du keine fertige Lösung kostenlos gebacken bekommen, die all Deinen Vorstellungen gerecht wird und bist in einem Forum fehl am Platze.

                        Sicherlich ist ein Forum auch zur Beantwortung von einzelnen Fragen gut, jedoch dann nur um eine Richtung zu weisen oder einen Tipp zur Lösung zu geben, bei einfacheren Angelegenheiten auch mal einen brauchbaren Lösungsweg aufzuzeigen, nicht aber um etwas auszuarbeiten, wozu ein anderer keine Lust hat.
                        Zuletzt geändert von Melewo; 23.04.2013, 18:23.

                        Kommentar


                        • #42
                          Ich brauche nur ein paar Infos für meine Projektwoche für meine Schüler.
                          Es geht um PHP und SQL Datenbanken als Einführung. Da ich aber noch eine Freundin habe, fehlt mir die Zeit um mich auf das Projekt vorzubereiten. Daher meine andauernden Fragen. Die Antworten die ich erhalten habe, ermöglichten mir, mehr Zeit meinem 1. Hobby zu witmen, nämlich meine Freundin zu begatten.

                          Kommentar


                          • #43
                            Leg’ deine Eier woanders.

                            *close*

                            Noch ein Thread zum gleichen Thema = Zwangspause.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar

                            Lädt...
                            X