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)
Suche nach ID funktioniert nicht für alle IDś [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Suche nach ID funktioniert nicht für alle IDś


 
terzart
03-07-2010, 16:15 
 
Warum werden die einen Datensätze richtig erkannt, andere nicht?
Aufgabe ist die Selektion nach Technik oder Motiv meiner Bilder, dazu habe ich folgenden einfachen Code geschrieben:

<?php
...
if (!empty ($_GET))
$query = "SELECT b.*, m.description AS medium, t.description AS technik FROM bilder b,
medium m, technik t WHERE b.medium_id = m.id AND b.technik_id = t.id AND
b.technik_id = " .
$_GET['sel'] ;
else
$query = "SELECT b.*, m.description AS medium, t.description AS technik FROM bilder b,
medium m, technik t WHERE b.medium_id = m.id AND b.technik_id = t.id AND
b.technik_id = " . 1;
// echo $query;

$res = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

$row = mysql_fetch_array($res)
?>
aufgerufen wird das ganze durch folgende Schnipsel:

<li><a href="technik.php?sel=3">KaltnadelRadierung</a></li>
<li><a href="technik.php?sel=10">&Auml;tzRadierung</a></li>
<li><a href="technik.php?sel=11">Aquatinta</a></li>
<li><a href="technik.php?sel=6">Mezzotinto</a></li>
<li><a href="technik.php?sel=15">Punzenstich</a></li>
<li><a href="technik.php?sel=16">Vernis mou</a></li>
das oben auskommentierte echo $query gibt den richtigen Wert aus, aber leider kommt es zu keiner Anzeige der Daten bei 4 von 6 Möglichkeiten, die beiden anderen funktionieren. wobei die letztere nur für ein Bild statt, wie eingegeben 3.
Was habe ich falsch gemacht?

 
combie
03-07-2010, 16:58 
 
Vermutlich verwendest du den falschen Spaltentype. Und SQL-Injctions läßt du auch zu.

 
terzart
04-07-2010, 07:34 
 
Danke für die schnelle Antwort. Aber....

so eine kurze Antwort und gleich 2 Fragen
die ..._id ist - ja da war ich ungenau verschieden. einige sind int(15), andere vcar; aber bei beiden Typen habe ich das gleiche Problem, einige werden angenommen, andere nicht.
welchen Typ muss ich denn nehmen?
und was bedeutet SQL-Injctions bzw welches Problem kann das verursachen?

mmmm bin eben doch ein DAU mit nichtmal Halbwissen.

 
h3ll
04-07-2010, 07:42 
 
Danke für die schnelle Antwort. Aber....

so eine kurze Antwort und gleich 2 Fragen
die ..._id ist - ja da war ich ungenau verschieden. einige sind int(15), andere vcar; aber bei beiden Typen habe ich das gleiche Problem, einige werden angenommen, andere nicht.
welchen Typ muss ich denn nehmen?

Für nummerische IDs immer Integer nehmen.

und was bedeutet SQL-Injctions bzw welches Problem kann das verursachen?

Das ist eine der meist ausgenützten Sicherheitslücken. Zudem können Fehler entstehen, wenn du Texte mit bestimmten Zeichen (zB. Hochkomma) in die Datenbank speichern willst.

PHP: SQL Injection - Manual (http://php.net/manual/de/security.database.sql-injection.php)
SQL-Injection - Wikipedia (http://de.wikipedia.org/wiki/SQL-Injection)

mmmm bin eben doch ein DAU mit nichtmal Halbwissen.

Aber für Grundlagenunterricht sind Foren üblicherweise nicht zuständig.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:05 Uhr.