if($numrows>0)
{
    $i=0;
    while($i<count($result_page[$i]))         //This is line 68
    {
        echo "<tr>";
        echo "<td>".$result_page[$i]['product_id']."</td>";
        echo "<td>".$result_page[$i]['product_name']."</td>";
        echo "<td>".$result_page[$i]['product_price']."</td>";
        $i++;
    }
}

Dies ist der Hinweis:

Hinweis: Undefinierter Offset: 10 in /home/jatin/web/www.exam.com/admin/productlist.php in Zeile 68.

Ich erhalte diesen Hinweis, weil, wenn die Schleife zum letzten Mal ausgeführt wird, $ i inkrementiert wird und die Länge des Arrays überschritten wird.

Jedes Mal, wenn sich die Anzahl der Elemente in der 2. Dimension ändert, muss ich die Zählfunktion verwenden.

Die Benachrichtigung tritt auf, wenn die Bedingung zum letzten Mal überprüft wird. Alle meine Elemente werden angezeigt, aber die Benachrichtigung tritt auf.

Bitte geben Sie eine geeignete Lösung an.

php
6
Yash M. Hanj 19 Apr. 2018 im 13:54

5 Antworten

Beste Antwort

Wenn Sie den Operator @ verwenden, wird der Hinweis unterdrückt. Wenn Sie nur danach suchen. Oder Sie können dies auch verwenden:

while(isset($result_page[$i]) && $i<count($result_page[$i])
1
Just a Coder 24 Feb. 2020 im 04:33

Nun, ich habe selbst eine Lösung gefunden, die keine gute Option ist, aber auch gut funktioniert. Verwenden Sie den @ -Operator wie unten angegeben. ---

while($i<count(@$result_page[$i]))

Die Antworten von B. Desai und Thavaamm sind jedoch bessere Optionen.

4
Yash M. Hanj 19 Apr. 2018 im 11:42

Sie können auch die folgende Funktion verwenden, um die Warnungen zu unterdrücken.

error_reporting(E_ERROR | E_PARSE);
2
Gamer 24 Feb. 2020 im 05:48

Sie können überprüfen, ob der Array-Schlüssel gesetzt ist oder nicht, und dann die Schleife fortsetzen

if($numrows>0)
{
    $i=0;
    while(isset($result_page[$i]) && $i<count($result_page[$i])         //This is line 68
    {
        echo "<tr>";
        echo "<td>".$result_page[$i]['product_id']."</td>";
        echo "<td>".$result_page[$i]['product_name']."</td>";
        echo "<td>".$result_page[$i]['product_price']."</td>";
    }
}
1
B. Desai 19 Apr. 2018 im 11:07

Können Sie unten versuchen.

if($numrows>0)
{
    foreach($result_page as $row)         
    {
        echo "<tr>";
        echo "<td>".$row['product_id']."</td>";
        echo "<td>".$row['product_name']."</td>";
        echo "<td>".$row['product_price']."</td>";
    }
}
1
Thavaprakash Swaminathan 19 Apr. 2018 im 11:27