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

    array multidimensionale da stampare in un menu

    Ciao a tutti,
    purtroppo la notte non ha portato consiglio e anche le ricerche nel forum e altrove non mi hanno aiutato. Probabilmente non entro nella giusta logica! Quindi eccomi a chieder consiglio. :master:
    In breve quel che vorrei riuscire a fare è stampare un array multidimensionale all'interno di un menu verticale composto schematicamente così:

    Titolo categoria A (Attrezzatura per es.)
    id, marca, prodotto (i dati relativi alla categoria attrezzatura)
    id, marca, prodotto
    ....
    Titolo categoria B (Abbigliamento)
    id, marca, prodotto (i suoi dati)
    ....

    il mio array $dati è composto così:
    Array (
    [0] => Array (
    [id] => Array ( [0] => 2 [1] => 15 )
    [idcat] => Array ( [0] => 1 [1] => 1 )
    [categoria] => Array ( [0] => Attrezzatura [1] => Attrezzatura )
    [marca] => Array ( [0] => Ferrino [1] => Garmin )
    [prodotto] => Array ( [0] => Zaino da trekking 30L [1] => GPS portatile )
    )
    [1] => Array (
    [id] => Array ( [0] => 14 )
    [idcat] => Array ( [0] => 2 )
    [categoria] => Array ( [0] => Abbigliamento )
    [marca] => Array ( [0] => Uvex apache )
    [prodotto] => Array ( [0] => Maschera da scii )
    )
    )

    Nella formazione dell'array, estraendo i dati da db con una INNER JOIN su due tabelle, divido i dati in tanti sotto array, quante sono le categorie, e all'interno di ogni array inserisco i relativi dati.
    Il mio problema non è tanto stampare tutti i dati dell'array a video, quanto intervallarli ai relativi titoli di categoria!

    Questo il codice che estrae i dati da db e forma l'array $dati:
    Codice PHP:
    $sql "SELECT idcat FROM vetrina_categoria"//estraggo  l'id delle categorie
    $rs $xoopsDB ->query ($sql);
    $num mysql_num_rows($rs); //mi serve per il ciclo for finale

    $x=0;
    while (
    $row mysql_fetch_array($rs)) {
        
    $sql2[] = "SELECT vetrina.*, vetrina_categoria.categoria FROM vetrina INNER JOIN vetrina_categoria ON vetrina.idcat = vetrina_categoria.idcat WHERE vetrina.idcat = $row[idcat] ";
        
    $rs2[] = $xoopsDB ->query ($sql2[$x]);
        
        while ( 
    $row[$x] = mysql_fetch_array($rs2[$x]) ) {
            
    $dati[$x][id][] = $row[$x]['id'];
            
    $dati[$x][idcat][] = $row[$x]['idcat'];
            
    $dati[$x][categoria][] = $row[$x]['categoria'];
            
    $dati[$x][marca][] = $row[$x]['marca'];
            
    $dati[$x][prodotto][] = $row[$x]['prodotto'];
        } 
        
    $x++;

    Grazie in anticipo per i suggerimenti che spero mi darete
    Stefano

  2. #2
    uppettino... non ne vengo a capo!

  3. #3

    solved

    Chissa perché sono andato ad impelagarmi in un array multidimensionale.
    La soluzione era la più banale, come spesso... stampare il contenuto direttamente dal risultato delle query. se a qualcuno interessa, ecco qui:
    Codice PHP:
    $sql "SELECT * FROM vetrina_categoria"
    $rs $xoopsDB ->query ($sql);
    $num mysql_num_rows($rs);

    $x=0;
    while (
    $row mysql_fetch_array($rs)) {
        
    $sql2[] = "SELECT vetrina.*, vetrina_categoria.categoria FROM vetrina INNER JOIN vetrina_categoria ON vetrina.idcat = vetrina_categoria.idcat WHERE vetrina.idcat = $row[idcat] ";
        
    $rs2[] = $xoopsDB ->query ($sql2[$x]);
            
            echo 
    "[*]<a href=categoria.php?id=$row[idcat]>$row[categoria]</a>";
            
        while ( 
    $row2 mysql_fetch_array($rs2[$x]) ) {
            echo 
    "[url="#><span>$row2[marca]</span>"]$row2[prodotto]</span>[/url]";
        

        
    $x++;

    Ciao

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.