anpera.net https://anpera.homeip.net/phpbb3/ |
|
PHP-problem https://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/ |