Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit FOR Schleife

Einklappen

Neue Werbung 2019

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

  • Problem mit FOR Schleife

    Hi,

    ich habe ein Problem mit der For Schleife, besser gesagt in meinem SELECT in meiner For Schleife:

    Fatal error: Cannot use string offset as an array in D:\Webdesign\xampp\htdocs\forum\posts.php on line 107

    Naja und so sieht sie aus:

    PHP-Code:
                for ($i 0$i count($beitrag['id']); $i++)
                {
                
    $sql="SELECT avatar, rang, posts, gender, admin FROM user WHERE id =".$beitrag[$i]['autor_id']."";
                
    $result mysql_query($sql) or die(mysql_error().'
    [b]Query:[/b] '
    .$sql);
                while(
    $autor mysql_fetch_array($result))
                {
                  
    $autor_daten[] = $autor;
                }
                echo
    '
                <tr>
                    <td width="20%" style="border: 1px solid black"><center>'
    ;
                      if(
    $autor_daten[$i]['avatar'] == "" && $autor_daten[$i]['admin']== '1')echo '[img]style/admin_avatar.jpg[/img]';
                      else if(
    $autor_daten[$i]['avatar'] == "")echo '[img]style/user_avatar.jpg[/img]';
                      else{
                          echo
    '
                              [img]'
    .$autor_daten[$i]['avatar'].'[/img]';}
                          echo
    '


                          
                          <table class="user_interface2">
                            <tr>
                                <td bgcolor="#ededed">[i]Autor[/i]</td>
                                <td bgcolor="#ededed">:</td>
                                <td bgcolor="#ededed">'
    .$autor_daten[$i]['schreiber'].'</td>
                            </tr>
                            <tr>
                                <td bgcolor="#ededed">[i]Rang[/i]</td>
                                <td bgcolor="#ededed">:</td>
                                <td bgcolor="#ededed">'
    .$autor_daten[$i]['rang'].'</td>
                            </tr>
                            <tr>
                                <td bgcolor="#ededed">[i]Geschlecht[/i]</td>
                                <td bgcolor="#ededed">:</td>
                                <td bgcolor="#ededed">'
    ;if($autor_daten[$i]['gender'] == '0'){ echo "männlich";} else if($autor_daten[$i]['gender'] == '1') {echo "weiblich";}echo'</td>
                            </tr>
                            <tr>
                                <td bgcolor="#ededed">[i]Post vom:[/i]</td>
                                <td bgcolor="#ededed">:</td>
                                <td bgcolor="#ededed">'
    .date("H:i ; d.m"$beitrag[$i]['date']).'</td>
                            </tr>
                        </table>
                        </center>
                    </td>
                    <td style="vertical-align:top;border: 1px solid black;padding-left:5px;font-weight:normal" >
                                '
    .$autor_daten[$i]['beitrag'].'
                    </td>
                </tr>'
    ;

    Also was habe ich jetzt schon wieder falsch gemacht?

    Achja die Variable in dem Select kommt hier her:

    PHP-Code:
                $sql="SELECT post, autor, autor_id, date FROM posts WHERE thread_id =".$_GET['thread_id']." ORDER BY id";
                
    $result mysql_query($sql) or die(mysql_error().'
    Query: '
    .$sql);
                while(
    $post mysql_fetch_array($result))
                {
                  
    $beitrag[] = $post;
                } 


  • #2
    ist jetzt nur eine vermutung, aber mal diese Zeile checken:
    PHP-Code:
    $sql="SELECT avatar, rang, posts, gender, admin FROM user WHERE id =".$beitrag[$i]['autor_id'].""
    lass dir mal das hier ausgeben, bevor du den select startest:
    PHP-Code:
    echo $beitrag[$i]['autor_id']; 
    Ich vermute das soll heißen
    PHP-Code:
    $beitrag['id'][$i
    Gruß
    bigJay

    Kommentar


    • #3
      Ok ich habe es nochmal überarbeitet:

      PHP-Code:
      <?php
                  $sql
      ="SELECT id, post, autor, autor_id, date FROM posts WHERE thread_id =".$_GET['thread_id']."";
                  
      $result mysql_query($sql) or die(mysql_error().'
      Query: '
      .$sql);
                  while(
      $post mysql_fetch_array($result))
                  {
                    
      $beitrag[] = $post;
                  }
                  
                  for (
      $i 0$i count($beitrag['autor_id']); $i++)
                  {


                  
      $sql="SELECT avatar, rang, posts, gender, admin FROM user WHERE id =".$beitrag[$i]['autor_id']."";
                  
      $result mysql_query($sql) or die(mysql_error().'
      [b]Query:[/b] '
      .$sql);
                  while(
      $autor mysql_fetch_array($result))
                  {
                    
      $autor_daten[] = $autor;
                  }
                  }
      ?>
      Und so sieht es dann aus, ich es in einer Tabelle ausgeben lassen will:

      PHP-Code:
      <?php
      for ($i 0$i count($beitrag['autor_id']); $i++)
      {
        echo
      '
                  <tr>
                      <td width="20%" style="border: 1px solid black"><center>'
      ;
                        if(
      $autor_daten[$i]['avatar'] == "" && $autor_daten[$i]['admin']== '1')echo '[img]style/admin_avatar.jpg[/img]';
                        else if(
      $autor_daten[$i]['avatar'] == "")echo '[img]style/user_avatar.jpg[/img]';
                        else{
                            echo
      '
                                [img]'
      .$autor_daten[$i]['avatar'].'[/img]';}
                            echo
      '


                            
                            <table class="user_interface2">
                              <tr>
                                  <td bgcolor="#ededed">[i]Autor[/i]</td>
                                  <td bgcolor="#ededed">:</td>
                                  <td bgcolor="#ededed">'
      .$autor_daten[$i]['schreiber'].'</td>
                              </tr>
                              <tr>
                                  <td bgcolor="#ededed">[i]Rang[/i]</td>
                                  <td bgcolor="#ededed">:</td>
                                  <td bgcolor="#ededed">'
      .$autor_daten[$i]['rang'].'</td>
                              </tr>
                              <tr>
                                  <td bgcolor="#ededed">[i]Geschlecht[/i]</td>
                                  <td bgcolor="#ededed">:</td>
                                  <td bgcolor="#ededed">'
      ;if($autor_daten[$i]['gender'] == '0'){ echo "männlich";} else if($autor_daten[$i]['gender'] == '1') {echo "weiblich";}echo'</td>
                              </tr>
                              <tr>
                                  <td bgcolor="#ededed">[i]Post vom:[/i]</td>
                                  <td bgcolor="#ededed">:</td>
                                  <td bgcolor="#ededed">'
      .date("H:i ; d.m"$beitrag[$i]['date']).'</td>
                              </tr>
                          </table>
                          </center>
                      </td>
                      <td style="vertical-align:top;border: 1px solid black;padding-left:5px;font-weight:normal" >
                                  '
      .$autor_daten[$i]['beitrag'].'
                      </td>
                  </tr>'
      ;
                  
        }
      ?>
      Und jetzt bekomme ich folgende Fehlermeldungen:


      Notice: Undefined index: autor_id in D:\Webdesign\xampp\htdocs\forum\posts.php on line 20

      Notice: Undefined variable: autor_daten in D:\Webdesign\xampp\htdocs\forum\posts.php on line 120

      Notice: Undefined variable: autor_daten in D:\Webdesign\xampp\htdocs\forum\posts.php on line 120

      Notice: Undefined variable: autor_daten in D:\Webdesign\xampp\htdocs\forum\posts.php on line 121

      Notice: Undefined variable: autor_daten in D:\Webdesign\xampp\htdocs\forum\posts.php on line 131

      Notice: Undefined variable: autor_daten in D:\Webdesign\xampp\htdocs\forum\posts.php on line 136

      Line20:

      PHP-Code:
      <?php
       
      for ($i 0$i count($beitrag['autor_id']); $i++)
      ?>
      Line 120 - 136:

      PHP-Code:
      <?php
                        
      if($autor_daten[$i]['avatar'] == "" && $autor_daten[$i]['admin']== '1')echo '[img]style/admin_avatar.jpg[/img]';
                        else if(
      $autor_daten[$i]['avatar'] == "")echo '[img]style/user_avatar.jpg[/img]';
                        else{
                            echo
      '
                                [img]'
      .$autor_daten[$i]['avatar'].'[/img]';}
                            echo
      '


                            
                            <table class="user_interface2">
                              <tr>
                                  <td bgcolor="#ededed">[i]Autor[/i]</td>
                                  <td bgcolor="#ededed">:</td>
                                  <td bgcolor="#ededed">'
      .$autor_daten[$i]['schreiber'].'</td>
                              </tr>
                              <tr>
                                  <td bgcolor="#ededed">[i]Rang[/i]</td>
                                  <td bgcolor="#ededed">:</td>
                                  <td bgcolor="#ededed">'
      .$autor_daten[$i]['rang'].'</td>
      ?>
      Könnt ihr mir vielleicht helfen?

      Kommentar


      • #4
        Notice: Undefined index: autor_id in D:\Webdesign\xampp\htdocs\forum\posts.php on line 20

        da gibts diesen array index ned aus (Gros- /Kleinschreibung?!)kA, der Fehler wird warscheinlich hier sein:

        PHP-Code:
        <?php
                    $sql
        ="SELECT id, post, autor, autor_id, date FROM posts WHERE thread_id =".$_GET['thread_id']."";
                    
        $result mysql_query($sql) or die(mysql_error().'
        Query: '
        .$sql);
                    while(
        $post mysql_fetch_array($result))
                    {
                      
        $beitrag[] = $post;
                    } 
        ?>
        na ja und bei den anderen Fehlern haste halt die Variable nirgends zugewiesen, ich sehe es zumindest nicht.

        was passiert wenn du bei Zeile 20 das so machst:
        PHP-Code:
        <?
        for ($i = 0; $i < count($post['autor_id']); $i++) 
        ?>
        ?
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Warum benutzt du als Schleifen-Bedingung die Größe von $beitrag['autor_id'], sprichst aber $autor_daten an?

          Kommentar

          Lädt...
          X