getreidemuehlen
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 14.11.2004, 13:08   #1
TP-Junior
 
Registriert seit: Aug 2004
fireblade2k macht alles soweit korrekt

mysql innerhalb einer funktion


Halloele

PHP-Code:
 function kampf ($einheit$deinheit$att1$att2
          {

            
//hier wird die angreifereinheitmenge ermittelt
     
$selecteinheitqry =  mysql ($dbnam"SELECT $einheit FROM einheiten WHERE id = $atterid");
     
$selecteinheit mysql_result ($selecteinheitqry"angreifereinheit");
    
           
           
//hier die menge der verteidigenden einheiten
      
$selectdeinheitqry mysql ($dbnam"SELECT $deinheit FROM einheiten WHERE id = '$defferid'");
      
$selectdeinheit mysql_result ($selectdeinheitqry"deffereinheit");
//usw hab hier weggeschnitten

So jetzt mein Prob, wenn ich die Sql query ausserhalb der Funktion ausführe funzt die, innerhalb der Funktion aber nicht

also wenn ich jetzt
kampf (soldaten, soldaten, 1, 1) eingebe hat das einen sinn und müsste funzen aber php sagt nur:

supplied argument is not a valid MySQL result resource in blabalabla ^^
ja ich weiss was das heisst aber wenn ich jetzt innerhalb der funktion einen einfachen aufruf mache (zB

PHP-Code:
$a_gminenqry mysql ($dbnam"SELECT goldminen FROM gebaeude WHERE id = '$atterid'");
 
$a_goldminen mysql_result($a_gminenqry"goldminen"); 
funzt dieser nicht, obwohl er ausserhalb der funktion funzt. ALso das selbe ist im Prinzip das was ich oben geschrieben hab^^



Weiss jemand warum?

MfG
fireblade2k ist offline   Mit Zitat antworten


Alt 14.11.2004, 15:48   #2
TP-Specialist
 
Benutzerbild von Dennis The Menace
 
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
Dennis The Menace bringt sich richtig einDennis The Menace bringt sich richtig ein
Du musst in der Function $atterid als global schreiben; dann klappt es.

PHP-Code:
function kampf ($einheit$deinheit$att1$att2
          { 
global 
$arrerid;
            
//hier wird die angreifereinheitmenge ermittelt 
     
$selecteinheitqry =  mysql ($dbnam"SELECT $einheit FROM einheiten WHERE id = $atterid"); 
     
$selecteinheit mysql_result ($selecteinheitqry"angreifereinheit"); 
     
            
           
//hier die menge der verteidigenden einheiten 
      
$selectdeinheitqry mysql ($dbnam"SELECT $deinheit FROM einheiten WHERE id = '$defferid'"); 
      
$selectdeinheit mysql_result ($selectdeinheitqry"deffereinheit"); 
//usw hab hier weggeschnitten 

Zur Erklärung:
Eine Funktion ist eine von sich abgeschottene User Enviroment. Dort
funktionieren nur vom Server gesetzte Varriablen, definierte Konstante
und halt globals. Und, da du $atterid in der Funktion nicht definiert hast, existiert $atterid innerhalb der Funktion nicht. Mit global $atterid sagst du
php jedoch, dass er jenes atterid verwenden soll, welches du außerhalb
der Funktion definiert hast => daher das Wort global!
__________________
Zwei Dinge sind Unbestreitbar:
  • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
  • Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

Geändert von Dennis The Menace (14.11.2004 um 15:52 Uhr).
Dennis The Menace ist offline   Mit Zitat antworten
Alt 14.11.2004, 16:08   #3
TP-Veteran
 
Benutzerbild von the-architect
 
Registriert seit: Jun 2004
Ort: Stuttgart
the-architect bringt sich richtig einthe-architect bringt sich richtig ein
mhh. also globale variablen halte ich für teufelswerk und schlechten programmierstil. irgendwann weiss man nicht mehr was alles global ist und zufällig werden daten überschrieben usw.

bei kleineren sachen wie dieser funktion hier mag es gehen, aber man sollte sich sowas nicht angewöhnen. lieber ein parameter mehr übergeben.

man könnte das z.B über arrays ganz gut machen. man übergibt einfach ein array als pararmeter und der rückgabewert der funktion ist auch ein array.

nur so ne idee. ich weiß aber das es bei manchmal php schwierig und etwas umständlich ist an globalen variablen vorbeizukommen.
__________________
mein blog | imedo.de | clubrating.de | deviantart


the-architect ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
mysql innerhalb einer funktion mysql innerhalb einer funktion
« Breite des Browser-Fensters mittels PHP ermitteln? | javascript extern und php »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL 5.0 Alpha- jetzt mit Stored Procedures CB.NET Traum-News 1 07.01.2004 23:01
Funktion zum Berchnen der Dauer des parsens einer Seite SKYRUNNER Traum-Dynamik 4 16.07.2003 08:31
Scrolltext innerhalb einer Tabelle mischaef Dreamweaver 7 25.06.2003 17:20
Sender/Caller einer Funktion? Bart HTML Puristen 1 27.07.2002 22:59
Bitte um kurze Hilfe mit einer windiw.open Funktion Pyro HTML Puristen 5 29.06.2002 02:26


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:44 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67