Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Undefined offset

  1. #1

    Undefined offset

    date un'occhiata a questo pezzo di codice:
    ---------------------------------------------------------
    85: $result = mysql_query('select data from news'); ## prelevo la riga data dal db news

    86: $num_rows = mysql_num_rows($result); ## memorizzo il n. di righe

    87: $row = mysql_fetch_row($result); ## non ho capito bene cosa fa?!?

    88: $num_rows--; ## decremento di 1

    89: echo $num_rows; ## stampo il num. di righe -1

    90: echo $row[$num_rows]; ## stampo il penultimo elemento
    ---------------------------------------------------------
    la mia logica è (o meglio dovrebbe) essere qualla di stampare il penultimo elemento della riga $row, ma invece ho un messaggio di errore:

    Notice: Undefined offset: 1 in C:\....\index.php on line 90

    Scusate sono un principiante, sapete dirmi in quale logica sbaglio..

    tnx

  2. #2
    mysql_num_rows ti restituisce il numero di riche, ma la conta parte da 0 (non da 1) quindi l'ultimo elemento in realtà lo trovi a $num_rows -1 ;
    per favore NIENTE PVT TECNICI da sconosciuti

  3. #3
    Originariamente inviato da Fabio Heller
    mysql_num_rows ti restituisce il numero di riche, ma la conta parte da 0 (non da 1) quindi l'ultimo elemento in realtà lo trovi a $num_rows -1 ;
    e questo lo sospettavo, per questo ho fatto $var--, ovvero per avere l'ultimo elemento della news...

    invece ho quel messaggio d'errore e nella stampa nn si visualizza nulla, però se metto:

    echo $row[0];

    mi visualizza il contenuto della prima riga, se invece metto

    90: echo $row[1]; ##ad esempio

    mi da

    Notice: Undefined offset: 1 in C:\....\index.php on line 90

    nonstante esiste la riga 1, ed è piena...

  4. #4
    mysql_fetch_row, come vedrai nel manuale, non ti restituisce i record ma i campi.

    Se vuoi il record successivo devi chiamare mysql_fetch_row nuovamente

    Questo è ciò che devi ottenere al termine del ciclo

    record0: campo1, campo2, campon
    record1: campo1, campo2, campon
    record2: campo1, campo2, campon
    recordn: campo1, campo2, campon

    e lo ottieni così

    while ($riga = mysql_fetch_row($result)) {
    echo $row[0];
    echo $row[1];
    echo $row[n];
    }

    vedi qui
    http://it.php.net/manual/en/function...etch-array.php
    http://it.php.net/manual/en/function...-fetch-row.php
    http://it.php.net/manual/en/function...etch-assoc.php
    per favore NIENTE PVT TECNICI da sconosciuti

  5. #5
    Grazie, mi sei stato molto d'aiuto!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.