foreach problem

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • foreach problem

    Hallo zusammen :) ich bins mal wieder


    ich hab da ein kleines problem und zwar möchte ich versuchen eine karte dar zu stellen funzt soweit auch alles bis auf ne kleinigkeit. Er zeigt auf der karte bei allen koordinationen das echo vor dem else an. Er soll aber nur bei den koordinationen das erste echo anzeigen die auch belegt sind. Und bei den anderen das echo nach dem else.

    Hier mal der code

    Quellcode

    1. $sql="SELECT * FROM game_planets";
    2. $result = mysql_query($sql);
    3. $num = mysql_num_rows($result);
    4. if ($num!="0") {
    5. $x = 0;
    6. while ($row=mysql_fetch_array($result)) {
    7. //$list[$x]['id']=$row["id"];
    8. $list[$x]['name']=$row["name"];
    9. $x ++;
    10. }
    11. }
    12. $return_div="";
    13. foreach($list as $key => $name) {
    14. $return_div=$list[$key];
    15. }
    16. echo '
    17. <table width="530" border="0">';
    18. for ($ix=0;$ix<=(5-1);$ix++) {
    19. echo ' <tr>';
    20. for ($iy=0;$iy<=(3-1);$iy++) {
    21. $plan = (1+($iy*5+$ix));
    22. if(isset($return_div)){
    23. echo '<td width=\"'.$proz['row'].'%\" height='.$height.'>';
    24. echo 'Koordinaten: <font color=#FFFFFF>'.$galaxy.':'.$system.':'.$plan.'</font><br>';
    25. echo '</td>';
    26. }
    27. else {
    28. echo '<td width=\"'.$proz['row'].'%\" height='.$height.' ><center><font color=#FFFFFF>'.$galaxy.':'.$system.':'.$plan.'</font></center></td>';
    29. }
    30. }
    31. echo ' </tr>';
    32. }
    33. echo '</table>';
    34. }
    Alles anzeigen



    Kann mir da jemand helfen? ich sitze da seit gestern abend und komme einfach nicht weiter. Ich verzeifel grade :(

    Besten dank schonmal im vorraus
    Riek-Media.com - Webhosting riek-media.com
  • Versuchs mal so:

    Quellcode

    1. $result = mysql_query("SELECT * FROM game_planets");
    2. if (mysql_num_rows($result) > 0) {
    3. while($row = mysql_fetch_array($result)) {
    4. $list[]['name'] = $row['name'];
    5. }
    6. }
    7. echo '<table width="530" border="0">';
    8. for($ix = 0; $ix <= (5-1); $ix++) {
    9. echo '<tr>';
    10. for ($iy = 0; $iy <= (3-1); $iy++) {
    11. $plan = 1 + $ix + ($iy * 5);
    12. if(empty($list[$iy]['name'])){
    13. echo '<td width="'.$proz['row'].'%" height="'.$height.'">';
    14. echo 'Koordinaten: <font color="#FFFFFF">'.$galaxy.':'.$system.':'.$plan.'</font><br>';
    15. echo '</td>';
    16. }
    17. else {
    18. echo '<td width="'.$proz['row'].'%" height="'.$height.'"><center><font color="#FFFFFF">'.$galaxy.':'.$system.':'.$plan.'</font></center></td>';
    19. }
    20. }
    21. echo ' </tr>';
    22. }
    23. echo '</table>';
    Alles anzeigen


    Tut mir leid, ich hab einiges verändernt was nicht unbedingt nötig gewesen wäre, aber ich denke du solltest deinen Code sowieso nochmals überarbeiten, vorallem was Schleifen und Einrücken betrifft.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von bitsnack ()

  • Hi,

    Habe den Code oben nochmals editiert. Geht es so?
    Ich weiss leider nicht genau was du mit dem Code machen willst.
    Zurzeit wird einfach immer Koordinaten: .... ausgegeben wenn der Name (von was weiss ich nicht ^^) leer ist.
    Sollte das nicht so?
  • ja stimmt er gibt auf der ganzen karte jetzt koordinaten aus. Er soll das quasi ja auch weiterhin nur das er bei den namen die er das erste echo sprich echo 'Koordinaten: <font color="#FFFFFF">'.$galaxy.':'.$system.':'.$plan.'</font><br>';
    anzeigen soll und bei den anderen koordinaten das echo nach dem else sprich das man sieht welche koords belegt sind und sich ein user befindet


    Weiss jetzt nicht ob ich mich falsch ausgedrückt habe weiss nicht so recht wie ich es erklären soll :P


    wenn name lol sage ich mal auf 2:494:1 sitzt soll er auf der karte bei en koords Koordinaten: 2:494:1 und bei den anderen koordinaten nur die koordinaten mal als beispiel


    Quellcode

    1. if(empty($list[$iy]['name'])){
    2. echo '<td width="'.$proz['row'].'%" height="'.$height.'">';
    3. echo 'Koordinaten: '.$galaxy.':'.$system.':'.$plan.' Hier sitze ich<br>';
    4. echo '</td>';
    5. }
    6. else {
    7. echo '<td width="'.$proz['row'].'%" height="'.$height.'"><center>'.$galaxy.':'.$system.':'.$plan.'der platz ist noch frei</center></td>';
    8. }
    Riek-Media.com - Webhosting riek-media.com
  • Problem gelöst, jetzt siehts so aus:

    Quellcode

    1. <?php
    2. $max_pro = 100;
    3. $proz['row'] = 10;
    4. $proz['line'] = 10;
    5. $height = '70px';
    6. $result = mysql_query("SELECT * FROM game_planets WHERE galaxy = '".$galaxy."' AND system = '".$system."'");
    7. if(mysql_num_rows($result) != 0) {
    8. while($row = mysql_fetch_array($result))
    9. {
    10. $key = intval($row['planet']);
    11. $list[$key] = $row['name'];
    12. }
    13. }
    14. echo '<table width="530" border="0">';
    15. for ($ix = 0; $ix < 5; $ix++)
    16. {
    17. echo '<tr>';
    18. for ($iy = 0; $iy < 3; $iy++)
    19. {
    20. $plan = 1 + $ix + ($iy * 5);
    21. if(!empty($list[$plan]))
    22. {
    23. echo '<td width="'.$proz['row'].'%" height="'.$height.'">';
    24. echo 'Koordinaten: <font color="#FFFFFF">'.$galaxy.':'.$system.':'.$plan.'</font><br>';
    25. echo '</td>';
    26. }
    27. else
    28. {
    29. echo '<td width="'.$proz['row'].'%" height="'.$height.'">';
    30. echo '<div align="center">';
    31. echo '<font color=#FFFFFF>'.$galaxy.':'.$system.':'.$plan.'</font>';
    32. echo '</div>';
    33. echo '</td>';
    34. }
    35. }
    36. echo '</tr>';
    37. }
    38. echo '</table>';
    39. ?>
    Alles anzeigen