Notice: Undefined offset: 0 in C:\wamp\www\a\book.php on line 50,51,54

ithelper

Member
سلام دوستان. من همچین اروری دارم . یه جا خوندم که ممکنه ایراد از آرایه ها باشه! اما نتونستم رفعش کنم. لطفا کمک کنید...

PHP:
<?php
    $query = "SELECT id FROM book";
             $result = mysql_query($query) or die('Invalid query');
             $count = mysql_num_rows($result);
    ?>
         <table id="book" border="0">
   <?php for($i=0; $i < $count ; $i++) {
    $row = mysql_fetch_assoc($result);
    ?>
             <tr>
     <td rowspan="2"><?php echo '<img src="book/pic/'.$row[$i]['pic'].'" />'; ?></td>
     <td><?php echo str_replace("\n","<br />",str_replace("\r","",$row[$i]['text'])); ?></td>
                </tr>
                <tr>
                 <td><?php echo '<a href="book/pdf/'.$row[$i]['pdf'].'">Download</a>'; ?></td>
                </tr>
                
    <?php } ?>
            </table>
 

sharktech

کاربر فعال
شما متغییر i رو به جای اینکه از 0 شروع کنی از 1 شروع کن.

به جای for هم اگه از while استفاده کنی بهتره.
 

ithelper

Member
i که از 1 زدم شروع شه. هیچی نمیاره دیگه! while هم بزنم کلا ارور میگیره! چه کنم؟؟؟
 

ithelper

Member
بازم تفاوتی نکرد،چیزی نشون نمیده! آخه کد ی که نوشتم چون داره 3تارو نشون میده ارور میگیره... وگرنه فکرکنم درسته... تک تک کار میکنه...
 

sharktech

کاربر فعال
شما کدتو اصلاح کردی ؟؟

اینی
PHP:
$row[$i]['pdf']
که شما نوشتی که کار نمیکنه!

باید به این شکل باشه :

PHP:
$row['pdf']
 

ithelper

Member
خوب حالا ارور
Notice: Undefined index: pic in C:\wamp\www\a\Book.php on line 49,50,51 میده
 

MMSHFE

Active Member
با سلام، دوست گرامي اين روش رو امتحان كنيد:
PHP:
<?php
    $query = 'SELECT * FROM `book` ORDER BY `id`';
    $result = mysql_query($query) or die('Invalid query');
    if(mysql_num_rows($result) > 0)
    {
?>
        <table id="book" border="0">
<?php
        while($row = mysql_fetch_assoc($result))
        {
?>
            <tr>
                <td rowspan="2"><?php echo '<img src="book/pic/'.$row['pic'].'"/>'; ?></td>
                <td><?php echo nl2br($row['text']); ?></td>
            </tr>
            <tr>
                <td><?php echo '<a href="book/pdf/'.$row['pdf'].'">Download</a>'; ?></td>
            </tr>
<?php
        }
?>
        </table>
<?php
    }
?>
اشكالات كد شما:
توي Query فقط ستون ID رو انتخاب كردين، درنتيجه فيلدهاي ديگه برگردونده نميشه كه بخواين بخونيدشون!
از mysql_fetch_array به دليل افزونگي و استفاده زياد از حافظه استفاده نكنيد. يا از mysql_fetch_row و يا از mysql_fetch_assoc استفاده كنيد. اگه از row... استفاده كنيد انديسها عددي خواهند بود و اگه از assoc... استفاده كنيد، انديسها رشته اي هستند و نام هر فيلد، انديس مربوطه خواهد بود. اگه توي كدي كه گفتم بخواين از حلقه for استفاده كنيد، بايد اين كد رو استفاده كنيد:
PHP:
<?php
    $query = 'SELECT * FROM `book` ORDER BY `id`';
    $result = mysql_query($query) or die('Invalid query');
    $count = mysql_num_rows($result);
?>
        <table id="book" border="0">
<?php
    for($i = 0; $i < $count; $i++)
    {
        $row = mysql_fetch_assoc($result);
?>
<?php
?>
            <tr>
                <td rowspan="2"><?php echo '<img src="book/pic/'.$row['pic'].'"/>'; ?></td>
                <td><?php echo nl2br($row['text']); ?></td>
            </tr>
            <tr>
                <td><?php echo '<a href="book/pdf/'.$row['pdf'].'">Download</a>'; ?></td>
            </tr>
<?php
    }
?>
        </table>
<?php
?>
حالا اگه از row... استفاده كرده باشين، بايد به جاي نام هر فيلد، شماره ترتيبش رو ذكر كنيد كه از صفر شروع ميشه.
موفق باشيد.
 

ithelper

Member
بله دقیقا ایراد من این بود که id بود.... * گذاشتم و [$i] رو برداشتم درست شد... باتشکر از sharktech و MMSHEF ...
 

جدیدترین ارسال ها

بالا