Visualizzazione dei risultati da 1 a 9 su 9

Discussione: riempire array

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    71

    riempire array

    Salve a tutti

    ringrazio anticipatamente per l'aiuto che mi state dando.

    Ho fatto una serie di ricerche per quanto riguarda gli array.

    In pagina.php,"creo l'array" e, in $a[0], riempio i campi con i valori recuperati dal metodo post, fatto questo fa delle interrogazioni al database e vorrei che continuasse a riempire i campi dell'array a partire da $a[1]...
    codice:
    $pippo=$_POST['pippo'];
    $pluto=$_POST['pluto'];
    
    $query = ("SELECT * FROM cartoon'");
     $res=mysql_query($query);  
     $a = array();
      $a[] = array("pippo" => $pippo,"pluto" =>$pluto);
    
     if(mysql_num_rows($res) > 0) 
     {
    	while ($riga = mysql_fetch_array($res, MYSQL_BOTH))
    	{
    	
      	     $a[] = array("pippo" => $pippo,"pluto" =>$pluto);
    Ma non funziona! Cosa sbaglio??
    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505

    Re: riempire array

    Codice PHP:
    while ($riga mysql_fetch_array($resMYSQL_BOTH))
    {
        
    array_push($a,array("pippo" => $pippo,"pluto" =>$pluto));


  3. #3
    Cosa "non funziona"?
    Ti consiglio inoltre di riportare un codice si breve ma sintatticamente funzionante. Cerca di riprodurre un esempio molto breve (30/40 righe) che riassuma il tuo dubbio.

    Così facendo sappiamo se quel "non funziona" vuol dire:

    - errore di sintassi
    - errore logico
    - errore tipo fa qualcosa ma non fa ciò che voglio.

    inoltre usa i tag [php] e non [code] così siamo agevolati dalla sintassi colorata =)

    PS: non è un rimprovero ma solo consigli, nel tuo interesse, che ti aiutano ad avere una risposta rapida e precisa =)

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    71
    @ Alhazred grazie per l'aiuto.
    @ chumkiu grazie per il consiglio.

  5. #5
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Il principio che applichi per popolare l'array è corretto.
    Probabilmente il vettore non ti si popola perché il ciclo non viene eseguito affatto. Credo che la query

    $query = ("SELECT * FROM cartoon'");

    sia sbagliata. Hai un singolo apice in fondo alla stringa, probabilmente indesiderato.

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Se con array_push gli funziona vuol dire che nel ciclo ci entra, altrimenti neanche quello riempirebbe l'array.

  7. #7
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Originariamente inviato da Alhazred
    Se con array_push gli funziona vuol dire che nel ciclo ci entra, altrimenti neanche quello riempirebbe l'array.
    L'utente ha ringraziato non ha detto che ha risolto. Da parte mia continuo a vedere un errore nella query e non nel metodo utilizzato per popolare l'array. Ciò a meno che non ci fossero errori nel codice che non ha esplicitato; tipo le parentesi graffe aperte e non chiuse. D'altra parte ho ritenuto che abbia tagliato il codice subito dopo l'assegnazione.

    Infine, citando il manuale php, assolutamente più autorevole di me

    Note: If you use array_push() to add one element to the array it's better to use $array[] = because in that way there is no overhead of calling a function.

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Originariamente inviato da Grino
    Infine, citando il manuale php, assolutamente più autorevole di me...
    Questo senza dubbio, ma se $a[] = ... non gli funziona...
    Inoltre questo overhead lo si paga su cicli lunghi, se si hanno pochi elementi su cui ciclare non cambia praticamente nulla, se davvero fosse una funzione così onerosa non l'avrebbero neanche implementata, o comunque l'avrebbero deprecata dopo aver trovato un modo migliore per fare la stessa cosa.

  9. #9
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Originariamente inviato da Alhazred
    Questo senza dubbio, ma se $a[] = ... non gli funziona...
    Inoltre questo overhead lo si paga su cicli lunghi, se si hanno pochi elementi su cui ciclare non cambia praticamente nulla, se davvero fosse una funzione così onerosa non l'avrebbero neanche implementata, o comunque l'avrebbero deprecata dopo aver trovato un modo migliore per fare la stessa cosa.
    Il problema non può essere quello che indichi perché tale costrutto è nato con gli array del PHP quindi deve funzionare. Il problema è da ricercare altrove.

    Per quel che riguarda gli overheads dalle mie parti si dice ... Tanto niente ammazzò l'asino ... per intendere che tanti piccoli carichi, sia pure singolarmente insignificanti, nell'insieme possono arrivare a produrre danni seri tipo... causare la morte dell'asinello che li deve portare.

    Saggezza popolare...

    Il fatto che array_push e array_pop esistano è una comodità, e nel momento in cui tratterò il mio array come uno stack, farò uso di tale comodità migliorando la leggibilità del codice al costo di un piccolo overhead. E ne farò un uso ancora più appropriato caricando n elementi con una sola chiamata di funzione piuttosto che scrivere n assegnazioni allungando inutilmente il codice. Ma fino a quel momento continuo ad utilizzare il costrutto nativo di PHP $a[]= come per altro suggerito dal manuale.

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.