Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    quanti campi ha l'array?

    ciao, devo ciclare all'interno di un array così, circa:

    for ($i = 0; $i < $my_arr.count; $i++)

    etc



    il problema è che -count- o -lenght- non me li prende.

    qual'è il metodo per ciclare all'interno dell'array?

    grazie

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    867
    o per rimanere sul for come volevi tu:

    http://it.php.net/manual/it/function.count.php
    No pvt per sollecitare risposte, grazie.

  4. #4
    ok, grazie. il problema è che devo fare una sql query

    select utente_nome, utente_cognome from ana

    quando faccio
    while ($row = mysql_fetch_array($result))

    {


    $count = count($row);
    print $count; MI SCRIVE 4 e NON 2!!!! perchè?
    mi serve sapere il numero di campiperchè è variabile, arriva da una selezione


    }


    perchè mi torna 4? i campi sono utente_nome e utente_cognome??????

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    da manuale:
    http://se2.php.net/manual/it/functio...etch-array.php
    Usando MYSQL_BOTH, si ottiene un array con entrambe gli indici (associativo e numerico). Usando MYSQL_ASSOC, si ottengono solo gli indici associativi (stesso funzionamento di mysql_fetch_assoc()), usando MYSQL_NUM, si ottengono solo gli indici numerici (stesso funzionamento di mysql_fetch_row()).
    ecco perchè ti restituisce il doppio dei valori che ti aspetti. svelato l'arcano.

    dai un'occhiata al manuale.

  6. #6
    Dalla documentazione ufficiale: http://it.php.net/manual/it/function...etch-array.php

    mysql_fetch_array() è una versione estesa di mysql_fetch_row(). Oltre a memorizzare i dati del risultato in array con indice numerico, questa li memorizza anche con indici associativi usando i nomi dei campi come chiavi.

    Significa che "mysql_fetch_array" restituisce un array di tipologia "mista" contenente sia i valori identificati da indici numerici, sia quelli identificati da indici associativi (che sono stringhe aventi il nome dei campi della query).

    In parole povere, usando "mysql_fetch_array" sulla query che hai scritto prima ottieni un array così formato:

    codice:
    Array (
         [0] => valore_del_campo___utente_nome
         ['utente_nome'] => valore_del_campo___utente_nome
         [1] => valore_del_campo___utente_cognome
         ['utente_cognome']  => valore_del_campo___utente_cognome
    )
    E cioè contenente 4 elementi, anzichè 2 come ti aspettavi. Per fare quello che ti serve, usa "mysql_fetch_row": http://it.php.net/manual/it/function...-fetch-row.php

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da verardoelvis
    ok, grazie. il problema è che devo fare una sql query

    select utente_nome, utente_cognome from ana

    quando faccio
    while ($row = mysql_fetch_array($result))

    {


    $count = count($row);
    print $count; MI SCRIVE 4 e NON 2!!!! perchè?
    mi serve sapere il numero di campiperchè è variabile, arriva da una selezione


    }


    perchè mi torna 4? i campi sono utente_nome e utente_cognome??????
    Per sapere il numero di campi puoi anche usare questa funzione
    http://se.php.net/manual/it/function...num-fields.php

    che ti consente di sapere il numero esatto sia nel caso che selezioni solo alcuni campi nella query, sia nel caso faccia una select *.

    oppure con quest'altro metodo puoi sapere solo il numero complessivo di campi della tua tabella
    $query = mysql_query("show columns from tabella");
    echo mysql_num_rows($query);

    spero di esserti stato utile.

  8. #8
    fetch_array() è inutile, usa sempre fetch_assoc() o fetch_row()

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 © 2024 vBulletin Solutions, Inc. All rights reserved.