SQL abfrage mit bestimmten varaiblen ausführen

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

  • SQL abfrage mit bestimmten varaiblen ausführen

    Hi,
    ich habe ein html formular, über die der user kann paar Variablen aus der DB selectieren, beim senden möchte ich eine SQL Abfrage ausführen, aber nur mit den gesendeten Variablen, also wenn der User name, nachname selectiert hat von 10 select-möglichen, dann soll die SQL Abfrage nur mit diesen Vriablen ausgeführt.

    select $_POST['name'], $_POST['nachname'] aus table

    könnte mir bitte jemand dabei helfen?

    vielen Dank
    Sam.

  • #2
    Hallo,

    mal abgesehen davon, dass du dem Benutzer damit Tür und Tor für Angriffe öffnest, wenn du es nicht richtig machst und dich daher sehr eingehend mit der Materia beschäftigen solltest, sag uns bitte, was genau du wissen willst, wo genau du nicht weiterkommst und was genau du dir selbst schon erarbeitet hast (Codeansätze).

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      SQL Abfrage mit bestimmten Variablen ausführen - Forum: phpforum.de

      Kommentar


      • #4
        hallo,

        vielen Dank für den Antwort, was ich mache ist folgendes: ich habe eine Datenbank und der user kann bestimmte Datenfelder exportieren in einem CSV file, deshalb selectiert er die felder die er haben möchte so:
        <form id="form1" name="form1" method="post" action="index.php">
        <table width="290" border="1">

        <tr>
        <td width="135">name</td>
        <td width="139">
        <input type="checkbox" name="name" value="1" />
        </td>
        </tr>
        <tr>
        <td>nachname</td>
        <td><input type="checkbox" name="nachname" value="2" /></td>
        </tr>
        <tr>
        <td>email</td>
        <td><input type="checkbox" name="email" value="3" /></td>
        </tr>
        <tr>
        <td>plz</td>
        <td><input type="checkbox" name="plz" value="4" /></td>
        </tr>
        </table>

        <label>
        <input type="submit" name="Submit" value="Senden" />
        </label>
        </form>

        die felder die markiert sind werden dann in index.php abgearbeitet:
        ich kann mit if (!empty($_POST['email'])) uzw... oder mit if(isset($_POST['name']))
        die Variablen überprüfen ob sie leer sind oder nicht.
        jetzt genau mein problem ist, eine SQL Abfrage zu machen mit dem nur ausgewählten variablen.

        vielen Dank.

        Kommentar


        • #5
          Bitte bearbeite deinen Beitrag und benutze die Code-Tags!

          Deine Abfrage ist ein String. Strings kann man verketten und daher auch sukzessive zusammenbauen. Wenn eine Variable leer ist, wird der entsprechende Teil einfach nicht eingebaut. Beispiel:

          PHP-Code:
          if (isset($_POST["foo"]) && strlen(trim($_POST["foo"]))) {
              
          $query .= " and `foo`='" myEscape($_POST["foo"]) . "'";

          Die Funktion myEscape ist nur der Platzhalter für die Funktion, die dich vor SQL Injections schützt. Das ist aber je nach DB-Treiber anders implementiert.

          Gruß,

          Amica
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Zitat von AmicaNoctis Beitrag anzeigen
            Bitte bearbeite deinen Beitrag und benutze die Code-Tags!

            Deine Abfrage ist ein String. Strings kann man verketten und daher auch sukzessive zusammenbauen. Wenn eine Variable leer ist, wird der entsprechende Teil einfach nicht eingebaut. Beispiel:

            PHP-Code:
            if (isset($_POST["foo"]) && strlen(trim($_POST["foo"]))) {
                
            $query .= " and `foo`='" myEscape($_POST["foo"]) . "'";

            Die Funktion myEscape ist nur der Platzhalter für die Funktion, die dich vor SQL Injections schützt. Das ist aber je nach DB-Treiber anders implementiert.

            Gruß,

            Amica
            vielen Dank für die schnelle Antwrot!

            Kommentar


            • #7
              Zitat von AmicaNoctis Beitrag anzeigen
              Bitte bearbeite deinen Beitrag und benutze die Code-Tags!
              Zitat von samioli Beitrag anzeigen
              vielen Dank für die schnelle Antwrot!
              Vielen Dank für das völlige Ignorieren von allem, was nicht ausschließlich dir, sondern auch anderen zugute käme!
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                OffTopic:
                Ja, ich glaub der Umgang mit einem Forum muss hier noch erlernt werden:

                1. Keine Crosspostings
                2. Kein Full-Quotes
                3. Lösung posten

                Kommentar

                Lädt...
                X