mmofacts.com

Farb Fragen

gepostet vor 18 Jahre, 3 Monate von None
Hallo, ich habe eine Frage zu eurer Farbgestaltung. In den Charts wechseln sich ja immer 2 verschiedene Blautöne ab. Da ich davon ausgehe das ihr die Browsergames mit einen "while" befehl im php code ausholt wollte ich fragen wie man solch ein wechsel zwischen den farben erreicht!?
gepostet vor 18 Jahre, 3 Monate von woodworker
da gehst du von etwas falschem aus
wir geben die games nicht (dierket) mit php aus
gepostet vor 18 Jahre, 3 Monate von knalli
Wie auch immer, mod 2 der aktuellen Zeilenposition ist hier dein Helfer. Sowohl in PHP, als auch in XSL (um mal zwei sehr unterschiedliche Bereiche anzusprechen).
gepostet vor 18 Jahre, 3 Monate von cem0r
Original von Asrag
Hallo, ich habe eine Frage zu eurer Farbgestaltung. In den Charts wechseln sich ja immer 2 verschiedene Blautöne ab. Da ich davon ausgehe das ihr die Browsergames mit einen "while" befehl im php code ausholt wollte ich fragen wie man solch ein wechsel zwischen den farben erreicht!?

Dazu baust du dir einfach ein Pendel ein.
$i = 0;

while($i <= 10) {
if($i%2 != 0) {
// Zustand 1
} else {
// Zustand 2
}
$i++;
}
gepostet vor 18 Jahre, 3 Monate von None
vielen danke an alle. was mich dennoch interesieren würde, wie werden hier die games denn dann ausgegeben.
und noch was mich interessiert wie gebe ich aus wie viele user sich gerade die seite angucken wie es auf "wer ist online" steht?
gepostet vor 18 Jahre, 3 Monate von Rylor
Aktive Sessions suchen und die dazugehörigen User ausgeben würd ich mal sagen...
gepostet vor 18 Jahre, 3 Monate von None
wie des geht ist klar bloß da wird ja auch ausgegen wie viele user sich die seite angucken die nicht registriert sind und auch nicht angemeldet sind sondern nur als gast sich die seite angucken!
gepostet vor 18 Jahre, 3 Monate von exe
Ich geh doch mal davon aus das du eingeloggte User gesondert kennzeichnet. Du könntest z.B. jeder Session ein Flag geben (logged_in) das kennzeichnet ob ein User eingelogt (true) oder nur Gast (false) ist.
Dann gehst du alle deine Session durch und dort wo logged_in auf true steht gibst du den Name aus.
Btw: gehört das Thema nicht eher in die Lobby?
gepostet vor 18 Jahre, 3 Monate von Rylor
Für Gastbenutzer erstellst du halt eine "Gastsession", bei der die IP gespeichert wird... Und die Anzahl gibst du dann halt aus.
gepostet vor 18 Jahre, 2 Monate von None
^vielen dank genau daswollte ich wissen
aber ich habe noch ne andere frage bezüglich jetzt meines browsergame:
Ich habe 2 Tabellen
einmal wo alle Zauber drinnestehn und eine wo die drinne stehn die man schon erlern hat. So wenn man zb level 2 hat werden die zauber aufgelistet die man auf lvl 1 und 2 bekommt. so wenn man den zauber erlernt hat kommt er in die tabelle wo die erlernten rein geschrieben werden. so wenn er den zauber erlernt hat soll ein link kommen der erweitern heist. so meine frage ist wie frage ich vergleiche ob der zauber schon erlent wurde indem man den namen des zauber der in der tabelle steht wo alle zauber drinne stehn, mit der tabelle wo die erlernten drinne stehn.
mfg
*hoffe ihr versteht mein problem*
gepostet vor 18 Jahre, 2 Monate von Itchy
Nein, das Problem verstehe ich nicht so ganz.
Du hast eine Tabelle sagen wir mal, die heißt "zauber".
Die sieht vielleicht wie folgt aus:
id|name|wirkung
und eine Tabelle, die heißt "hat_gelernt", die vielleicht so aussieht
spieler_id|zauber_id
Wenn ein Spieler einen Zauber lernt, schaust Du, ob es das Tupel aus spieler_id und zauber_id in hat_gelernt schon gibt und dann weißt Du, ob der Spieler den Zauber schon gelernt hat oder eben nicht.
SELECT * FROM hat_gelernt WHERE spieler_id=x AND zauber_id=y
gepostet vor 18 Jahre, 2 Monate von None
also es ist so gemeint : es gitb eine tabelle wo alle zauber drinne stehn. so wenn ein user ein lvlgemacht hat soll er die zauber für das lvl raussuchen. so dabei kommen auch zauber von niedrigen zaubern. so ich holle mittels while befehl die zauber raus für das lvl und diue da drunteren levels. So wenn schon ein zauber erlernt wurde soll er den rausfiltern und nicht anzeigen. dabie soll er die tabellen vergleich: ich sag mal tabelle"allezauber" und tabelle"userzauber". so wenn in der tabelle "userzauber" schon des zauber gespeichert wurde soll er den dann nicht anzeigen. mein problem ist das ich nicht weiß wie ich das rausfinden lassen soll
mfg
gepostet vor 18 Jahre, 2 Monate von Itchy
um mein Beispiel von oben aufzugreifen:
SELECT * FROM zauber WHERE id NOT IN (SELECT zauber_id FROM hat_gelernt WHERE spieler_id=x)
liefert Dir alle Zauber, die ein Charakter noch nicht gelernt hat.
gepostet vor 18 Jahre, 2 Monate von Rylor
Mal ne ganz billige Lösung...

