Flashhilfe.de - Flash Community

Daten mit verschiednen Values auslesen

 


AntwortenRegistrieren Seite1  

antonio2604#1
Benutzerbild von antonio2604
Beiträge: 287
Wohnort: osnabrück
Registriert: Sep 2002

06.01.2009, 12:35

Hi ich weiß nicht genau wie ich es beschreiben soll ,
ich habe eine mysql Tabelle mit folgenden feldern

attribute_id / value
60 / blabla
61 / blabla
62 / blabla
63 / blabla
64 / blabla
jetzt  möchte ich die felder mit der Attribute_id 60 & 64 anzeigen lassen

WHERE attribute_id=60 AND attribute_id=64

Doch irgendwie bekomme ich kein Ergebniss.
Kann mir da jemand helfen ?

Danke schon mal vorab
mathis#2
Benutzerbild von mathis
Beiträge: 1443
Wohnort: bei Kiel
Registriert: Aug 2005

06.01.2009, 12:50

attribute_id hat immer nur einen Wert und kann nicht 60 und 64 gleichzeitig annehmen.
Mit einem OR statt dem AND bekommst du beide Datensätze.
ActionScript:
1WHERE attribute_id=60 OR attribute_id=64

mathis
antonio2604#3
Benutzerbild von antonio2604
Beiträge: 287
Wohnort: osnabrück
Registriert: Sep 2002

Themenautor/in

06.01.2009, 13:52

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Anfrage an Tabelle sales_flat_order_item
$selectall="
SELECT
a.entity_id , a.sku , a.category_ids , b.product_id , b.qty , c.entity_id AS price_entity , c.attribute_id , c.value
FROM
catalog_product_entity a
INNER JOIN
cataloginventory_stock_item b ON b.product_id = a.entity_id
INNER JOIN
catalog_product_entity_decimal c ON c.entity_id = b.product_id
WHERE
a.category_ids =5 AND c.attribute_id=60 OR c.attribute_id=64 "
;
$selectallergebnis = mysql_query($selectall);


// Tabellenkopf
echo "<table border=1>";
echo "<tr>";
echo "<td bgcolor=#cccccc>SKU</td>";
echo "<td bgcolor=#cccccc>ID</td>";
echo "<td bgcolor=#cccccc>Category</td>";
echo "<td bgcolor=#cccccc>Menge</td>";
echo "<td bgcolor=#cccccc>Menge ID</td>";
echo "<td bgcolor=#cccccc>EK-Preis</td>";
echo "<td bgcolor=#cccccc>EK-Preis ID</td>";
echo "<td bgcolor=#cccccc>UVP</td>";
echo "</tr>";

//anzeigen der Daten
while ($zeile = mysql_fetch_object($selectallergebnis)){
echo "<tr>";
echo "<td>$zeile->sku</td>";
echo "<td>$zeile->entity_id</td>";
echo "<td>$zeile->category_ids</td>";
echo "<td>$zeile->qty</td>";
echo "<td>$zeile->product_id</td>";
echo "<td>$zeile->value</td>";
echo "<td>$zeile->price_entity</td>";
echo "<td>$zeile->value</td>";
echo "</tr>";
}
// Ende der Tabelle
echo"</table>";


Das ist meine Datenbank Abfrage
Jetzt möchte ich aber das beim Zweiten
echo "<td>$zeile->value</td>";
der Wert mit dem attribute_id=64 angezeigt wird.
Ich bekomme es einfach nicht hin.

Danke für eure Hilfe
mathis#4
Benutzerbild von mathis
Beiträge: 1443
Wohnort: bei Kiel
Registriert: Aug 2005

06.01.2009, 14:00

Was wrd denn jetzt beim zweiten Durchlauf angezeigt, gibt es berhaupt einen 2. ?
Und wie viele sind es jetzt insgesamt?

Teste mal mit Klammern
ActionScript:
1a.category_ids =5 AND (c.attribute_id=60 OR c.attribute_id=64)

Ich kenne mich mit SQL nicht so gut aus, aber ansonsten sieht mir das richtig aus.

mathis
antonio2604#5
Benutzerbild von antonio2604
Beiträge: 287
Wohnort: osnabrück
Registriert: Sep 2002

Themenautor/in

06.01.2009, 14:04

Ich habe beim EK-Preis und beim UVP immer den geleichn wert stehen.
Jedoch steht in der DB zwei unterschiedliche werte.
antonio2604#6
Benutzerbild von antonio2604
Beiträge: 287
Wohnort: osnabrück
Registriert: Sep 2002

Themenautor/in

06.01.2009, 14:21

Er zeigt das jetzt So an !

SKU           ID         Category   Menge   Menge ID   EK-Preis   UVP           EK-Preis ID
6150478   32905   5,73         20.0000   32905   17.5500   17.5500   32905
6150478   32905   5,73         20.0000   32905   29.9900   29.9900   32905

In der ersten Zeile steht bei beiden der EK-Preis und in der zweiten bei beiden der UVP
Aussehen sollte es aber so.

SKU           ID         Category   Menge   Menge ID   EK-Preis   UVP           EK-Preis ID
6150478   32905   5,73         20.0000   32905   17.5500   29.9900   32905
fevzi#7
Benutzerbild von fevzi
Beiträge: 155
Wohnort: Saarbrücken
Registriert: Feb 2006

09.01.2009, 16:39

zum beispiel:
PHP:
1
2
3
4
<?
"select * from bla where (id >= 60 AND id <= 64) order by id desc"
?>


du willst doch einen bestimmten zahlenbereich abfragen ?
function foo();
Geändert von fevzi am 09.01.09 um 17:27 Uhr
fevzi#8
Benutzerbild von fevzi
Beiträge: 155
Wohnort: Saarbrücken
Registriert: Feb 2006

11.01.2009, 04:01

die klammern sind wichtig.
die erste abfrage holt sich die ergebnisse aus dem angegebenen range, also die id's von 2 bis 6.
die zweite abfrage holt sich die id 2 und id 6.
die dritte kombiniert beide vorhergehenden abfragen.:

PHP:
1
2
3
4
5
6
<?
$sqlab 
mysql_query("select * from foo where (id >= 2 and id <= 6) order by id desc");
$sqlab mysql_query("select * from foo where (id = 2 or id = 6) order by id desc");
$sqlab mysql_query("select * from foo where (id >= 2 and id <= 6 or id = 7) order by id desc");
?>


bei deinem script müsste es lauten...

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
$selectall
="
SELECT
a.entity_id , a.sku , a.category_ids , b.product_id , b.qty , c.entity_id AS price_entity , c.attribute_id , c.value
FROM
catalog_product_entity a
INNER JOIN
cataloginventory_stock_item b ON b.product_id = a.entity_id
INNER JOIN
catalog_product_entity_decimal c ON c.entity_id = b.product_id
WHERE
(a.category_ids =5 AND c.attribute_id=60 OR c.attribute_id=64) "
;
?>


es sollte sich auch genauso verhalten bei einer abfrage über mehrere tabellen.
gruss
fevzi
function foo();
Geändert von fevzi am 11.01.09 um 04:05 Uhr

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de