Ankündigung

Einklappen
Keine Ankündigung bisher.

Array-Daten in Variable bringen

Einklappen

Neue Werbung 2019

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

  • Drift
    hat ein Thema erstellt Array-Daten in Variable bringen.

    Array-Daten in Variable bringen

    Hallo zusammen

    Ich habe zur Zeit ein Problem damit Array-Daten in eine Variable zu bringen. Ich hoffe ihr könnt mir vielleicht dabei helfen.

    Hier erstmal mein momentaner Code-Snippet.
    PHP-Code:
    $sql "SELECT * FROM news WHERE news_art = '1' ORDER BY news_date DESC LIMIT 5";

      if( !
    $result $db->sql_query($sql) )
      {
        
    message_die(GENERAL_ERROR"Could not obtain term data"""__LINE____FILE__$sql);
      }


      while( 
    $term_row $db->sql_fetchrow($result) )
      {
        
    $template->assign_block_vars("term_row", array(
          
    "NEWS_ID" => $term_row['news_id'],
          
    "NEWS_HEADER" => $term_row['news_header'],
          
    "NEWS_DATE" => $term_row['news_date'],
          
    "NEWS_AUTOR_ID" => $term_row['news_autor_id'],
          
    "NEWS_TEXT" => $term_row['news_text'],
          
    "NEWS_IMGURL" => $term_row['news_imgurl'],
          
    "NEWS_POSTURL" => $term_row['news_posturl']
        ));
       } 
    Nun möchte ich speziell die Daten aus NEWS_AUTOR_ID auslesen, um mit dieser ID eine weitere MySQL-Abfrage zu gestalten.

    Ich habe schon einiges herumprobiert, bin aber noch nicht auf einen grünen Zweig gekommen.

    Danke schon einmal für das Lesen. Ich wäre um jede Hilfe dankbar.
    Gruß,
    Drift

  • Drift
    antwortet
    Hallo zusammen

    Nochmals vielen Dank für eure Hilfe. Ich habe es nun mit JOIN probiert und hinbekommen. Das Stichwort hat mir einfach gefehlt.

    Danke für eure Zeit,
    Drift

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    Guten Morgen

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    Du arbeitest nicht mit $term_row sondern mit $term_row2, diese Variable existiert aber an der Stelle noch gar nicht. Weiterhin hast du viele Datensätze mit eine Autoren-ID ($term_row wird in einer while Schleife immer wieder neu mit Werten belegt). Wenn du auf $term_row NACH der Schleife zugreifst, steht darin nur der letzte Datensatz.

    edit: omfg, viiiiel zu spät

    Einen Kommentar schreiben:


  • Paul.Schramenko
    antwortet
    Jopp. mit nem kleinen LEFT JOIN brauchste das zweite SQL nicht!

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    1. Woher kommt bitte auch $term_row2? Die Variable existiert nicht, von daher wird auch sicher kein 'news_autor_id' da drinnen stehen.

    2. Hab ich dir bereits gesagt du sollst dir JOINS anschauen. Die Sind exakt das was du brauchst!

    Einen Kommentar schreiben:


  • Drift
    antwortet
    Hallo ihr beiden (edit: sind ja schon drei ^^)

    Danke für die so schnelle Antwort am frühen Morgen

    Mit der Variable $term_row['news_autor_id'] habe ich bereits versucht weiter zu arbeiten. Dabei bin ich so vorgegangen.

    PHP-Code:
    $sql "SELECT * FROM news WHERE news_art = '1' ORDER BY news_date DESC LIMIT 5";

    if( !
    $result $db->sql_query($sql) )
    {
      
    message_die(GENERAL_ERROR"Could not obtain term data"""__LINE____FILE__$sql);
    }

    while( 
    $term_row $db->sql_fetchrow($result) )
    {
      
    $template->assign_block_vars("term_row", array(
        
    "NEWS_ID" => $term_row['news_id'],
        
    "NEWS_HEADER" => $term_row['news_header'],
        
    "NEWS_DATE" => $term_row['news_date'],
        
    "NEWS_AUTOR_ID" => $term_row['news_autor_id'],
        
    "NEWS_TEXT" => $term_row['news_text'],
        
    "NEWS_IMGURL" => $term_row['news_imgurl'],
        
    "NEWS_POSTURL" => $term_row['news_posturl']
      ));
    }  
       
    $sql "SELECT username FROM phpbb_users WHERE user_id = ".$term_row2['news_autor_id']."";

    while( 
    $term_row2 $db->sql_fetchrow($result) )
    {
      
    $template->assign_block_vars("term_row2", array(
        
    "NEWS_AUTOR_NAME" => $term_row2['username'],
      ));

    Ich gebe das Ergebnis (NEWS_AUTOR_NAME), sowie alle Ergebniss aus der ersten MySQL-Abfrage mittels {term_row.NEWS_HEADER} aus. Bei den Array-Inhalten der ersten Abfrage klappt das auch wunderbar. Aber an die zweiten komme ich nicht ran.

    Drift

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    Wenn du zu der autor_id noch die Infos vom Autor haben möchtest dann solltest du dir dringend mal JOINS anlesen. Dann brauchst du keine weiteren DB Abfragen mehr!

    Einen Kommentar schreiben:


  • Paul.Schramenko
    antwortet
    Um helfen zu können müsstest du schon schreiben was du ausprobiert hast und wie das ganze ausgesehen hat.
    Ansonsten wie der Vorredner sagte steht der Inhalt in $term_row['news_autor_id']
    Das ganze könnte so aussehen (nur C&P):
    PHP-Code:
      $myNewsAuhtorIDs = array();
      while( 
    $term_row $db->sql_fetchrow($result) ) 
      { 
        
    $template->assign_block_vars("term_row", array( 
            ...
        )); 
        
    $myNewsAuhtorIDs[] = $term_row['news_autor_id'];
       } 

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Und was hast du ausprobiert?
    Die ID steht doch in $term_row['news_autor_id']

    Einen Kommentar schreiben:

Lädt...
X