Werte eines zweidimensionalen Arrays nur ein Zeichen lange

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

  • Werte eines zweidimensionalen Arrays nur ein Zeichen lange

    Hallo Forum!

    ein kniffliges Problem:
    ich habe eine Funktion (PHP), der ich ein Array (mit ids von Artikeln einer DB) übergebe.
    In der Funktion lese ich dann Kategorien aus (ebenfalls ids) und ordne die übergebenen ids den Kategorien zu.
    Die Funktion soll nun ein zweidimensionales Array zurückgeben nach der Struktur
    PHP-Code:
    <?php
    $array
    [$kategorie_id][$artikel_id] = $artikel_ueberschrift;
    ?>
    Das tut sie auch alles ordnungsgemäß, nur dass der Wert jedes Elements des Arrays nur ein Zeichen lange ist (also wenn z.B. das array $array[1][1] den Wert "die frau mit dem damenbart" hat, gibt echo $array[1][1] "d" aus.

    Ich weiß nicht mehr weiter, woran das liegen kann. Ich poste hier noch meine Funktion:
    PHP-Code:
    <?php
    //Funktion, der ein Array mit Artikel IDs übergeben wird. Die Funktion gibt dann ein zweidimensionales
    //Array zurück mit den Artikeln (2. Dimension) und den jeweiligen Kategorien (1. Dimension)
    function sort_articles($article_ids)
    {
        
    //Tabellennamen
        
    global $tbl_kategorien;
        global 
    $tbl_artikel;
        
        
    //Aus Array String machen für SQL Abfrage
        
    $articles implode(","$article_ids);
        
        
    //Array für Endergebnis indizieren
        
    $sorted_array = array();

        
    //1. Dimension - Kategorien aus Datenbank
        
    $kat_query mysql_query("SELECT id FROM $tbl_kategorien");
        while(
    $kat_array mysql_fetch_assoc($kat_query))
        {
            
    //id der Kategorie aus DB
            
    $kat_id $kat_array['id'];
            
            
    //Element zum Ausgabearray hinzufügen - 1. Dimension
            
    $sorted_array[$kat_id] = $kat_id;
            
            
    //Query für die 2. Dimension - jeder Artikel des Arrays in dieser Kategorie
            
    $article_query mysql_query("SELECT id,ueberschrift FROM $tbl_artikel WHERE kategorien=$kat_id AND id IN ($articles)");
            
            while(
    $article_array mysql_fetch_assoc($article_query))
            {
                
    //Definition der Elemente und Schreiben in array
                
    $artikel $article_array['ueberschrift'];
                
    $id $article_array['id'];
                
    $sorted_array[$kat_id][$id] = $artikel
            }
        }
        return 
    $sorted_array;
    }
    ?>
    Vielleicht seht ihr etwas, was ich nicht sehe....danke schon mal!
    lg, Bernie

  • #2
    wenn du die query
    PHP-Code:
    "SELECT id,ueberschrift FROM $tbl_artikel WHERE kategorien=$kat_id AND id IN ($articles)" 
    mal ausgeben läßt, und im pma ausführst, erhälts du dann auch nur ein zeichen oder die vollständige überschrift?

    benutze doch btw JOIN, dann kannst du dir die schleife sparen ... ?

    mach auch mal print_r() auf die arrays ... damit du die stelle findest, wo der lange text auf einen buchstaben reduziert wird ...
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Hi Hund!

      Danke für die Hinweise! Hab jetzt das Problem auch damit gelöst. Vielen Dank!
      Frag nicht warum, aber mir ist in meinem eigentlichen Code die Zeile
      PHP-Code:
      $sorted_array[] = $kat_id
      reingerutscht, was natürlich Blödsinn ist.
      Sitze wahrscheinlich schon zu lange dran!

      Der Query war nicht falsch, dass ich das Ganze joine, war mir etwas zu umständlich in diesem Fall.

      lG,Bernie

      Kommentar

      Lädt...
      X