Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: [PHP] Tabelle e Array

  1. #1

    [PHP] Tabelle e Array

    Ho un problemino (forse dovuto al fatto che sarà un anno che non uso + PHP).

    Vediamo se riesco a spiegarmi.

    Da una tabella Oracle estraggo questi campi dim1, dim2, qta (che stanno per prima dimensione, seconda dimensione e quantità... se a qualcuno interessasse).
    Ora vorrei creare una tabella excel di questo tipo:

    ----------------------------
    xx | dim 1 | dim1 | dim1 |
    ----------------------------
    dim2 | qta | qta | qta |
    ----------------------------
    dim2 | qta | qta | qta |
    ----------------------------
    dim2 | qta | qta | qta |
    ----------------------------


    Ho messo nell' array dim1 tutti i valori di dim1
    Ho messo nell' array dim2 tutti i valori di dim2
    Ho messo nell' array qta tutti i valori di qta

    Quello che vorrei fare è semplicemente creare un array bidimensionale di questo tipo:
    $tabella[$dim1[$i],$dim2[$i]]= $qta[$i];
    ovviamente ove $i è il numero della tupla di riferimento.


    Se non mi fossi spiegato vi faccio un esempio ulteriore:

    dati iniziali:

    dim1 = 100 - 100 - 100 - 200 - 200 - 200
    dim2 = 50 - 60 - 70 - 50 - 60 - 80
    qta = 24 - 321 - 432 - 351 - 411 - 51


    array desiderato:

    100 | 200
    ---------------------
    50 | 24 | 351
    60 | 321 | 411
    70 | 432 |
    80 | | 51



    Spero di essermi spiegato e spero che qualcuno possa aiutarmi.

    Grazie in anticipo

  2. #2
    Io non ho capito quasi niente. Da quello che ho capito, però, dovresti fare così (te lo faccio con la sintassi per sql perchè non conosco oracle):

    Codice PHP:
    $i 0;
    while (
    $row mysql_fetch_array($result))
         {
           
    $dati[$i]['dim1'] = $dim1;
           
    $dati[$i]['dim2'] = $dim2;
           
    $dati[$i]['qta'] = $qta;
           
    $i++;
         } 
    In questo modo ottieni l'array che credo tu voglia:
    $i indicherà il numero della tupla e per ogni tupla avrai tutti i valori che sono nel db. Ciao!

  3. #3
    CHE PIRLA CHE SONO


    In pratica sbagliavo poichè facevo l'assegnazione:

    $tabella[$dim1[$i],$dim2[$i]] = $qta[$i];

    al posto di fare

    $tabella[$dim1[$i]][$dim2[$i]] = $qta[$i];.


    GRAZIE INFINITE

    CIAO

  4. #4
    Ma se $dim1 e $dim2 hanno lo stesso valore a che pro creare un array di quel tipo?

    Di basta fare $dim[$i] = $qta!

  5. #5
    e no... dim1 e dim2 hanno valori diversi...

    in pratica se ti interessa sono le coordinate.... come la x e la y

  6. #6
    Ma come scrivi tu ($tabella[$dim1[$i]][$dim2[$i]] = $qta[$i] allora non è corretto! Tu crei un array multidimensionale a due livelli con un unico valore!

    Da quello che ho capito $dim1, $dim2 e $qta sono tre valori diversi da assegnare ad altrettante variabili contenute all'interno dell'array. Se così dovesse essere il codice da usare dovrà essere necessariamente quello che ti ho esposto sopra e non quello utilizzato da te!

    Infatti il valore del tuo array ($tabella[$dim1[$i]]) sarà [$dim2[$i]] e il valore di quest'ultimo sarà $qta.

    In pratica tu utilizzi i valori di $dim1 e $dim2 come chiavi dell'array quando invece le chiavi devono essere dei nomi.

    L'array alla fine dovrà risultare in questo modo:

    $array[$i]['dim1'] = $dim1;
    $array[$i]['dim2'] = $dim2;
    $array[$i]['qta'] = $qta;

    Anche perchè con il tuo metodo sarà pressocchè impossibile utilizzare l'array se non conoscendo a priori il valore di $dim1 e $dim2.

    Non so se sono stato molto chiaro. Se così non fosse dimmelo che cerco di spiegarti meglio.

  7. #7
    probabilmente mi sono spiegato male io... ma a me serve appunto un array bidimensionale con un valore.

    cioè devo dirgli

    tabella[1,0]=1515
    tabella[1,1]=1441
    tabella[2,1]=211
    tabella[2,2]=1231

    un po' come una battaglia navale...

  8. #8
    Ma invece di fare tutto questo casino non sarebbe più semplice utilizzare l'id della tupla?

  9. #9
    l'id della tupla è dato dalla due coordinate

  10. #10
    Appunto!
    E' una regola da seguire al fine di progettare bene un db quella di predisporre sempre un campo id autoincrement e su quello creare l'indice della tabella. Senza contare che è molto più comodo da gestire.

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.