Datenbankabfrage

Didito
Möchte in meine Seite eine Datenbankabfrage machen.

Und zwar dass nur die Artikel angezeigt werden, wo die Spalte rent ausgefüllt ist.

Wenn die Spalte rent nicht ausgefüllt ist, soll der Artikel da nicht erscheinen.


Habe sowas ähnliches mit, zeigt die xx neusten Artikel an.

Hier de Quellcode:

<?
if(!isset($seitenid)){ header("Location: ./."); }

if(!$info) { $info = False; }
if(!$proseite) { $proseite = 15; }

$result = mysql_query("SELECT id, name, cds, laenge, sprache, datum, abmessung, format, genre, groesse, ton, bild, rent FROM ".$dbtblpre."film_name ORDER BY id DESC LIMIT 0, $proseite");
$nr = $proseite;
while ($row = mysql_fetch_row($result)){
$tag = substr($row[5],4,5);
$monat = substr($row[5],2,2);
$jahr = substr($row[5],0,2);
$datum = "$tag.$monat.$jahr";
echo film_table($nr--,$row[1],TRUE,$row[2],$row[3],$row[0],$row[4],$datum,$row[6
],$row[7],$row[8],$row[9],$row[10],$row[11],$row[12],'','');
}
echo "<br>";


?>


Kann mir jemand das so machen wie ich es oben beschrieben habe?
[kamui]
1. Den Code bitte innerhalb des BBCodes [ PHP ] einfügen.

2. Dein Skript ist XSS gefährdert, durch das $proseite. Das werde ich aber jetzt nicht editieren, da ich den Sinnzusammenhang nicht kenne.

3. Dein Skript ist nicht wirklich schön geschrieben, bei einzeiligen if-Abfragen kannst du die geschweiften Klammern weglassen, einrücken, ... Außerdem kannst du auch, wenn du nicht alle Felder bei dem SELECT angeben willst ein Sternchen (" * ") angeben (das holt dann alle Felder heraus)

4. Wenn du anstatt mysql_fetch_row, mysql_fetch_array nimmst, kannst du die Felder später betiteln

5. Wenn ich dich richtig verstehe müsste das ganze so aussehen:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
<?
# ...

$result mysql_query("SELECT * FROM ".$dbtblpre."film_name ORDER BY id DESC LIMIT 0, ".$proseite);
$nr $proseite;
while ($row mysql_fetch_array($result)){
  if (!empty($row['rent'])) {
    # wenn rent ausgeführt ist, das hier ausführen
  }
}
echo "<br>";
?>
xundy
Dem meisten was Kamui sagte stimme ich zu,
ausser das mit den einzeiligen Ifabfragen, alleine der Übersichtlichkeit wegen und einfacherer Erweiterbarkeit sollte man diese immer verwenden, allerdings dann mit Zeilenumbruch und Einrückung(aber das ist eher KosmetischAugenzwinkern .

Aber die Abfareg von Kamui läßt sich gleich so formulieren das man die ifabfrage nicht benötigt:
code:
1:
2:
3:
4:
5:
6:
$result = mysql_query("SELECT * FROM ".$dbtblpre."film_name WHERE `rent`!='' ORDER BY id DESC LIMIT 0, ".$proseite);
$nr = $proseite;
while ($row = mysql_fetch_array($result)){
 #Hier nun das Auswerten der Daten
}
echo "<br>";


mfg
[kamui]
@xundy, ich wusste nicht genau, ob man das != auch gleich in den Query schreiben kann Zunge raus

Aber durch xundys Methode holt er automatisch weniger aus der Datenbank und die Ladezeit müsste sich dadurch auch verkürzen.
Didito
Super funktioniert beides.