Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
SQL abfrage mit bestimmten varaiblen ausführen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
SQL abfrage mit bestimmten varaiblen ausführen


 
samioli
18-01-2010, 00:50 
 
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

 
h3ll
18-01-2010, 02:40 
 
SQL Abfrage mit bestimmten Variablen ausführen - Forum: phpforum.de (http://phpforum.de/forum/showthread.php?p=1371012)

 
samioli
18-01-2010, 08:59 
 
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

 
samioli
18-01-2010, 11:57 
 
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:

 
TobiaZ
18-01-2010, 15:08 
 
Ja, ich glaub der Umgang mit einem Forum muss hier noch erlernt werden:

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


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:36 Uhr.