Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    110

    [PDO] Estrazione risultati

    Salve ho il seguente codice:

    codice:
    try
    {
      $sql = 'SELECT persone FROM nome';
      $result = $pdo->query($sql);
    }
    catch (PDOException $e)
    {
      $error = 'Errore recupero dati: ' . $e->getMessage();
      include 'error.html.php';
      exit();
    $result dovrebbe essere un oggetto di tipo PDOStatement.$result memorizza un result set contenente i risultati della query (nel nostro caso la lista di tutti i nomi).

    Non riesco a capire bene cosa significa result set, infatti dalla teoria oop un oggetto dovrebbe contenere attributi e metodi.

    Inoltre come si fa x estrarre i risultati da un oggetto? Negli altri casi usavo foreach

  2. #2
    Il modo più semplice è:

    foreach($result as $row) {
    echo $row['field1'].' '.$row['field2']; //etc...
    }

    ciao!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    110
    Quindi con il foreach andiamo ad iterare un oggetto giusto? Mi sembra strana la cosa. E il result set cosa è di preciso? L'oggetto $result cosa contiene esattamente?

  4. #4
    Il punto è proprio che esistono oggetti che implementano un'interfaccia che permette di usarli esattamente come se fossero degli array, quindi con il foreach puoi iterarli esattamente nella stessa maniera.

    Naturalmente questo non significa che non abbiano anche altre proprietà, o che non possano essere usati diversamente, ma questo è il modo più semplice e diretto di usarli.
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    110
    Ah ecco perchè non riuscivo a capire. Per caso l'interfaccia è questa:

    http://www.rhadrix.net/?/Php/Iteratori-in-PHP

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    110
    Comunque l'interfaccia implementata dovrebbe essere IteratorAggregate.

    Non riesco a capire come funziona. Avete qualche altro link?

    Si parla anche di Traversible. Boh la confusione aumenta
    Ultima modifica di Lucciano; 25-09-2015 a 22:11

  7. #7
    manuale questo sconosciuto:

    $pdo->query, aka PDO::query http://php.net/manual/en/pdo.query.php ritorna un PDOStatement http://php.net/manual/en/class.pdostatement.php che implementa http://php.net/manual/en/class.traversable.php. nota su traversable:

    This is an internal engine interface which cannot be implemented in PHP scripts. Either IteratorAggregate or Iterator must be used instead. When implementing an interface which extends Traversable, make sure to list IteratorAggregate or Iterator before its name in the implements clause.
    un esempio che forse ti chiarisce meglio è quello di fare:

    Codice PHP:

    $sql 
    'SELECT nome FROM persone';
    $result $pdo->query($sql);
    //result è PDOStatement

    while($row $result->fetch(PDO::FETCH_ASSOC))
    {
    //row è un array chiave => valore, dove le chiavi sono le colonne e valore il valore della colonna per l'i-esimo record
    //vedi http://php.net/manual/en/pdostatement.fetch.php per altri tipi di fetch

    echo $row['nome'];

    //il ciclo finisce quando $row == null | false 
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.