Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit For

Einklappen

Neue Werbung 2019

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

  • Problem mit For

    Hi,

    ich habe folgendes Script:

    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    include (
    "function/function/verbindung.php");
    echo 
    '
    <center>


    <span style="color:red;font-size:11px">
    Bevor Sie einen User löschen, müssen Sie bei Moderatoren "Nein" wählen!
    </span>





        <table class="members">
            <tr>
                <td  class="head">Name</td>
                <td  class="head" width="15%">Rang</td>
                <td  class="head" width="15%">Mitglied seit</td>
                <td  class="head" width="15%">Moderator</td>
                <td  class="head" width="15%">User löschen</td>
            </tr>
            '
    ;
    $j=0;

    $sql "SELECT id, username, rang, date, get_pm FROM user ORDER BY username ASC";
    $result mysql_query($sql) or die(mysql_error().'
    Query: '
    .$sql);
    while (
    $members mysql_fetch_array($result)) {
        
    $id[] = $members["id"];
        
    $username[] = $members["username"];
        
    $rang[] = $members["rang"];
        
    $date[] = $members["date"];
        
    $get_pm[] = $members["get_pm"];
    }
    $sql "SELECT id, name FROM forum ORDER BY id";
    $result mysql_query($sql) or die(mysql_error().'
    Query: '
    .$sql);
    while (
    $forum mysql_fetch_array($result)) {
        
    $forum_id[] = $forum["id"];
        
    $forum_name[] = $forum["name"];
    }

    if(isset(
    $id))
    {
    for (
    $i 0$i count($id); $i++) {

       if(
    $j%2==0){$bgcolor="#cecece";}
              else{
    $bgcolor="#acacac";}
              
      echo
    '
        <tr>
          <td bgcolor="'
    .$bgcolor.'" >'.$username[$i].'</td>
        <td bgcolor="'
    .$bgcolor.'"  width="15%">'.$rang[$i].'</td>
        <td bgcolor="'
    .$bgcolor.'"  width="15%">'.date("d.m.y",$date[$i]).'</td>
        <td bgcolor="'
    .$bgcolor.'"  width="15%">
        <select name="mods">
        <option value="0">Nein</option>'
    ;
    for (
    $i 0$i count($forum_name); $i++) {    
        echo
    '
        <option value="'
    .$forum_id[$i].'">'.$forum_name[$i].'</option>';
    }
    echo
    '
        </select>
        </td>
        <td bgcolor="'
    .$bgcolor.'"  width="15%"><center>[url="forum.php?action=list_members&delet_user='.$id[$i].'"][img]style/delet.ico[/img][/url]</center></td>
        </tr>
      '
    ;
      
    $j++;
    }

    echo
    '
            </tr>
        </table>
    </center>

    '
    ;
    }
    if(isset(
    $_GET["delet_user"]))
    {
    echo
    '
            <script type="text/javascript">
                var truthBeTold = window.confirm("Wollen Sie die Nachricht wirklich löschen?");
            if (truthBeTold)
         window.alert("Die Nachricht wurde gelöscht!");
                else
                javascript:history.back()
            </script>'
    ;
            
                
    $sql "DELETE FROM
                    user
                WHERE
                    id = '"
    .$_GET["delet_user"]."'";
        
    mysql_query($sql) OR die(mysql_error());
    }
    ?>
    Aber wenn ich es so laufen lassen will bekomme ich immer die Meldung irgendwas mit OFFSET.
    Wenn ich aber folgende For-Schleife weglasse:

    PHP-Code:
    for ($i 0$i count($forum_name); $i++) {    
        echo
    '
        <option value="'
    .$forum_id[$i].'">'.$forum_name[$i].'</option>';

    Dann klappt alles wunderbar.
    Ich weiß aber nicht warum.
    Könnt ihr mir helfen?


  • #2
    Re: Problem mit For

    Zitat von malte
    Aber wenn ich es so laufen lassen will bekomme ich immer die Meldung irgendwas mit OFFSET.
    Diese Beschreibung ist sehr schwammig. Warum postest du nicht die exakte Fehlermeldung?

    Kommentar


    • #3
      Aber wenn ich es so laufen lassen will bekomme ich immer die Meldung irgendwas mit OFFSET.
      Nein, Du bekommst eine genaue Fehlermeldung/-warnung. Aber wenn Du sie Dir nur "irgendwie" durchliest, anstatt genau zu bearbeiten, nutzt sie Dir natürlich nichts.

      Wie lautet die Meldung genau?

      Kommentar


      • #4
        Höchstwahrscheinlich hat $forum_id weniger Einträge als $forum_name, so dass irgendwann in der Schleife der Index $i größer als count($forum_id) - 1 ist.

        "Irgendwas mit OFFSET" ..
        Genauer geht es nicht, ne?
        privater Blog

        Kommentar


        • #5
          Nein leider nicht, bin bei meiner Ma am Rechner, mein Rechner steht 50 km weit weg.
          Ich weiß nur das was mit Offset 2 stand.
          Weiteres kann ich auch nicht mehr sagen.
          Habe es aber auch mal versucht mit $forum_name oder $forum_id bei der For schleife hat sich nichts verändert. In der DB sind genau drei Einträge und jeder von denen hat eine Id und einen Namen.

          Kommentar


          • #6
            Na dann ist das jetzt doch eh völlig egal.
            Schreib die Meldung rein, wenn Du wieder an das Skript rankommst und dann sehen wir weiter.

            Kommentar


            • #7
              Ok hier die Meldung:

              Notice: Undefined offset: 3 in /home/webpages/lima-city/newwarrior/html/forum/function/function/test.php on line 62

              Das meint diese Zeile:

              <td bgcolor="'.$bgcolor.'" width="15%"><center>[img]style/delet.ico[/img]</center></td>

              Kommentar


              • #8
                $id[$i]
                In $id gibt es nur die Felder 0, 1, und 2, bei 3 gibt es dann diesen Hinweis

                Gruß
                phpfan

                Kommentar


                • #9
                  Ok, aber er macht es nur weil ich die zweite For Schleife eingebaut habe. Die hat 3 Inhaltet. Wenn ich sie raus nehme klappt alles super. Also was habe ich flasch gemacht bei der Forschleife

                  Kommentar


                  • #10
                    Wenn man deinen Müll etwas aufräumt und nur die for-Schleife betrachtet, kommt das bei raus:
                    PHP-Code:
                    for ($i 0$i count($id); $i++)
                    {
                       for (
                    $i 0$i count($forum_name); $i++)
                       {    
                       }

                    Und jetzt darfst du mal überlegen, warum das Probleme macht.

                    Gruß
                    phpfan

                    Kommentar


                    • #11
                      ok ich muss andere Variablen benutzten. Bei der zweiten sollte ich am besten $j benutzen

                      Kommentar


                      • #12
                        Und warum zerpflückst Du eigentlich die Datensätze, wenn Du sie danach doch nur wieder zusammengesetzt benutzt?
                        Lass sie doch zusammen. Dann kannst Du einfach foreach verwenden.
                        Bspw
                        PHP-Code:
                        $sql "SELECT id, name FROM forum ORDER BY id";
                        $result mysql_query($sql) or die(mysql_error().'
                        Query: '
                        .$sql);
                        $forums = array();
                        while (
                        $forum mysql_fetch_array($result)) {
                            
                        $forums[] = $forum;
                        }
                        // ...
                        foreach($forums as $f) {
                            echo 
                        '<option value="'$f['id'], '">'$f['name'], '</option>';

                        Kommentar

                        Lädt...
                        X