komplexes Variablen & Funktionen Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • komplexes Variablen & Funktionen Problem

    Hallo liebe Forum-User!

    Ich habe ein etwas komplizierteres Problem - zumindest scheint es mir so.

    Erklärung: Er soll alle Schulstandorte auflisten, und je nach gewählter Anzeigesprache soll er das jeweilige Land in der richtigen Sprache dazu schreiben.
    zB Anzeigesprache, Schulstandort, Land
    Deutsch, Barcelona, Spanien
    Englisch, Barcelona, Spain

    Dies funktioniert vom Prinzip her schon ganz gut. Aber nur dann, wenn alle Ländernamen in der jeweiligen Anzeigesprache vorhanden sind.

    Mein Problem:
    Wenn nur ein Teil der Ländernamen in der gewählten Anzeigesprache vorhanden ist, dann gibt er folgendes bei den Ländernamen aus:
    [...]
    Cancun, MexikoDF
    Cordoba, ArgentinienDF
    La Habana, KubaCS
    Madrid, KubaCS
    [...]
    Erklärung:
    Er sucht bis zu Habana den Default (DF) Landnamen --> korrekt
    Habana verwendet er den Tschechischen (CS) Landnamen --> korrekt
    ab dem Tschechischen Landnamen bleibt er daran hängen --> falsch

    Die untenstehenden Codezeilen zeigen die beiden Funktionen "getSchools" und "categorizeSchool" sowie deren Aufruf.

    Ich weiss, es ist ein ziemlich komplexes Problem, aber ich hoffe irgendwer von euch macht sich die Mühe und schaut sich's mal an.

    Danke schon im Vorraus
    David

    PHP-Code:
    function getSchools($schoolname$schoolID$country) {
      global 
    $laender;
      global 
    $schulen;
      global 
    $auswahlASp;
      global 
    $auswahlLSp;    
        
      
    // Ausgabe Länder
      
    print('<table class="sprschulen" align="left">');
        foreach (
    $laender as $v) {
          foreach (
    $schulen[$v] as $sch) {
            print(
    "<tr><td><a href=\"index.php?ScNa=".$vTex2.$sch[0].\">");
            print(
    $vTex.$sch[0]."</a></td>");
            print(
    "<td><i>".$v."</i></td></tr>");
          }
      }
      print(
    '</table>');
    }
    function 
    categorizeSchool($schoolname$schoolID$country) {
      global 
    $laender;
      global 
    $schulen;
        
      if(
    array_search($country$laender) === false) {
        
    array_push($laender$country);
        
    $schulen[$country] = array();
        
    array_push($schulen[$country], array($schoolname,$schoolID));
        }
      else {
        
    array_push($schulen[$country], array($schoolname,$schoolID));
        }

    PHP-Code:
    /* Erklärung der Variablen:
    $Land[0][2] = Landname (in der gewählten Anzeigesprache)
    $Schule[$i][2] = Schulname
    $Schule[$i][0] = SchulID
    $LandDefault[0][2] = Landname (in der Default Anzeigesprache)*/

    for ($i=0;$i<mysql_num_rows($selectSchulen);$i++) {
      
    // Kategorisiere Land
      
    if ($Land[0][2] != "")
        
    categorizeSchool($Schule[$i][2], $Schule[$i][0], $Land[0][2]);
      else
        
    categorizeSchool($Schule[$i][2], $Schule[$i][0], $LandDefault[0][2]);
    }
            
    // Ausgabe Länder mit Schulen
    getSchools($Schule[$i][2], $Schule[$i][0], $Land[0][2]); 
    Zuletzt geändert von david_b; 27.09.2005, 12:11.

  • #2
    hm.. sehr schwer zu verstehen, was dein script genau macht. auch reicht dieser code nicht aus, um das problem auf den ersten blick zu erkennen.

    vermute aber, dass das problem mit der verwendung der globalen variablen zusammenhängen könnte, denn, wenn ich das richtig sehe, geht's um diese zeile
    PHP-Code:
      // Kategorisiere Land
      
    if ($Land[0][2] != ""
    diese variable wird in getSchools() gar nicht verwendet. ist das beabsichtigt?

    Kommentar


    • #3
      Ok ich hab's heute von selbst geschafft, danke trotzdem für deine Antwort.

      Den Lösungsweg erspar ich euch, da ich nicht nochmal jede Zeile formatieren möchte.

      Mfg David

      Kommentar

      Lädt...
      X