Ankündigung

Einklappen
Keine Ankündigung bisher.

Join Problem, HTML Tabellenbelegung abfragen

Einklappen

Neue Werbung 2019

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

  • Join Problem, HTML Tabellenbelegung abfragen

    Hallo

    Ich habe habe eine Tabelle in der 500 Zahlen aus einer Datenbank stehen (1-500). Anfangs sind alle Felder frei und man kann ein Feld anklicken und kann es so reservieren. Auf einer neuen Seite wird der Wert des Feldes z.B. 43 übernommen und man trägt hier in ein Formular seine Daten wie Vorname, Nachname und ein Radiobutton für die Veröffentlichung seines Names ein. Mit dem Klick auf abschicken werden die Daten in eine MySQL DB geschrieben und zusätzlich das Feld "feldfrei" auf false gesetzt. Somit kann dieses Feld nicht mehr reserviert werden. Jedoch soll hier nun eine Abfrage gestartet werden, dass die Person ausgibt, die dieses Feld registriert hat. Aber nur im Falle der Radiobuttonoption "ja" (für veröffentlichen).

    Ich habe zwei Tabellen.

    Feld:
    feld (Zahlen von 1-500 = id)
    feldfrei (wird gesetzt sobald ein nutzer dieses feld registriert)
    nutzer(id des nutzers aus der tabelle nutzer = fremdschlüssel)

    Nutzer
    id (primärschlüssel)
    vorname
    nachname
    veroeffentlichen
    feld (feld, welches der user registriert hat = fremdschlüssel)

    Ich übergebe jetzt mittels PHP die feldnummer aus tabelle feld (wer.php?feld=xxx) xxx=nummer der auswahl

    Auf der wer.php mache ich folgende Selectanweisung

    SELECT p.vorname, p.nachname, p.veroeffentlichen, f.feld FROM A_parzelle p, A_feld f WHERE p.feld = f.feld AND veroeffentlichen = 1

    Ich bekomme aber immer nur den einen Wert bei dem veröffentlichen auf 1 gesetzt ist und das bei allen Feldern. Bsp.: Ich habe feld 44 registriert und veroeffentlichen auf 1 gesetzt (=ja) und feld 55 registriert und hier veroeffentlichen auf 0 gesetzt (=nein). Wenn ich jedoch die 55 anklicke erscheint der Name und das Feld 44.... Wie muss ich hier vorgehen, dass er immer das aktuelle Feld abfragt. Ich übergebe es zwar, aber wie kann ich mit diesem übergebenen Wert in der Selectanweisung arbeiten? Ist diese Selectanweisung so überhaupt richtig?

    Danke schonmal!

  • #2
    Zitat von zzzboard Beitrag anzeigen
    Auf der wer.php mache ich folgende Selectanweisung

    SELECT p.vorname, p.nachname, p.veroeffentlichen, f.feld FROM A_parzelle p, A_feld f WHERE p.feld = f.feld AND veroeffentlichen = 1

    Ich bekomme aber immer nur den einen Wert bei dem veröffentlichen auf 1 gesetzt ist und das bei allen Feldern. Bsp.: Ich habe feld 44 registriert und veroeffentlichen auf 1 gesetzt (=ja) und feld 55 registriert und hier veroeffentlichen auf 0 gesetzt (=nein). Wenn ich jedoch die 55 anklicke erscheint der Name und das Feld 44.... Wie muss ich hier vorgehen, dass er immer das aktuelle Feld abfragt. Ich übergebe es zwar, aber wie kann ich mit diesem übergebenen Wert in der Selectanweisung arbeiten? Ist diese Selectanweisung so überhaupt richtig?

    Danke schonmal!
    Du mußt halt die Condition "feld = 44" mit in Dein WHERE reinfrickeln...


    Andreas

    Kommentar


    • #3
      Ja das stimmt schon, aber dieser Wert variiert ja je nachdem welches Feld ich angeklickt habe... Ich übergebe diesen Wert ja auch. Aber wie kann ich diesen in die Selectanweisung mit einbauen...

      haben ja wer.php?feld=44 und die 44 ist ja nur bei einem Klick auf 44 der Fall, wenn aber ein anderer Nutzer z.B. Feld 142 registriert und seinen Namen auch veröffentlicht, dann sieht es ja so aus: wer.php?feld=142 usw.. Ich möchte diesen Wert in der Selectanweisung prüfen.

      Kommentar


      • #4
        Zitat von zzzboard Beitrag anzeigen
        Ja das stimmt schon, aber dieser Wert variiert ja je nachdem welches Feld ich angeklickt habe... Ich übergebe diesen Wert ja auch. Aber wie kann ich diesen in die Selectanweisung mit einbauen...

        haben ja wer.php?feld=44 und die 44 ist ja nur bei einem Klick auf 44 der Fall, wenn aber ein anderer Nutzer z.B. Feld 142 registriert und seinen Namen auch veröffentlicht, dann sieht es ja so aus: wer.php?feld=142 usw.. Ich möchte diesen Wert in der Selectanweisung prüfen.
        Ja. es reicht halt nicht, den Wert an das Script zu übergeben und dann im SQL zu ignorieren. Kannst bis jetzt folgen? Also wirst Du (nach Plausibilitätsprüfung des Wertes) ihn sicher (um SQL-Injection zu vermeiden) in die WHERE-Bedingung einbauen müssen. Solche trivial-PHP-Konstrukte findest Du in jedem Anfängerhandbuch, das muß ich jetzt sicher nicht hier vorlesen, oder?

        Andreas

        Kommentar


        • #5
          Ja da liegt mein Problem. Ich bekomme es nicht hin die übergebenen Werte in der SQL Abfrage anzusprechen. Hab leider hierdrüber nichts gefunden.

          Ich habe jetzt sowohl das feld als auch den kaeufer an das Skript übergeben. Diese Werte sind aus der Tabelle "A_feld". In dem Skript müssen diese Werte ja dann verknüpft werden (SELECT Anweisung). Also der übergebene Wert kaeufer entspricht der ID in der Tabelle "A_parzelle". Kannst du mir diesbezüglich noch auf die Sprünge helfen.

          SELECT p.vorname, p.nachname, p.veroeffentlichen, f.feld FROM A_parzelle p, A_feld f WHERE f.kaeufer = p.id AND p.veroeffentlichen = 1;

          Hier erhalte ich aber leider die Ausgabe, der komplett bei veroeffentlichen auf 1 gesetzten Namen, ich will aber nur prüfen, ob auf dem aktuellen Feld der veroeffentlichung zugestimmt wurde.

          Kommentar


          • #6
            Zitat von zzzboard Beitrag anzeigen
            Ja da liegt mein Problem. Ich bekomme es nicht hin die übergebenen Werte in der SQL Abfrage anzusprechen. Hab leider hierdrüber nichts gefunden.

            Ich habe jetzt sowohl das feld als auch den kaeufer an das Skript übergeben. Diese Werte sind aus der Tabelle "A_feld". In dem Skript müssen diese Werte ja dann verknüpft werden (SELECT Anweisung). Also der übergebene Wert kaeufer entspricht der ID in der Tabelle "A_parzelle". Kannst du mir diesbezüglich noch auf die Sprünge helfen.

            SELECT p.vorname, p.nachname, p.veroeffentlichen, f.feld FROM A_parzelle p, A_feld f WHERE f.kaeufer = p.id AND p.veroeffentlichen = 1;

            Hier erhalte ich aber leider die Ausgabe, der komplett bei veroeffentlichen auf 1 gesetzten Namen, ich will aber nur prüfen, ob auf dem aktuellen Feld der veroeffentlichung zugestimmt wurde.
            http://bit.ly/wb40g3

            2. Frage: Dein WHERE hat bereits 2 Bedingungen, durch AND verknüpft. Du willst eine 3. Bedingung, auch mit AND verknüpft. Schaffst Du es nun selber?

            Andreas

            Kommentar


            • #7
              wusste nicht, dass man $var einfach in die SELECT Anweisung schreiben kann. tz...

              Danke jetzt gehts!

              Kommentar

              Lädt...
              X