MiSo: Serverseitig SQL-Abfragen mit aufruf von webseite

Sorry, ich wusste nicht so genau, wie ich das Thema bezeichnen soll. Mir gehts darum, dass der Benutzer der webseite irgendwas anklicken kann, sagen wir nen Link und anschließend unsichtbar für den Benutzer eine SQL-Abfrage ausgeführt wird.
Üblicherwerweise macht mans ja mit Seite neu laden & PHP aber das kanns ja nicht sein, oder?

Klärt mich mal auf, ich hab da keine Ahnung von.

mfg
Micha

  1. Hi,

    Üblicherwerweise macht mans ja mit Seite neu laden & PHP

    diese Behauptung ist absolut falsch. Üblicherweise macht man das mit den Anfordern einer _neuen_ Seite und einer serverseitigen Technik - egal welcher.

    aber das kanns ja nicht sein, oder?

    Natürlich kann es das sein, warum denn nicht? Wenn Du Dir die neue Seite sparen möchtest, kannst Du es ggf. mit AJAX versuchen.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Ich dachte bereits erwähnt zu haben, dass ich davon nicht den blassesten schimmer habe; es wäre also nett von dir dich etwas genauer auszudrücken. Was gibts da für Geschichten neben Ajax? Wie greift man mit Ajax überhaupt auf MySQL zu? Üblicherweise mach ichs mit PHP; Ajax ruft afaik in X(HT)ML Dokumenten funktionen auf; gehts auch mit funktionen in PHP docs aufrufen?
      Links wären auch hilfreich.

      mfg
      Micha

      1. Hallo,
        was spricht dagegen die gleiche Seite mit dem Link nochmal aufzurufen und mit dem Link einen GET Parameter zu übergeben und wenn dann dies der Fall ist deine SQL Abfrage zu starten.
        Gruß Jan

        1. was spricht dagegen die gleiche Seite mit dem Link nochmal
          aufzurufen und mit dem Link einen GET Parameter zu übergeben?

          Die Tatsache, dass die Seite neu geladen werden muss. Schon mal probiert bei ner riesigen Kundendatenbank ein Paar Tabellen zu zeichnen? Der Seitenaufbau geht bis zu 10 Sekunden. Wenn die geschichte dann jedes mal neu geladen wird wenn du sagen wir nen Kunden löschen willst hat man seinen Spass...

          mfg
          Micha

          1. Die Tatsache, dass die Seite neu geladen werden muss. Schon mal probiert bei ner riesigen Kundendatenbank ein Paar Tabellen zu zeichnen?

            Diese Tatsache konnte mir aber nicht bekannt sein, da sie aus deinem ertsen Posting nicht hervorging!
            Vielleicht solltest du deine Frage mal präzisieren!
            Kai

          2. habe d'ehre MiSo

            Die Tatsache, dass die Seite neu geladen werden muss. Schon mal probiert bei ner riesigen Kundendatenbank ein Paar Tabellen zu zeichnen? Der Seitenaufbau geht bis zu 10 Sekunden. Wenn die geschichte dann jedes mal neu geladen wird wenn du sagen wir nen Kunden löschen willst hat man seinen Spass...

            Klar, wenn man nach loeschen eines Datensatzes wieder die riesige Kundendatenbank neu durchnudelt wuerde ich mir an Deiner Stelle einen anderen Ansatz fuer Deine Applikation ueberlegen.

            Welche Ausmasse hat eigentlich "riesig"?

            man liest sich
            Wilhelm

            1. Welche Ausmasse hat eigentlich "riesig"?

              Ach... so 10-11k an Einträgen. Wird zwar per LIMIT so geregelt, dass nicht zu viel auf einmal kommt, der Aufbau ist trotzdem Elend lang wenn man, sagen wir mal, 100 Datensätze pro Seite betrachten will.

              mfg
              Micha

              1. habe d'ehre MiSo

                Ach... so 10-11k an Einträgen. Wird zwar per LIMIT so geregelt, dass nicht zu viel auf einmal kommt, der Aufbau ist trotzdem Elend lang wenn man, sagen wir mal, 100 Datensätze pro Seite betrachten will.

                Naja, riesig definiere ich anders. :-)
                Wenn das Ganze dann noch in einem internen Netzwerk laeuft ist eine Validierung Deiner Applikation anzuraten (Datenmodell, Codeoptimierung etc.).

                man liest sich
                Wilhelm

          3. Hallo,

            was spricht dagegen die gleiche Seite mit dem Link nochmal
            aufzurufen und mit dem Link einen GET Parameter zu übergeben?

            Die Tatsache, dass die Seite neu geladen werden muss. Schon mal probiert bei ner riesigen Kundendatenbank ein Paar Tabellen zu zeichnen? Der Seitenaufbau geht bis zu 10 Sekunden. Wenn die geschichte dann jedes mal neu geladen wird wenn du sagen wir nen Kunden löschen willst hat man seinen Spass...

            Abgesehen davon, dass der Benutzer in irgendeiner Form über die gerade durchgeführten Änderungen informiert werden will bzw. soll, gibt es immer noch den HTTP Status Code 204, der, einen hinreichend standard-konformen Browser vorasgesetzt, dafür sorgt, dass sich der Inhalt am Client nicht aktualisiert.

            Grüße
              Klaus

          4. Hi,

            Wenn die geschichte dann jedes mal neu geladen wird wenn du sagen wir nen Kunden löschen willst hat man seinen Spass...

            wenn man einen Kunden löschen will - was ich grundsätzlich für sehr löblich halte - sollte man in der Tat die Wasserpistole nicht erst neu laden müssen. Was den Spaß betrifft, überlasse ich das mal lieber den persönlichen Neigungen.

            Cheatah, SCNR

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
      2. Hi,

        Üblicherweise mach ichs mit PHP; Ajax ruft afaik in X(HT)ML Dokumenten funktionen auf; gehts auch mit funktionen in PHP docs aufrufen?

        das solltest du dir nochmal genauer anschauen.

        1. X(HT)ML-Dokumente haben keine Funktionen, aber das nur am Rande
        2. Mit AJAX führt man einen Request aus, genau so wie das Laden einer Webseite ein Request ist. Ob dir da am Server ein JSP, ASP, PHP oder HTML Dokument antwortet ist zunächst mal ohne Belang.

        Du kannst also per AJAX dein PHP-Skript anstoßen und die entsprechenden Operationen ausführen lassen.

        MfG
        Rouven

        --
        -------------------
        Death is nature's way of telling you to slow down.
        1. gruss("Rouven");

          Also könnt ich theoretisch gesehen auch, wenn ich sagen wir mal nen Datensatz löschen will, das ganze so einstellen, dass der Link eine JS-Funktion auslöst, die ein Skript "delete.php" aufruft mit ner ID oder sonst was als POST übergeben, welches dann was löscht (im Hintergrund, ohne dass der Benutzer was davon mitbekommt) und den Datensatz dann anschließend über z.B. CSS ausblenden?

          mfg
          Micha

          1. Hi,

            Also könnt ich theoretisch gesehen auch, wenn ich sagen wir mal nen Datensatz löschen will, das ganze so einstellen, dass der Link eine JS-Funktion auslöst, die ein Skript "delete.php" aufruft mit ner ID oder sonst was als POST übergeben, welches dann was löscht (im Hintergrund, ohne dass der Benutzer was davon mitbekommt) und den Datensatz dann anschließend über z.B. CSS ausblenden?

            genau, du solltest dabei noch entsprechend ein XML o.ä. Dokument zurückliefern, so dass deine JS erkennen kann, ob der Löschvorgang auch wirklich erfolgreich war bzw. anderweitig Fehlerinformationen anzeigen kann.

            MfG
            Rouven

            --
            -------------------
            "I wish it need not have happened in my time" - "So do I, and so do all who live to see such times. But that is not for them to decide. All we have to decide is what to do with the time that is given us."  --  J.R.R. Tolkien: "The Lord Of The Rings: The Fellowship Of The Ring"
  2. habe d'ehre MiSo

    Sorry, ich wusste nicht so genau, wie ich das Thema bezeichnen soll. Mir gehts darum, dass der Benutzer der webseite irgendwas anklicken kann, sagen wir nen Link und anschließend unsichtbar für den Benutzer eine SQL-Abfrage ausgeführt wird.

    Duerfte auch schwierig sein, einem MySQL beim abrattern der Daten zuzuschauen.

    Üblicherwerweise macht mans ja mit Seite neu laden & PHP aber das kanns ja nicht sein, oder?

    Nach dem der Benutzer wie Du sagst etwas anklicken soll, gehe ich davon aus, dass dieser Benutzer auch das Ergebnis seines Klicks sehen soll. Ergo muss der Server irgendwas zurueckliefern, egal wie Du das regelst. Einfach nur Links anklicken ohne was zu sehen halte ich persoenlich fuer extrem langweilig. Wenn ich auf der Fernbedienung meines TV-Geraetes die Taste 2 druecke, erwarte ich ja auch das dahinter gespeicherte Programm zu sehen. Wie das entsprechende Programm dann auf meinen Bildschirm kommt? Ist mir voellig egal![1]

    man liest sich
    Wilhelm

    [1] Nein, ich will jetzt keine Abhandlung von Elektroden, Roehrensignalen und sonstigem elektrotechnischen Krimskrams. :-)