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

    Principiante - Problema funzioni fetching

    Ciao a tutti
    Da pochi giorni mi sono interessato al funzionamento dei database (MySQL) e il modo con cui interagire con essi (PHP).
    Ma non riesco proprio a capire, aimè, come funzionano i fetching.
    Sul mio libro di PHP c'è scritto: "La funzione MySQL_fetch_array() resistuisce un array associativo in cui i nomi dei campi fungono da chiavi". Successivamente il libro riporta un esempio che si trova un pò da per tutto qui nel web:

    codice:
     1<?php
     2 // Stabiliamo una connessione MySQL
     3 mysql_connect("localhost", "root", "") or die(mysql_error());
     4 mysql_select_db("test") or die(mysql_error());
     5 
     6 // Eseguiamo la SELECT sulla tabella 'impiegati'
     7 $result = mysql_query("SELECT * FROM impiegati")
     8 or die(mysql_error());  
     9 
    10 // eseguiamo la nostra 'mysql_fetch_array' in un ciclo 'while'
    11 while($row = mysql_fetch_array($result)){
    12   // Visualizziamo sulla pagina il contenuto della riga letta 
    13   echo "Nome: ".$row['nome']." - Livello: ".$row['livello']."
    ";
    14 }
    15 ?>
    Ecco qui non riesco proprio a capire. Nel momento in cui utilizzo la funzione MySQL_query, la variabile $result diventa ora un array , ma cosa contiene al suo interno? In quanto (parole del libro): "La funzione MySQL_query restituisce un array associativo contenente il risultato della query". Quindi, anche se non ho capito la variabile $result cosa contiene al suo interno, so che è un array. Tramite l'istruzione $row = mysql_fetch_array($result), la funzione mysql_fetch_array cosa assume da $result? e poi, visto che result già è un array, la funzione mysql_fetch_array crea un array di un array? Non capisco proprio..e la mia confusione aumenta quando non riesco a capire come possa analizzare una riga all'altra senza incrementare result che, almeno ho pensato, dovrebbe avere gli indici della riga della tabella. Insomma..con l'istruzione while($row = mysql_fetch_array($result)) non analizza sempre e solo lo stesso indice? sempre lo stesso elemento insomma? come fa ad andare "avanti" nell'analisi se non viene incrementato nulla? Chiedo scusa per la grande confusione che ho fatto ma realmente non riesco a capire come funzioni. Il libro non mi aiuta e i siti in giro non dicono gran che. Qualcuno può, cortesemente e con grande pazienza, darmi una mano e spiegarmi con chiarezza questo procedimenti?

    Grazie mille in anticipo e scusatemi della perdita di tempo.
    Marco

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    La risposta è semplice: è "magia"

    Returns an array that corresponds to the fetched row and moves the internal data pointer ahead.

    trattandosi di una funzione usata spessissimo (interare attraverso le righe ritornate da una query) contiene al suo interno il "++" di avanzamento (o next o come lo vuoi chiamare)

  3. #3
    aaa ecco! bhe grazie mille per la risposta e scusate per la banalità! stavo uscendo pazzo xD

    Saluti e grazie ancora
    Marco

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.