Malte Kiefer: Arrays vergleichen

Hier dieser Script soll testen ob ich ein gebäude schon gebaut ahbe oder nicht. wenn ja, steht in der DB eine 1 wenn nicht eine 0.
aberes wird nichts ausgegebn, weil ich weiß nicht wie ich es machen kann da ich arrays verwendt habe.
Wie kann ich sie vergleichen, hier ist der Script könnt ihr mir viieleicht auch ein beispiel mit den selbern daten schreiben?

<?php
error_reporting(E_ALL);

include 'config1.php';

@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());

$baracke_gebaut = array();
      $kraftwerk_gebaut = array();
      $ausbildungslager_gebaut = array();
      $fuhrpark_gebaut = array();
      $hubschrauber_landeplatz_gebaut = array();
      if ($query = mysql_query("SELECT * FROM register;")) {
         while ($gebaeude = mysql_fetch_array($query)) {

$baracke_gebaut[] = $gebaeude['kraftwerk_gebaut'];
            $kraftwerk_gebaut[] = $gebaeude['kraftwerk_gebaut'];
            $ausbildungslager_gebaut[] = $gebaeude['ausbildungslager_gebaut'];
            $fuhrpark_gebaut = $gebaeude['fuhrpark_gebaut'];
            $hubschrauber_landeplatz_gebaut[] = $gebaeude['hubschrauber_landeplatz_gebaut'];

}
      } else die(mysql_error());
      ?>
<?php    echo "<tr>";
      if($baracke_gebaut == 1){
      echo "<td style="text-align:center"><li>Baracke</li></td>";

echo "</tr>";
      echo "<tr>";
      }
      if($kraftwerk_gebaut == 1){
      echo "<td style="text-align:center"><li>Kraftwerk</li></td>";

echo "</tr>";
      echo "<tr>";
      }

if($fuhrpark_gebaut == 1 ){
      echo "<td style="text-align:center"><li>Fuhrpark</li></td>";

echo "</tr>";
      echo "<tr>";
      }

if($ausbildungslager_gebaut == 1){
      echo "<td style="text-align:center"><li>Ausbildungslager</li></td>";

echo "</tr>";
      echo "<tr>";
      }

if($hubschrauber_landeplatz_gebaut == 1){
      echo "<td style="text-align:center"><li>Hubschrauberlandeplatz</li></td>";
      }

?>

?>

Danke

Malte

  1. kann mir ja wirklich mal einer helfen???

    1. Hi,

      kann mir ja wirklich mal einer helfen???

      Beim Drängeln? Nö.

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      Schreinerei Waechter
      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. Hallo!

    Keine Ahnung wie Deine Tabellenstruktur ist, ich glaube aber nicht gut!

    Folgendes ist als Notlösung zu betrachten.

    Du speicherst ja im Array nur 0 oder 1 ab, ansonsten nichts. Du benötigst kein Array. Erstelle Dir für jeden Bauobjekttyp eine Zählervariable an.

    $baracke_gebaut = array();

    $baracke_gebaut = 0;

    $baracke_gebaut[] = $gebaeude['baracke_gebaut'];

    Wenn eine 1 kommt, wird die Zählervariable um 1 erhöht.

    if($gebaeude['baracke_gebaut']) {
        $baracke_gebaut +=1;
    }

    Nun fragst Du ab, ob $baracke_gebaut größer 0 ist.

    if($baracke_gebaut>0){

    echo "<td style="text-align:center"><li>Baracke</li></td>";

    echo "</tr>";

    }

    Aber wie schon erwähnt, ist wohl Dein Datenbanklayout falsch. Sobald ein weiter Bauobjekttyp hinzu kommt, mußt Du den Code anpassen.

    André Laugks

    --
    Die Frau geht, die Hilti bleibt!
  3. Hallo

    if ($query = mysql_query("SELECT * FROM register;")) {
             while ($gebaeude = mysql_fetch_array($query)) {

    $baracke_gebaut[] = $gebaeude['kraftwerk_gebaut'];

    Willst du hier wirklich 2 mal 'kraftwerk_gebaut' abfragen?

    $kraftwerk_gebaut[] = $gebaeude['kraftwerk_gebaut'];
                $ausbildungslager_gebaut[] = $gebaeude['ausbildungslager_gebaut'];
                $fuhrpark_gebaut = $gebaeude['fuhrpark_gebaut'];
                $hubschrauber_landeplatz_gebaut[] = $gebaeude['hubschrauber_landeplatz_gebaut'];

    }
          } else die(mysql_error());
          ?>

    Warum machst du hier PHP auf und zu?

    <?php    echo "<tr>";

    Du hast deine MySQL Abfrage oben in der Schleife in ein Array gepackt, wie du es ja auch auch wolltest. Nun sprichst du die Variable hier aber an wie eine Skalare Variable.
    Array bestehen immer aus einem Schlüßel und einem Wert.

    Um das erste Element zu bekommen des Arrays müsstest du es mit
    $baracke_gebaut[0] ansprechen.

    if($baracke_gebaut == 1){
          echo "<td style="text-align:center"><li>Baracke</li></td>";

    echo "</tr>";
          echo "<tr>";
          }

    Die Array Oben brauchst du nicht extra zu deklarieren, in dem Moment wo du sie in der Schleife benutzt werden sie als Array angelegt.

    Ich würde es generell nicht so als Array anlegen. Du speicherst ja immer nur einen Wert in dem Array, da reicht eine normale Variable doch komplett aus. Oder du legst es als Assoziatives Array an;

    while ($gebaeude = mysql_fetch_array($query)) {
        $gebaut['kraftwerk']= $gebaeude['kraftwerk_gebaut'];
        $gebaut['baracke']  = $gebaeude['baracke_gebaut'];
        $gebaut['ausbildungslager']= gebaeude['ausbildungslager_gebaut'];
        $gebaut['fuhrpark']= $gebaeude['fuhrpark_gebaut'];
    $gebaut['hubschrauber_landeplatz']=$gebaeude['hubschrauber_landeplatz_gebaut'];
    }

    Danach kannst du die Array Einträge dann mit ihren Namen als Index
    ansprechen.

    z.B:
    if($gebaut['kraftwerk']== 1){
         echo "<td style="text-align:center"><li>Baracke</li></td>";
         echo "</tr>";
         echo "<tr>";
    }

    Also dein Array heißt dann $gebaut[] und es hat die Schlüssel (kraftwerk,baracke,ausbildungslager,fuhrpark,hubschrauber_landeplatz) , die Werte sind dann entsprechend deiner Einträge in der DB entweder 0 oder 1.

    Brauchst aber ncoh nicht mal die while Schleife, da du ja nur einen Wert Abfragst aus der DB.

    Hoffe du kommst damit klar, und bitte nicht gleich drängeln wenn nicht sofort einer antwortet, ist ja schließlich alles hier auf freiwilliger Basis.

    Prost
    Schnaps

    1. Hi,

      danke für deine Hilfe,ich werdees gleich mal probieren und dann mal sehen.

      danke