von languitar |
du kannst ja bei dem paket in einem Feld die IDs der einzelnen "Sub-Karten" und bei bedarf diese dann auslesen. Einfach per id1|id2|id3 da rein und dann mit explode auseinandersortieren und ne neue Abfrage machen, wenn gewünscht. |
von pYro |
Ok ich glaube ich weis was der Fehler nun ist. Es waren wirklich die viele abfragen
Ich versuche es mal anders zu lösen...Danke an alle die mir versucht habe zu helfen |
von pYro |
Gibt es denn die möglichkeit nach einer Abfrage noch zu Filtern was angezeitg werden soll und was nicht |
von pYro |
Ja, das wäre auch eine Idee, blos das Problem ist, das die einzelnen Karten ind dem Packet auch noch Informationen haben, die abrufbar sein sollen |
von languitar |
Ich würde sagen da stimmt was nicht mit deiner Konzeption. Das wirkt viel zu umständlich. Normalerweise gibt es immer eine Tabelle mit allen Artikeln und in jedem Datensatz gibt es ein Feld mit Detailinformationen.
Wenn der User eine Paket kaufen will, speicherst du in seinem persönlichen Warenkorb nur die ID (aus der Artikeltabelle) und die Anzahl und wenn er Informationen zu den Waren haben (z.B. welche einzelheiten das Paket enthält), rufst du alle Detailinformationen zu den passenden IDs aus dem Warenkorb ab. |
von pYro |
ich weis ja net ...vllt stimmt ja auch irgendwas driekt an diesem code net |
von pYro |
Ok
habe doch Zeit. ^^
So: (ich versuche es zum letzten mal)
Also Es gibt einen User, dieser User kann in einerm shop ein Pakerl sagen wir Karten kaufen, von der ART sdk.
Nun wird in der Tabelle1 (dessen aufbau uns ja bekannt ist) der sdk Wert um 1 gesteigert, da er ja ein Packerl Karten von der art sdk gekauft hat. In dem Pack sind mehrere Karten, diese einzelnen Karten habe ich in Tabelle2 schon eingetragen. Aber es gibt auch Packerl Karten von der Art sdy , sdj oder sdp. So, jetzt besitzt der stolze User ein Packerl sdk Karten ^^. Nun will der User aber sehen was für Karten in dem Pack von der Art sdk drinnen sind. Also kommt einer weitere Date hinzu, wo die Karten namen Ausgegeben werden, aber nur von den Karten die aus dem Pack sdk sind. Also prüfe ich welche namen er ausgeben muss, die in der Tabelle2 ( dessen aufbau uns auch bekannt ist) die art sdk haben. Aber nur wenn der WERT in Tabelle1 von sdk über 1.
Dieses ganze kann sich natürlich auch mit sdy sdj oder sdp abspielen, oder 2en, deswegen die ganzen abfragen und die ganzen if bedehle, ich hoffe diesmal war es einigermasern verständlich
thx 4 help cu pYro |
von pYro |
Ich melde mich später oder morgen nochmal, muss jetzt off.
sorry..
cu ich werde es versuche besser zu erklären |
von bastir |
Sorry, aber bei mir fehlt auch noch der Durchblick für deine Tabellen, sdk, sdy etc. sind auch nicht gerade wirklich selbsterklärende Tabellennamen für mich.
Erkläre doch einfach mal für was du deine Abfrage machen möchtest, also mal den grund für deine Tabellen und welche Aktionen der user ausführen soll, auf welche die Datei dann reagiert.
Vielleicht finden wir dann auch ein besseres Tabellenlayout für dich.
so long |
von pYro |
Ich glaube nicht das das funktioniert. also nochmal
Tabelle1:
name = pYro
sdk = 1
sdy = 0
sdj = 0
sdp = 0
Tabelle2: ( hier ist schon einiges eingetragen)
name: irgendeinname
art: sdk oder sdy oder sdj oder sdp
so nun checke ich ja ob ein Tabelle 1 einer der Werte von sdk, sdy, sdj, sdp über 0 ist. Wenn das der Fall sein sollte, dann soll er in diese Datei alle namen ausgeben wo in der Spalte art: z.B sdk steht (aber nur wenn sdk einen größeren wert als 0 hat)
Also nun ein Beispiel:
Tabelle1:
name = pYro
sdk = 1
sdy = 0
sdj = 0
sdp = 0
Tabelle2:
name: irgendeinname
art: sdk oder sdy oder sdj oder sdp
so nun hat ja der WErt von sdk nen größeren Wert als 0, also soll er in die Datei alle Namen ausgeben, wo art = sdk aus Tabelle2
ich hoffe das war nun verständlich, wenn nicht muss ich wohl nen anderen weg finden :D
Danke aber schonmal für die Hilfe |
von languitar |
So wie ich das jetzt verstanden habe kannst du vier verschiedene Werte verändern, worauf hin etwas passieren soll. Dann bauch dir doch für jeden einzelnen dieser Werte eine Art Prozedur, die individuell die gewünschten Aktionen ausführt, die auf diesen Wert zugeschnitten sind. Ist bestimmt einfacher als eine Mörder-SQL-Abfrage. |
von pYro |
eigentlich isses doch auch egal oder? Ich will nur wissen warum nichts ausgegeben wird, oder kann es damit zusammen hängen? |
von pYro |
wie meinst du das? |
von languitar |
kannst du das denn nicht eigenständig für jede Aktion (Erhöhungsart) machen und nicht universell für alle Spalten? |
von pYro |
Also es gibt eine Seite dort wird was ausgegeben.
Nun soll, wenn man eine Aktion durch geführt wird die Zahl +1 gesteigert werden, wie vorhin erläutert. Dann soll aber etwas anderes bzw. mehr angezeigt werden auf der Seite. Das was auf dieser Seite ausgegeben wird liegt aber in einer ganz anderen Spalte.
Mhh ich weis net was ich noch mehr dazu erklären kann
es soll bei einer bestimmten erhöhung, auch etwas bestimmtes bzw. anderes angezeigt werden, deswegen diese vielen Abfragen. |
von languitar |
Diese Doppelpunkte verwirren ganz schön....
Also das klingt extrem kryptisch und etwas undurchdacht. Was genau willst du damit den realisieren? |
von pYro |
Also wie schon gesagt:
ich habe in eine Datenbank 2 Tabellen.
in einer Tabelle1 habe ich als Struktur:
name: sdk: sdy: sdj: sdp:
so in der anderen Tabelle2 habe ich auch eine Struktur die aber unwichtig ist, ausser:
art: name:
In Tabelle 2 ist von Anfang an etwas eingertragen.
In Tabelle 1 wird immer mal wieder +1 geupdatet.
Nun will ich sagen, dass wenn in einem von den Werten in Tabelle1 , also sdk, sdy, sdj , sdp der Wert größer als 0 ist, dass er dann von genau diesem den name aus Tabelle 2 ausgibt, denn in Tabelle 2 ist die Spalte art: immer mit sdk, sdy , sdj oder sdp gefüllt.Also soll er wenn z,B in Tabelle1 der Wert bei sdk = 2 dann soll er den Namen aus Tabelle2 ausgeben, wo in Spalte art = sdk ist.
Ich hoffe das war etwas verständlicher, wenn noch fragen bestehen nur zu. Und deshalb habe ich auch diese ganzen Query gemacht, weil ich ja von jedem einzeln wissen muss
cu pYro
|
von languitar |
Das sieht so erst mal nach einem unglaublichen Ressourcen-Killer aus. Überleg dir mal genau was du brauchst. Normalerweise solltest du mit einem Query auskommen. Ich weiß aber gerade nicht was du machen willst. Erklär mal dein Vorhaben. |
von pYro |
Hi,
also ich habe etwas is die db eingetragen etwa so:
name: tb1: tb2: tb3:
Platoon 0 0 1
jetzt habe ich eine Bedingung gestellt die aussieht wie folgt:
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:
44:
45:
46:
47:
48:
49:
50: | <?
$abfrage = "SELECT * FROM karten2 WHERE name = '$_COOKIE[nick]'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$abfrage2 = "SELECT name FROM karten WHERE art = sdk";
$ergebnis2 = mysql_query($abfrage2);
while($row2 = mysql_fetch_object($ergebnis2))
{
$abfrage3 = "SELECT name FROM karten WHERE art = sdy";
$ergebnis3 = mysql_query($abfrage3);
while($row3 = mysql_fetch_object($ergebnis3))
{
$abfrage4 = "SELECT name FROM karten WHERE art = sdj";
$ergebnis4 = mysql_query($abfrage4);
while($row4 = mysql_fetch_object($ergebnis4))
{
$abfrage5 = "SELECT name FROM karten WHERE art = sdp";
$ergebnis5 = mysql_query($abfrage5);
while($row5 = mysql_fetch_object($ergebnis5))
{
$tb1 = $row->tb1;
$tb2 = $row->tb2;
$tb3 = $row->tb3;
$sdp = $row->sdp;
if( 0 < $tb1)
{
echo $row2->name;
}
if( 0 < $tb2)
{
echo $row3->name;
}
if( 0 < $tb3)
{
echo $row4->name;
}
if( 0 < $sdp)
{
echo $row5->name;
}
}
}
}
}
}
?>
|
aber irgendwie wird nichts ausgegeben ich frage mich nur warum. Ich hoffe jemand kann mit helfen
cu Platoon |