Abfrage funktioniert nicht

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

  • wahsaga
    antwortet
    Leg’ deine Eier woanders.

    *close*

    Noch ein Thread zum gleichen Thema = Zwangspause.

    Einen Kommentar schreiben:


  • Tastatur
    antwortet
    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.

    Einen Kommentar schreiben:


  • Melewo
    antwortet
    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.

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    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.

    Einen Kommentar schreiben:


  • Wasser_Wanderer
    antwortet
    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?

    Einen Kommentar schreiben:


  • Tastatur
    antwortet
    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

    Einen Kommentar schreiben:


  • Wasser_Wanderer
    antwortet
    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

    Einen Kommentar schreiben:


  • Tastatur
    antwortet
    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.

    Einen Kommentar schreiben:


  • Wasser_Wanderer
    antwortet
    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

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    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.

    Einen Kommentar schreiben:


  • Tastatur
    antwortet
    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.

    Einen Kommentar schreiben:


  • Guenni61
    antwortet
    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"?

    Einen Kommentar schreiben:


  • Tastatur
    antwortet
    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.

    Einen Kommentar schreiben:


  • Guenni61
    antwortet
    Was sind denn "solche Datensätze"? Was unterscheidet die denn von anderen?

    Einen Kommentar schreiben:


  • Tastatur
    antwortet
    Das Problem das die Zahlen drin stehen bleiben habe ich so gelöst.

    <input type="text" name="zahl1" value="<?php echo $_POST['zahl1']; ?>" />

    Zahlen Array abfragen
    Wie kann ich einen Zahlen Array bei einer Datenbank Abfragen?
    Es soll unten stehende 12 Datensätze bei einer bestehenden Datenbank
    die auch solche Datensätze enthält abgefragt werden.

    Wer hat hier eine Lösung wie die Abfrage gestaltet werden kann?

    11,49,35,34,1,26
    36,9,28,3,37,32
    17,39,6,18,26,35
    36,40,1,44,19,25
    28,2,4,35,5,27
    43,20,48,42,10,4
    37,34,18,2,10,22
    20,27,34,43,24,47
    37,49,28,3,24,23
    10,25,29,14,12
    36,25,7,21,29,5
    37,35,1,17,48,4

    Elegant wäre es, wenn man in eine Eingabefeld die Zahlenkolonnen mit paste und copy
    einfügen könnte.

    Einen Kommentar schreiben:

Lädt...
X