kostenloser Webspace werbefrei: lima-city


In Funktionen array übergeben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    bilo

    bilo hat kostenlosen Webspace.

    <?php
    function getCodesAsArray() {
    	global $cookies;
    	$abfrage = "SELECT * FROM accounts WHERE playername = '$_COOKIE[$cookies]'";
    	$ergebnis = mysql_query($abfrage);
    	$row = mysql_fetch_object($ergebnis);
    	if($row){
    		$abfrage = "SELECT * FROM invitecodes WHERE accid = '$row->id'";
    		$ergebnis = mysql_query($abfrage);
    		$arr = array();
    		while($row = mysql_fetch_array($ergebnis)) {
    			$arr[] = $row;
    		}
    		return $arr;
    	} else {
    		return 0;
    	}
    }
    
    <p><? $array = getCodesAsArray() . "<br>"; ?><p>
    <p><? echo $array[0] . "<br>"; ?><p>
    ?>

    Hi, ich möchte gerne einen array übergeben aber es kommt immer "Array" bzw. bei $array[0] ein "A" raus.. k.a. wieso.
    Also was ich konkret will ist.. ich habe Tabellen mit Namen, Einladungscodes, und andereSachen wie "aktiviert"(Sry ich habe leider die Fachbegriffe vergessen.. lange nicht mehr damit gearbeitet). Darum möchte ich z.B. $array[0][0] $array[0][1] usw.. aber wenn das nicht geht reicht mir aus wenn ich nur die codes lesen kann und nur ein dimensionales Array habe.
    Das da oben funktioniert nicht. Das einzige was funktioniert ist das
    $arr[] = $row['invitecode'];

    Aber das geht wenn ich echo $arr[0]; in der funktion mache aber nicht wenn ich $array = getCodesAsArray() benutze.

    Beitrag zuletzt geändert: 7.10.2011 17:17:21 von bilo
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du verwandelst den Array zu einem String, weil du das "<br>" anhängst und ein Array als String "Array" entspricht. Strings sind wie char Arrays und deshalb ist $array[0] das A von "Array<br>".
    Was willst du mit dem <br> anhängen bewirken?
  4. bilo schrieb:
    <?php
    <p><? $array = getCodesAsArray() . "<br>"; ?><p>
    <p><? echo $array[0] . "<br>"; ?><p>
    ?>



    Ich sehe diesen Teil des Codes kritisch:
    Du versuchst, einen Array (getCodesAsArray()) wie einen String zu behandeln und "<br>" anzuhängen.
    Dadurch dürfte $array vermutlich auch ein string und kein Array sein, oder verstehe ich das gerade falsch ???

    Andererseits erzeugst du ja auch zweidimensionale arrays, wenn du "$arr[] = $row;" machst, fügst du in $arr[0] ja ein Array ein, bedeutet, wenn du $array[0] ausgeben willst, dann ist dies natürlich immer noch ein array. Probier mal nur $arr[] = $row['code'} (oder wie auch immer die Spalte heißt. Dann sollte es klappen.

    Gruß,
    Sky
    Edit: So, reimann war schneller ;)
    Also, ich denke, dass das <br> einfach doppelt ist + Siehe obige bemerkung.
  5. Du hast ein Problem, weil $array[0] auch wiederrum ein Array ist. Schreib mal nicht
    echo $array[0];
    sondern
    print_r($array[0]);
    und überprüfe den Inhalt. Ich meine die Zeile
    $arr[] = $row;
    sollte auch Probleme machen, da du das Array immer wieder überschreibst und nicht ergänzt.

    Gruß
    illuxio
  6. Autor dieses Themas

    bilo

    bilo hat kostenlosen Webspace.

    Achso!!!!!!!
    Vielen Dank!!!
    Ich versuche schon seit gestern zu kapieren was ich falsch mache.

    Das lag daran das ich erste mal in der Funktion alles ausgegeben habe. Deswegen habe ich dahinter <br> gesetzt. Ich habe total vergessen das <br> mit in der Variable $array gespeichert. Wird.. oh man :D

    mittlerweile sieht mein code so aus

    function getCodesAsArray() {
    	global $cookies;
    	$abfrage = "SELECT * FROM accounts WHERE playername = '$_COOKIE[$cookies]'";
    	$ergebnis = mysql_query($abfrage);
    	$row = mysql_fetch_object($ergebnis);
    	if($row){
    		$abfrage = "SELECT * FROM invitecodes WHERE accid = '$row->id'";
    		$ergebnis = mysql_query($abfrage);
    		$num = mysql_num_rows($ergebnis);
    		for($i = 0; $i < $num; $i++) {
    			$arr[$i] = mysql_fetch_array($ergebnis);
    			
    		}
    		return $arr;
    	} else {
    		return 0;
    	}
    }

    finde ich bisschen schöner :P

    Beitrag zuletzt geändert: 7.10.2011 17:38:53 von bilo
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!