Fehlerhafte Abfrage...

Lacternobite

Grünschnabel
Hallo,

ich will eine Liste der meistbesuchten Auktionen ausgeben lassen. Damit ich nicht in jeder Datei, die diese Liste benötigt, die Eintragung manuell machen muss, habe ich folgendes versucht:

PHP:
$query = mysql_query ("SELECT objekt FROM i_auctions WHERE closed = 0 ORDER by itemcounter DESC");
$objekt = mysql_result ($query);

     if ( $objekt == 0 ){
$objekt = "Einfamilienhaus";
}elseif ( $objekt == 1 ){
$objekt = "Zweifamilienhaus";
...
...

Die Ausgabe erfolgt per

PHP:
print $objekt

Jedoch ist in der Abfrage ein Fehler, weil:

Ergibt Abfrage = 0, dann ist $objekt=einfamilienhaus.
Ist die 2. Abfrage =1, dann ist $objekt aber immer noch Einfamilienhaus, da $objekt bereits definiert wurde...

Wie kann ich das ändern ?
 
Zuletzt bearbeitet:
Ich denke mal du hast schon eine Verbindung zur Datenbank oder?

Ich würde das so auslesen:

Code:
$query="SELECT objekt FROM i_auctions WHERE closed = 0 ORDER by itemcounter DESC";
$result=mysql_query($query);
$row=mysql_fetch_array($result, MYSQL_ASSOC);

if ( $row['objekt'] == 0 ){ 
$objekt = "Einfamilienhaus"; 
}elseif ( $row['objekt'] == 1 ){ 
$objekt = "Zweifamilienhaus";
 
- Datenbankverbindung vorhanden.

Das scheint nicht ganz zu klappen:

PHP:
$query="SELECT objekt FROM i_auctions WHERE closed = 0 ORDER by itemcounter DESC";
$result=mysql_query($query);
$row=mysql_fetch_array($result, MYSQL_ASSOC);


     if ( $row['objekt'] == 0 ){
$objekt0 = "Einfamilienhaus";
}elseif ( $row['objekt'] == 1 ){
$objekt1 = "Zweifamilienhaus";
}elseif ( $row['objekt'] == 2 ){
$objekt2 = "Reihenhaus";
...
...
...
}elseif ( $row['objekt'] == 32 ){
$objekt32 = "Baugrundstück unerschlossen";
}else
$objekt33 = "Landwirtschaftliche Fläche";

In der ausgebenden Datei:

PHP:
print $objekt;


Ausgabe:

Alle Objekte werden Wohnanlage

PHP:
}elseif ( $row['objekt'] == 19 ){
$objekt19 = "Wohnanlage";

Stimmt also irgendetwas nicht....

Gehen wir davon aus, dass das meistbesuchte Objekt = 19 = Wohnanlage ist.

Ist die zweit-meistbesuchte Auktion z.B. 0 = Einfamilienhaus, ist das irrelevant weil $objekt = Wohnanlage zugewiesen wurde....
 
Zuletzt bearbeitet:
Ich verstehe immer noch nicht ganz, was das Ziel der Abfrage ueberhaupt ist, aber was ich so sehe schreit
a) nach einer zweiten Tabelle oder einem weitern Feld in der ersten, das die Bezeichnung wie "Einfamilienhaus" entaehlt
b) nach Arrays; Sobald du etwas wie $var1, $var2 etc.. hast, ist das ein fast untruegliches Zeichen dafuer, dass du das mit [phpf]array[/phpf]s besser machen kannst.

Ich glaube du sucht vielleicht so etwas:
PHP:
$sql = "SELECT
        itemcounter AS Anzahl,
        objektname AS Name
    FROM
        i_auctions
    WHERE
        closed = 0
    ORDER BY
        itemcounter DESC
    LIMIT
        0,10; "; // Die 10 meistaufgerufenen
 
$result=mysql_query($sql); 
while ($row = mysql_fetch_assoc($result)) {
    echo $row['Name'].': '.$row['Anzahl'];
}

Du musst halt noch ein Feld in der DB einrichten, das den Namen des Objekt enthaelt, dann sparst du dir das Pruefen auf die Zahlen im PHP Code.
 
Code:
LIMIT 
        0,10; "; // Die 10 meistaufgerufenen

Nur sicherheitshalber.... bedeutet 0,10 nicht die 11 meistaufgerufenen Objekte ?
0 ist doch schon der erste Wert...

oder versteh ich jetzt was falsch ?

Das Ziel dieser Abfrage ist, nicht in jeder Datei ellenlange Zeilen für die Zuweisung des Objekttyps anzuhängen.

Deshalb versuche ich, den Objektnamen per sql-Abfrage in einer objekt.inc.php abzufragen und diese objekt.inc.php dann einfach in jede Datei, die diese Abfrage benötigt, zu includen.
Dadurch spare ich mir ziemlich viel an Dateigrösse....

Aber momentan funktioniert es noch nicht so, wie es soll....


Muss noch was dazu sagen:

Die Abfrage ist bereits vorhanden, aber wie gesagt, jetzt möchte ich, dass die Objektnamen der einzelnen Auktionen ordnungsgemäss angezeigt werden....
 
Zuletzt bearbeitet:
Zurück