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.
AmicaNoctis
18-01-2010, 01:38
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
SQL Abfrage mit bestimmten Variablen ausführen - Forum: phpforum.de (http://phpforum.de/forum/showthread.php?p=1371012)
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.
AmicaNoctis
18-01-2010, 09:08
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:
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
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:
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!
:huep:
AmicaNoctis
18-01-2010, 14:54
Bitte bearbeite deinen Beitrag und benutze die Code-Tags!
vielen Dank für die schnelle Antwrot!
:huep:
Vielen Dank für das völlige Ignorieren von allem, was nicht ausschließlich dir, sondern auch anderen zugute käme! :mad:
Ja, ich glaub der Umgang mit einem Forum muss hier noch erlernt werden:
1. Keine Crosspostings
2. Kein Full-Quotes
3. Lösung posten