// $arr = Array mit allen Zaubern die der Spieler nehmen kann mit seinem Lvl
foreach($arr as $arr) {
$q = mysql_query("SELECT spieler_id FROM userzauber WHERE zauber_id=".$arr." AND spieler_id=".$spieler." LIMIT 1");
if(mysql_affected_rows == 0) {
// Ausgabe für Zauber lernen
}
else {
echo "Zauber ist bereits bekannt!";
}
}
Ist nur ein Denkansatz, mit Sicherheit nicht die optimalste Lösung
Gruß Rylor
gepostet vor 18 Jahre, 2 Monate von Rylor
Sollte auch nur ein Denkansatz sein und ist nicht dafür gedacht so genutzt zu werden
Itchys Lösung hat mit Sicherheit die bessere Performance und ist zu bevorzugen...
Rylor
gepostet vor 18 Jahre, 2 Monate von exe
Schon klar, ich wette aber das ein nicht unerheblicher Teil der Entwickler im Anfangsstadium genau so Programmieren. Hab schon zuviel Code in dem Stil gesehen um was anderes zu glauben
gepostet vor 18 Jahre, 2 Monate von None
also habe es so gemacht:

SELECT * FROM techniken WHERE technik NOT IN (SELECT technik FROM spells WHERE user= '".$_SESSION['user']."'");
$result2= mysql_query($sql2);
if(mysql_num_rows($result2)){
while($row2 = mysql_fetch_assoc($result2)) {
?>
und da kommt immer der fehler:
Parse error: parse error, unexpected T_STRING in /srv/www/htdocs/web84/html/twoe/held.php on line 41
gepostet vor 18 Jahre, 2 Monate von Rylor
Ich glaube du hast da eine Zuweisung vergessen...
Also statt

SELECT * FROM techniken WHERE technik NOT IN (SELECT technik FROM spells WHERE user= '".$_SESSION['user']."'");

$sql2 = " SELECT * FROM techniken WHERE technik NOT IN (SELECT technik FROM spells WHERE user= '".$_SESSION['user']."'");
Gruß Rylor
gepostet vor 18 Jahre, 2 Monate von None
so meins sieht jetzt wie folgt aus:
$sql2= SELECT * FROM techniken WHERE technik NOT IN (SELECT technik FROM spells WHERE user= '".$_SESSION['user']."'");
$result2= mysql_query($sql2);
if(mysql_num_rows($result2)){
while($row2 = mysql_fetch_assoc($result2)) {
?>
doch der fehlerkommt immer noch
gepostet vor 18 Jahre, 2 Monate von knalli
Ein Query ist hier nichts anderes als ein String.. also $sql = "blabla"!
gepostet vor 18 Jahre, 2 Monate von None

$sql2 = "SELECT * FROM techniken WHERE technik NOT IN (SELECT technik FROM spells WHERE user= '".$_SESSION['user']."'";
$result2= mysql_query($sql2);
if(mysql_num_rows($result2)){
while($row2 = mysql_fetch_assoc($result2)) {
?>
so bin soweit gekommen das der fehler nicht mehr angezeigt wird doch jetzt kommt der ferhler:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web84/html/twoe/held.php on line 43
doch warum
gepostet vor 18 Jahre, 2 Monate von Itchy
mysql_query nimmt nicht nur einen SQL-String als Parameter, sondern benötigt auch noch die dazugehörige DB-Verbindung als Paramter.
Vielleicht liest Du Dir mal zunächst ein MySQL-PHP Tutorial durch oder schaust zumindest mal ins PHP Manual.
gepostet vor 18 Jahre, 2 Monate von None
ich habe mit der funktion an sich keine problemeund wenn ich das nicht wüsste würde auch kein browsergame entstehen ich wollte lediglich wissen wo der fehler ist
gepostet vor 18 Jahre, 2 Monate von Drezil
Original von Asrag
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web84/html/twoe/held.php on line 43

de3.php.net/manual/en/function.mysql-query.php

Return Values
For SELECT, SHOW, DESCRIBE or EXPLAIN statements, mysql_query() returns a resource on success, or FALSE on error.
For other type of SQL statements, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.
The returned result resource should be passed to mysql_fetch_array(), and other functions for dealing with result tables, to access the returned data.
Use mysql_num_rows() to find out how many rows were returned for a SELECT statement or mysql_affected_rows() to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.
mysql_query() will also fail and return FALSE if the user does not have permission to access the table(s) referenced by the query.
du bekommst nen fehler, dass es kein vernünftiges result ist => deine qry ist semantisch nicht korrekt.
für weitere mysql-fragen:
dev.mysql.com/doc/refman/5.1/de/index.html
in deinem fall konkret (da du dich sicher wie ziele andere weigerst in die doku zu schaun): deine sessiondaten sind nicht gefüllt. session_start() gemacht? ansonsten gib dir die query aus um zu sehen, ob alles so übergeben wird, wie du willst.
de3.php.net/manual/en/function.mysql-error.php ist auch hilfreich (dann brauchste die query nicht in der console zu testen ..)
edit:

ich habe mit der funktion an sich keine problemeund wenn ich das nicht wüsste würde auch kein browsergame entstehen ich wollte lediglich wissen wo der fehler ist
wenn du soviel weisst, dann weisst du auch, wo man die doku findet.
paar sachen, die du en detail wissen solltest, BEVOR du nen bg machst:
- primary key/index/foreign key
- transaktionen
- arrays
- nen durchdachtes konzept (20 seiten min, nicht 1/2 seite hingeschmiert)
- sicherheitsrisiken (xss, ...)
gepostet vor 18 Jahre, 2 Monate von None
ja ich sehe gerade da sind noch einige sachen bei mir offen ^^ aber wie heist es so schön übung macht den meister.
ich frage nur weil ich mit der form von abfrage noch nicht gearbeitet habe und auf den tip anderer angewisesen. dennoch würde ich euch fragen wo genau der fehler ist
gepostet vor 18 Jahre, 2 Monate von Drezil
fragen ist auch legitim .. aber das tolle beim programmieren ist das ausprobieren ..
nen experten bezahlen der einem das macht kann jeder .. (das nötige kleingeld vorrausgesetzt)..
wenn du sql-fehler hast ist de3.php.net/manual/en/function.mysql-error.php dein freund. ansonsten einfach mal in der doku die angemeckerte funktion nachschlagen .. geht schneller als 3 posts zu verfassen und auf antworten zu warten ^^
viel erfolg noch
gepostet vor 18 Jahre, 2 Monate von None
jetzt stellt sich die rage wo steht die duko^^
gepostet vor 18 Jahre, 2 Monate von None
vielen dank an alle
gepostet vor 18 Jahre, 2 Monate von woodworker
Original von Asrag
$sql2 = "SELECT * FROM techniken WHERE technik NOT IN (SELECT technik FROM spells WHERE user= '".$_SESSION['user']."'";
$result2= mysql_query($sql2);
if(mysql_num_rows($result2)){
while($row2 = mysql_fetch_assoc($result2)) {
?>

also ich sehe den fehler sofort
da fehlt die schliessende Klammer - hätte man mit einem
$result2= mysql_query($sql2) or die( mysql_error() );

super einfach herausgefunden
// Edit: mysql error ist eine funktion habe die () vergessen
gepostet vor 18 Jahre, 2 Monate von jonasq
Original von Asrag
ja ich sehe gerade da sind noch einige sachen bei mir offen ^^

Wie recht du damit hast, zeigt Woodworker oben *gg*
/jonasq
gepostet vor 18 Jahre, 2 Monate von None

$sql2 = "SELECT * FROM techniken WHERE technik NOT IN (SELECT technik FROM spells WHERE user= '".$_SESSION['user']."'");
$result2= mysql_query($sql2) or die( mysql_error() );
if(mysql_num_rows($result2)){
while($row2 = mysql_fetch_assoc($result2)) {
?>
selbst dann kommt imemr noch der fehler
gepostet vor 18 Jahre, 2 Monate von Klaus
Wie wäre es wenn du uns die Fehlermeldungen mal angibst? Wir sind auch keine Hellseher, aber ich vermute stark, dass deine MySQL-Version zu alt ist um Subqueries zu unterstützen.
PS: Es gibt einen PHP-Tag.
gepostet vor 18 Jahre, 2 Monate von None
okay die fehlermeldung lautet wie folgt
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT technik FROM spells WHERE user= 'asrag'' at line 1
gepostet vor 18 Jahre, 2 Monate von Drezil

16:46:44 Asrag: Client API version 4.0.15

seine mysql-version ist 4.0.15 => sub-selects gibt erst ab 4.1
dev.mysql.com/doc/refman/5.1/de/subqueries.html
(bevor hier noch versucht wird vergeblich hilfe zu leisten)
edit: die qry hatte er korrigiert.. die ) gesetzt
gepostet vor 18 Jahre, 2 Monate von Rylor
Original von Drezil

16:46:44 Asrag: Client API version 4.0.15

seine mysql-version ist 4.0.15 => sub-selects gibt erst ab 4.1
dev.mysql.com/doc/refman/5.1/de/subqueries.html
(bevor hier noch versucht wird vergeblich hilfe zu leisten)
Mal ganz abgesehen davon... Da fehlt doch immer noch die schließende Klammer oder?
$sql2 = "SELECT * FROM techniken WHERE technik NOT IN (SELECT technik FROM spells WHERE user= '".$_SESSION['user']."')");
gepostet vor 18 Jahre, 2 Monate von jonasq
Warum 2 schließen, wenn nur 1 aufgemacht wird
/jonasq
gepostet vor 18 Jahre, 2 Monate von exe
Weile eine falsch platziert ist, und zwar erst nach dem SQL-String, nicht in selbigem (wo sie eigentlich hingehören würde).
gepostet vor 18 Jahre, 2 Monate von Rylor
Dann is die eben falsch gesetzt...
Ich dacht irgendwie das wär schon in nem mysql_query(), alte Angewohnheit...
//edit: exe war schneller
gepostet vor 18 Jahre, 2 Monate von None
so da das ja nicht geht würde ich gerne wissen ob es noch ne andere möglichkeit gibt?
gepostet vor 18 Jahre, 2 Monate von Itchy
Evtl. so:
$sql = "SELECT DISTINCT techniken.* FROM techniken, spells WHERE techniken.technik != spells.technik AND spells.user={$_SESSION['user']}";
(nicht getestet)

Auf diese Diskussion antworten