anpera.net
http://anpera.homeip.net/phpbb3/

PHP-problem
http://anpera.homeip.net/phpbb3/viewtopic.php?f=11&t=4421
Seite 2 von 2

Autor:  The_Muh [ Di 08 Apr, 2008 18:41 ]
Betreff des Beitrags:  Re: PHP-problem

eigentlich wollte ich ja alle berufe in einem arbeitsgang zählen... habs jetz so gelöst:
$this->bbcode_second_pass_code('', ' $select = db_query('SELECT job FROM accounts');
if (db_num_rows($select) == 0){
output('Es gibt keine Arbeiter.');
}else{
$steinmetz = 0;
$landwirt = 0;
$holzfäller = 0;
while (db_fetch_assoc($select)) {
if ($row['job'] ='landwirt'){
$landwirt++;
}else if ($row['job'] ='holzfäller'){
$holzfäller++;
}else if ($row['job'] ='steinmetz'){
$steinmetz++;
}
}
}')
/edit:
Ist nicht die eleganteste lösung, aber sie hat weniger code als meine erste...

Autor:  Nightborn [ Di 08 Apr, 2008 18:47 ]
Betreff des Beitrags:  Re: PHP-problem

Alle Jobs? No problem.

$this->bbcode_second_pass_code('', '$sql="SELECT job,count(acctid) AS counter FROM accounts GROUP BY job; //wir schachteln ungern, man solls noch lesen können
$result=db_query($sql); //Abfrage
while ($row=db_fetch_assoc($sql)) {
output("Den Beruf '%s' haben %s Bürger",strtoupper($row['job'][0]).substr($row['job'],1),$row['counter']); //ja, die berufe sind ja kleingeschrieben, also erstes Zeichen groß
}')

Wo liegen die Vorteile? Wenn Du n neuen Beruf machst, mußst du *NICHTS* ändern ;)

Autor:  The_Muh [ Di 08 Apr, 2008 18:53 ]
Betreff des Beitrags:  Re: PHP-problem

ich bekomme folgende fehlermeldung:
Zitat:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\server\wamp\www\logd\dbwrapper.php on line 81

ich hab in meinem übrigen source nix gefunden... muss also an Nightborns schnipsel liegen...

Autor:  Harthas [ Di 08 Apr, 2008 18:55 ]
Betreff des Beitrags:  Re: PHP-problem

$this->bbcode_second_pass_code('', '$sql="SELECT job,count(acctid) AS counter FROM accounts GROUP BY job"; //wir schachteln ungern, man solls noch lesen können
')
So sollte es lauten. Er hatte ein schliessendes " vergessen.

Autor:  The_Muh [ Di 08 Apr, 2008 18:57 ]
Betreff des Beitrags:  Re: PHP-problem

das hatte ich ja schon ergänzt
sry... hätte ich wohl erwähnen sollen

Autor:  Harthas [ Di 08 Apr, 2008 19:20 ]
Betreff des Beitrags:  Re: PHP-problem

Übrigens, Nitghtborn. Grundsätzlich ist sprintf in der 0.9.7 noch nicht in die output-Funktion integriert.
Hat Nightborns erster Versuch mit dem Landwirt denn funktioniert?

Autor:  The_Muh [ Di 08 Apr, 2008 19:36 ]
Betreff des Beitrags:  Re: PHP-problem

nein
der selbe fehler

Autor:  Nightborn [ Di 08 Apr, 2008 21:50 ]
Betreff des Beitrags:  Re: PHP-problem

wupps.

dann

output(sprintf("%s......",$var));

drausmachen. danke.

(mist)

Autor:  The_Muh [ Di 08 Apr, 2008 21:58 ]
Betreff des Beitrags:  Re: PHP-problem

immernoch die gleiche fehlermeldung oO
$this->bbcode_second_pass_code('', 'require_once "common.php";
page_header("Arbeitsamt");
checkday();

if ($_GET[op]==""){
if ($session[user][superuser]>=1){
addnav("Bürgermeister");
addnav("Offene Bewerbungen","jobs.php?op=BM");
addnav("Entlassen","jobs.php?op=fire");
//rest kommt noch ...
}

$sql="SELECT job,count(acctid) AS counter FROM accounts GROUP BY job"; //wir schachteln ungern, man solls noch lesen können
$result=db_query($sql); //Abfrage
while ($row=db_fetch_assoc($sql)) {
output(sprintf("Den Beruf '%s' haben %s Bürger",strtoupper($row['job'][0]).substr($row['job'],1),$row['counter'])); //ja, die berufe sind ja kleingeschrieben, also erstes Zeichen groß
}

output("`nIn arbeit!!!!`n`nDein Job:");
output($session[user][job]);
Addnav("Berufliches");
addnav("Bewerben","jobs.php?op=bewerbung");
addnav("Rausgehen");
addnav("D?Zum Dorf","village.php");
addnav("a?Zum Dorfamt","dorfamt.php");
')
das ist der teilabschnitt in dem der codeschnipsel von nightborn liegt
die fehlermeldung ist die gleiche wie oben... merkwürdige sache

Autor:  MySql [ Di 08 Apr, 2008 22:31 ]
Betreff des Beitrags:  Re: PHP-problem

@OT:

ANPERA? Kannst du mal bitte verschieben? :?

Autor:  Nightborn [ Mi 09 Apr, 2008 08:21 ]
Betreff des Beitrags:  Re: PHP-problem

ARGH

Mein Fehler.

$this->bbcode_second_pass_code('', 'while ($row=db_fetch_assoc($sql)) {')

soll heißen

$this->bbcode_second_pass_code('', 'while ($row=db_fetch_assoc($result)) {')

Autor:  The_Muh [ Mi 09 Apr, 2008 10:17 ]
Betreff des Beitrags:  Re: PHP-problem

gibs ne möglichkeit das ganze noch in ne variable zu stecken? ich brauch das ganze für ne abfrage bei den bewerbungen... es soll nämlic ne beschränkung geben damit es nicht 200 holzfäller, aber nur 10 steinmetze gibt oder so...und da ich deinen code absolut garnich verstehe....
//edit: achja, jetz funzt es wunderbar.... danke

Autor:  Nightborn [ Mi 09 Apr, 2008 11:39 ]
Betreff des Beitrags:  Re: PHP-problem

Formuliere bitte mal aus, was genau passieren soll... und welche infos reingehen sollen.

vor allem ein Konzept "es darf nur X mehr JobA als JobB geben..." oder "Es müssen mind. X JobA existieren, bevor JobB bewerbbar wird"

Autor:  The_Muh [ Mi 09 Apr, 2008 12:17 ]
Betreff des Beitrags:  Re: PHP-problem

ich dachte an folgendes schema:
50 Holzfäller,
40 steinmetze
40 landwirte
20 köhler
---
150 arbeiter


da nach jedem drachenkill der job wegfällt und leute entlassen werden können ist das auch für große server geeignet (und notfalls kann man das ja immernoch editieren.
ich brauch eigentlich nur die variablen, die prüfung kann ich so schreiben (is ja nur If-Else)
Falls du den source brauchst, schick mit ne PN (oder guck hier: *klick*)

//edit: die einzige abhängigkeit ist bei Köhler, da die das holz brauchen, sollte es mindestens 10 holzfäller mehr als köhler geben, der rest bis auf die begrenzung der anzahl frei auswählbar, solange noch jobs frei sind...

Autor:  Nightborn [ Mi 09 Apr, 2008 18:33 ]
Betreff des Beitrags:  Re: PHP-problem

$this->bbcode_second_pass_code('', '$max= array(
"köhler"=>20,
"holzfäller"=>50,
"steinmetz"=>40,
"landwirt"=>40,
);
$berufe=array();
$sql="SELECT job,count(acctid) AS counter FROM accounts GROUP BY job ORDER BY job DESC"; //wir schachteln ungern, man solls noch lesen können
$result=db_query($sql); //Abfrage
while ($row=db_fetch_assoc($sql)) {
$berufe[$row['job']]=$row['counter']; //da sql aufsteigend ordnet, ist holzfäller VOR köhler.
output(sprintf("Den Beruf '%s' haben %s Bürger",strtoupper($row['job'][0]).substr($row['job'],1),$row['counter'])); //ja, die berufe sind ja kleingeschrieben, also erstes Zeichen groß
if (isset($max[$row['job']]) && $row['counter']<$max[$row['job']]) {
//ausnahmefallbehandlung
if ($row['job']=='köhler' && $row['counter']>=$berufe['holzfäller']+10) {
output("Tut mir leid, aber es gibt schon genug Köhler, es müssen mehr Holzfäller her!");
continue;
}
//addnav, was auch immer ,sind noch plätze frei.
} else {
output(sprintf("Die Gilde der %s nimmt leider keine Bewerbungen entgegen, es sind bereits %s Bürger Mitglied.",strtoupper($row['job'][0]).substr($row['job'],1),$row['counter'])
}
}')

so?

Autor:  The_Muh [ Mi 09 Apr, 2008 19:09 ]
Betreff des Beitrags:  Re: PHP-problem

ich habs eingebaut, musste einen fehler von dir ausbügeln, aber sonst scheint es zu funzen... testen kann ichs nicht wirklich gut... mit 2 localen accounts ist das doof.
aber ich denke mal das es funzen wird... danke ^^

werd dich im source verewigen.

Autor:  Nightborn [ Mi 09 Apr, 2008 20:42 ]
Betreff des Beitrags:  Re: PHP-problem

danke, wegen den paar zeilen mußt du eigentlich nicht.

und ok ;) ungetesteter code, daher ruhig man tiefer guggen, ich hab keine 0.97 am laufen wo ich testen kann.

Seite 2 von 2 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/