Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Pagina con Articoli e Articolo

    Salve a tutti,
    premetto che ho cercato ma con pochi pochi risultati,
    premetto anche che sono alle prime armi con il php, dunque...

    supponiamo di avere 3 pagine:

    codice:
    a.php
    b.php
    c.php
    nella a.php inserisco un link che punta alla b.php così strutturato:

    la pagina b.php sarà così strutturata:


    Codice PHP:
    <?php require('c.php'); ?>

    <?php echo IDarticoloMarca?> <?php echo IDarticoloModello?>
    <?php 
    echo IDarticolotxtPrezzoEuro?>
    <?php 
    echo IDarticoloOnOffColori?>
    la pagina c.php conterrà i dati ovvero così strutturata:

    Codice PHP:
    $articolocucina ='';
    if (isset(
    $_GET['articolocucina'])) {
      
    $articolocucina $_GET['articolocucina'];
      }

    switch (
    $articolocucina) {

      case (
    'cucchiaio1'):
        
    define('IDarticoloMarca''piegato a1');
        
    define('IDarticoloModello''piegato a2');
        
    define('IDarticolotxtPrezzoEuro''piegato a3');
        
    define('IDarticoloOnOffColori''piegato a4');
      break;

      case (
    'cucchiaio2'):
        
    define('IDarticoloMarca''piegato b1');
        
    define('IDarticoloModello''piegato b2');
        
    define('IDarticolotxtPrezzoEuro''piegato b3');
        
    define('IDarticoloOnOffColori''piegato b4');
      break;

      case (
    'cucchiaio3'):
        
    define('IDarticoloMarca''piegato c1');
        
    define('IDarticoloModello''piegato c2');
        
    define('IDarticolotxtPrezzoEuro''piegato c3');
        
    define('IDarticoloOnOffColori''piegato c4');
      break;


    fatto questa premessa, spero chiara, questa è la domanda:

    Come potrei nella pagina a.php far apparire la lista degli articoli con esempio il solo nome?

    mille grazie....
    ..............
    EGwebm.com
    ..............

  2. #2
    rimboccati le maniche

    non mi è molto chiaro quello che intendi fare ma se ho ben capito
    vuoi che in una pagina venga fuori la lista degli articoli
    quando l'utente clicca sull'articolo deve apparire nuova pagina
    con i dati completi dell'articolo

    E' così?

    se affermativo devi cambiare la struttura che hai pensato.
    dove sono gli articoli? in un database?
    oppure sono scritti in modo statico in una pagina?
    infine, perchè usi define?

    ciao

  3. #3
    innanzitutto grazie per la risposta...
    la speigazione che hai dato e pensato è giusta.

    dunque, i dati sono in un file, ovvero dentro la pagina: c.php e chiaramente non uso database....

    uso define perche cercando e mettendo in opera mi è semprata la soluzione più giusta, presumo tu abbia altre soluzioni giusto?

    mille grazie ancora...
    ..............
    EGwebm.com
    ..............

  4. #4
    ok, cominciamo ...
    posso darti delle indicazioni di struttura
    poi ti devi un po arrangiare
    puoi consultare il manuale php qui:
    http://it.php.net/manual/it/index.php


    chiamiamo il file dove ci sono i dati dati.php
    qui scrivi gli articoli utilizzando gli array (vedi manuale)
    esempio:
    Codice PHP:
    $articolo["cucchiaio1"]["codice"]="ABC123"
    $articolo["cucchiaio1"]["descrizione"]="cucchiaio inox modello xyz";
    $articolo["cucchiaio2"]["codice"]="ABC456";
    $articolo["cucchiaio2"]["descrizione"]="cucchiaio plastica modello xyz";
    //ecc.ecc. 
    chiamiamo il file dove vengono mostrati tutti gli articoli lista.php
    per prima cosa devi includere il file dati.php
    poi devi fare un ciclo sull'array per visualizzarli
    Codice PHP:
    require("dati.php");
    foreach (
    $articolo as $key=>$data){
            echo 
    "[url='articolo.php?articolocucina=".$key." title=']".$data["descrizione"]."[/url]
    "
    ;

    chiamiamo il file dove viene mostrato il singolo articolo articolo.php
    qui tramite il parametro in get punti alla riga di array che ti interessa
    Codice PHP:
    require("dati.php");
    if (isset(
    $_GET['articolocucina'])) {
      
    $articolocucina $_GET['articolocucina'];
      }else{ 
    $articolocucina "cucchiaio1";}

    echo 
    "codice: ".$articolo[$articolocucina]["codice"]."
    "
    ;
    echo 
    "descrizione: ".$articolo[$articolocucina]["descrizione"]."
    "

    occhio che non ho controllato il codice potrebbere esserci errori di sintassi
    ah, il define si utilizza per definire costanti di impostazione
    in genere non si usano per contenere dati variabili

    ciao
    buon lavoro

  5. #5
    innanzitutto grazie...
    dunque ho elaborto, studiato, provato ma i risultati non sono così immensi.... dunque:

    il file dei dati.php è diciamo coì composto:

    Codice PHP:
    <?php

    $articolo
    ["cucchiaio1"]["codice"]="ABC123";
    $articolo["cucchiaio1"]["descrizione"]="cucchiaio inox modello xyz";
    $articolo["cucchiaio2"]["codice"]="ABC456";
    $articolo["cucchiaio2"]["descrizione"]="cucchiaio plastica modello xyz"
    $articolo["cucchiaio3"]["codice"]="ABC789";
    $articolo["cucchiaio3"]["descrizione"]="cucchiaio modello xyz"

    ?>
    la pagina lista.php è così composta:
    Codice PHP:
    <?php

    require("dati.php");
    foreach (
    $articolo as $key=>$data){
            echo 
    "<a href=\"articolo.php?articolocucina=".$key."\" title=\"\">".$data["codice"]."</a>
    "
    ;
            echo 
    "<a href=\"articolo.php?articolocucina=".$key."\" title=\"".$data["descrizione"]."\">".$data["descrizione"]."</a></span>
    "
    ;
    }

    ?>
    la pagina articolo.php è così composta:
    Codice PHP:
    <?php


    require("dati.php");
    if (isset(
    $_GET['articolocucina'])) {
      
    $articolocucina $_GET['articolocucina'];
      }else{ 
    $articolocucina "";}


    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

    <title><?php echo "codice: ".$articolo[$articolocucina]["codice"]."" ;?></title>

    </head>
    <body>

        <h1><?php echo "codice: ".$articolo[$articolocucina]["codice"]."
    ;?></h1>
        <h1><?php echo "descrizione: ".$articolo[$articolocucina]["descrizione"]."
    "
    ;?></h1>


    </body>
    </html>

    posso dire he funziona tutto, gli articoli si vedono e l descrizione del singolo articolo la visualizzo senza problemi, quindi tutto è perfetto, c'è ancora un qualcosa che non riesco davvero a risolvere, dunque:
    supponimo di avere due categorie, cucchiai e forchette nella pagina dati.php così composta:

    [PHP]

    Codice PHP:
    <?php

    $articolo
    ["cucchiaio1"]["codice"]="ABC123";
    $articolo["cucchiaio1"]["descrizione"]="cucchiaio inox modello xyz";
    $articolo["cucchiaio2"]["codice"]="ABC456";
    $articolo["cucchiaio2"]["descrizione"]="cucchiaio plastica modello xyz"
    $articolo["cucchiaio3"]["codice"]="ABC789";
    $articolo["cucchiaio3"]["descrizione"]="cucchiaio modello xyz"

    $articolo1["forchetta1"]["codice"]="DEF123";
    $articolo1["forchetta1"]["descrizione"]="forchetta inox modello xyz";
    $articolo1["forchetta2"]["codice"]="DEF456";
    $articolo1["forchetta2"]["descrizione"]="forchetta plastica modello xyz"

    ?>

    e la pagina della B]lista.php[/B] così composta:

    Codice PHP:
    <?php

    require("dati.php");
    foreach (
    $articolo as $key=>$data){
            echo 
    "<a href=\"articolo.php?articolocucina=".$key."\" title=\"\">".$data["codice"]."</a>
    "
    ;
            echo 
    "<a href=\"articolo.php?articolocucina=".$key."\" title=\"".$data["descrizione"]."\">".$data["descrizione"]."</a></span>
    "
    ;
    }

    ?>

    <?php

    require("dati.php");
    foreach (
    $articolo1 as $key=>$data){
            echo 
    "<a href=\"articolo.php?articolocucina1=".$key."\" title=\"\">".$data["codice"]."</a>
    "
    ;
            echo 
    "<a href=\"articolo.php?articolocucina1=".$key."\" title=\"".$data["descrizione"]."\">".$data["descrizione"]."</a></span>
    "
    ;
    }

    ?>
    fin qui tutto ok, gli articoli sono correttamente viualizzati nella pagina, se però vado ad aprire la seconda categoria la descrizione del suo contenuto non mi viene mostrata.
    La pagina articolo.php è così composta (uguale a quella sopra):
    Codice PHP:
    <?php


    require("dati.php");
    if (isset(
    $_GET['articolocucina'])) {
      
    $articolocucina $_GET['articolocucina'];
      }else{ 
    $articolocucina "";}


    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

    <title><?php echo "codice: ".$articolo[$articolocucina]["codice"]."" ;?></title>

    </head>
    <body>

        <h1><?php echo "codice: ".$articolo[$articolocucina]["codice"]."
    ;?></h1>
        <h1><?php echo "descrizione: ".$articolo[$articolocucina]["descrizione"]."
    "
    ;?></h1>


    </body>
    </html>
    in poche parole dovrei cambiare la parte dove richiamo articolocucina in articolocucina1...
    e ammetto che ancora non ci sono riucito....
    potete darmi qulche dritta per arrrivarci?
    ho spulciato il manuale ma senza risultati... anzi... peggioro la situazione :)

    grazie ancora
    ..............
    EGwebm.com
    ..............

  6. #6
    Potresti pensare di modificare la struttura dati aggiungendo una dimensione agli array:

    da $articolo[KeyArticolo][attributo]
    a $articolo[categoria][KeyArticolo][attributo]

    es:
    da:
    Codice PHP:
    $articolo["cucchiaio1"]["codice"]="ABC123";
    $articolo["cucchiaio1"]["descrizione"]="cucchiaio inox modello xyz";
    ..
    $articolo1["forchetta1"]["codice"]="DEF123";
    $articolo1["forchetta1"]["descrizione"]="forchetta inox modello xyz"
    a
    Codice PHP:
    $articolo["cucchiaio"]["cucchiaio1"]["codice"]="ABC123";
    $articolo["cucchiaio"]["cucchiaio1"]["descrizione"]="cucchiaio inox modello xyz";
    ...
    $articolo["forchetta"]["forchetta1"]["codice"]="DEF123";
    $articolo["forchetta"]["forchetta1"]["descrizione"]="forchetta inox modello xyz"
    Ma questa soluzione ti costringe a modificare tutto il codice fin qua scritto.

    Più semplicemente puoi modificare il file "articolo.php" come segue:
    Codice PHP:
    <?php
    require("dati.php");
    if (isset(
    $_GET['articolocucina'])) {
     
    $articolocucina $_GET['articolocucina'];
     
    $dbarticoli=$articolo;
    }else{
      if (isset(
    $_GET['articolocucina1'])) {
       
    $articolocucina $_GET['articolocucina1'];
       
    $dbarticoli=$articolo1;
      }
    }

    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

    <title><?php echo "codice: ".$dbarticoli[$articolocucina]["codice"]."" ;?></title>

    </head>
    <body>

        <h1><?php echo "codice: ".$dbarticoli[$articolocucina]["codice"]."
    ;?></h1>
        <h1><?php echo "descrizione: ".$dbarticoli[$articolocucina]["descrizione"]."
    "
    ;?></h1>


    </body>
    </html>
    In questo modo in $articolocucina trovi sempre la key dell'articolo ed in $dbarticoli sempre l'elenco della categoria di articoli selezionata.

    Resta detto che per devi aggiungere diversi controlli nidificati per ogni categoria che aggiungi al sito.
    Non è una soluzione molto buona e ti può portare a diversi errori.
    In alternativa puoi passare alla pagina 2 parametri invece che 1.
    Adesso passi solo articolocucina, potresti passare pure il parametro categoria e gestirlo come segue nella pagina articolo.php:
    Codice PHP:
    <?php
    require("dati.php");
    if (isset(
    $_GET['articolocucina'])) {$articolocucina $_GET['articolocucina'];}else{$articolocucina="";} 
    if (isset(
    $_GET['categoria'])) {$categoria $_GET['categoria'];}else{$categoria="";} 
    switch(
    $categoria){
     case 
    "articolo":$dbarticoli=$articolo;break;
     case 
    "articolo1":$dbarticoli=$articolo1;break;
    }
    Come vedi le possibili soluzioni sono molte. E' più un discorso di progettazione della struttura dati che di utilizzo di funzioni php.

    Comunque io ti sonsiglio di pensare a ristrutturare la struttura dati, in modo da rendere più dinamico il tutto e non dover modificare il codice delle pagine ogni volta che si aggiungono categorie o altro.
    Se ti servono dritte o altro su come realizzare il tutto chiedi pure.

    Ad esempio la pagina articolo.php sarebbe la seguente:
    Codice PHP:
    <?php
    require("dati.php");
    if (isset(
    $_GET['articolocucina'])) {$articolocucina $_GET['articolocucina'];}else{$articolocucina="";}
    if (isset(
    $_GET['catarticolo'])) {$catarticolo $_GET['catarticolo'];}else{$catarticolo="";}
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title><?php echo "codice: ".$articolo[$catarticolo][$articolocucina]["codice"]."" ;?></title>
    </head>
    <body>
     <h1><?php echo "codice: ".$articolo[$catarticolo][$articolocucina]["codice"]."
    ;?></h1>
     <h1><?php echo "descrizione: ".$articolo[$catarticolo][$articolocucina]["descrizione"]."
    "
    ;?></h1>
    </body>
    </html>
    Pagina che non deve essere modificata se vai ad aggiungere articoli nel db, è totalmente dinamica.(manca solo un controllo nel caso che passi i parametri vuoti).

  7. #7
    Innanzitutto grazie...
    ho cercato di capire i vari passaggi che sono ben descritti, ma il risultato non è stato eccellente, dato la mia ancora poca conoscenza del linguaggio php.

    Com hai ben detto, non devo veder il linguaggio ma la forma, beh per adesso sono ancora fermo su entrambi, il fatto di mettere:

    Codice PHP:
    $articolo["cucchiaio"]["cucchiaio1"]["codice"]="ABC123"
    $articolo["cucchiaio"]["cucchiaio1"]["descrizione"]="cucchiaio inox modello xyz"
    ... 
    $articolo["forchetta"]["forchetta1"]["codice"]="DEF123"
    $articolo["forchetta"]["forchetta1"]["descrizione"]="forchetta inox modello xyz"
    mi sembra un'ottima trovata, sono però ancora fermo sulla pagina lista.php ovvero non visualizzo gli articoli, presenti.... e idem nella pagina artioli.php devo si ripartire da 0 ma adesso mi sento al perso....
    Ricapitolando, mettere nella banca dati la lista come descritta direi che è ok, m visualizzare il tutto no...

    questo è quello che ho creato... senza risultato!!!
    Codice PHP:
    <?php

    require("dati.php");
    foreach (
    $articolo as $key=>$data){
            echo 
    "<a href=\"articolo.php?articolocucina=".$key."\">".$key["codice"]."</a>
    "
    ;
            echo 
    "<a href=\"articolo.php?articolocucina=".$key."\" title=\"".$data["descrizione"]."\">".$data["descrizione"]."</a>
    "
    ;
    }

    ?>
    e questo è il risultato:
    codice:
    c
    f
    ..............
    EGwebm.com
    ..............

  8. #8
    Originariamente inviato da scherzetto82
    mi sembra un'ottima trovata, sono però ancora fermo sulla pagina lista.php ovvero non visualizzo gli articoli, presenti.... e idem nella pagina artioli.php devo si ripartire da 0 ma adesso mi sento al perso....
    Ricapitolando, mettere nella banca dati la lista come descritta direi che è ok, m visualizzare il tutto no...

    questo è quello che ho creato... senza risultato!!!
    Codice PHP:
    <?php

    require("dati.php");
    foreach (
    $articolo as $key=>$data){
            echo 
    "<a href=\"articolo.php?articolocucina=".$key."\">".$key["codice"]."</a>
    "
    ;
            echo 
    "<a href=\"articolo.php?articolocucina=".$key."\" title=\"".$data["descrizione"]."\">".$data["descrizione"]."</a>
    "
    ;
    }

    ?>
    e questo è il risultato:
    codice:
    c
    f
    Ti posto il codice per vedere la lista di una categoria.
    Codice PHP:
    <?php
    require("dati.php");
    foreach (
    $articolo["cucchiaio"] as $key=>$data){
            echo 
    "<a href=\"articolo.php?catarticolo=cucchiaio&articolocucina=".$key."\" title=\"\">".$data["codice"]."</a>
    "
    ;
            echo 
    "<a href=\"articolo.php?catarticolo=cucchiaio&articolocucina=".$key."\" title=\"".$data["descrizione"]."\">".$data["descrizione"]."</a></span>
    "
    ;
    }
    ?>
    Cosa cambia rispetto al codice che tu hai postato? andiamo ad analizzarlo.

    innanzitutto:
    da
    Codice PHP:
    foreach ($articolo as $key=>$data){ 
    a
    Codice PHP:
    foreach ($articolo["cucchiaio"] as $key=>$data){ 
    Avendo aggiunto le categorie, si deve accedere all'elenco degli elementi della categoria.

    In pratica si deve accedere alla seconda dimensione dell'array e non alla prima.
    da
    Codice PHP:
    <a href=\"articolo.php?articolocucina=".$key."\" 
    a
    Codice PHP:
    <a href=\"articolo.php?catarticolo=cucchiaio&articolocucina=".$key."\" 
    Dobbiamo infatti passsare alla pagina "articolo.php" anche la categoria.
    Nel caso che tu voglia creare una pagina "lista.php" completamente dinamica, puoi procedere così:

    - Fai 1 ciclo foreach sulla prima dimensione dell'array (categoria)
    - Per ogni categoria esegui un secondo "foreach" sulla seconda dimensione.

    Riesci a realizzarlo?

  9. #9
    Ancora grazie per il tuo contributo...
    sono riuscito a creare il tutto, cercavo si qualcosa per inserire la seconda stringa ma nn trovavo nulla...

    le categorie vengono visualizzate e gli articoli idem senza un minimo di problemi, adesso sto cercando di rendere la pagina lista.php dinamica... sto valutanto se mi conviene, comunque non rinuncio a non provarci...
    mi chiedevo comunque un'altra cosa...
    tornando nella banca dati, io ho questa lista esempio:

    Codice PHP:
    <?php

    $articolo
    ["cucchiaio"]["cucchiaio1"]["codice"]="ABC123"
    $articolo["cucchiaio"]["cucchiaio1"]["descrizione"]="cucchiaio inox modello xyz"
    $articolo["cucchiaio"]["cucchiaio2"]["codice"]="ABC456"
    $articolo["cucchiaio"]["cucchiaio2"]["descrizione"]="cucchiaio inox xyz"
    $articolo["cucchiaio"]["cucchiaio3"]["codice"]="ABC789"
    $articolo["cucchiaio"]["cucchiaio3"]["descrizione"]="cucchiaio modello xyz"

    $articolo["forchetta"]["forchetta1"]["codice"]="DEF123"
    $articolo["forchetta"]["forchetta1"]["descrizione"]="forchetta inox modello xyz";
    $articolo["forchetta"]["forchetta2"]["codice"]="DEF456"
    $articolo["forchetta"]["forchetta2"]["descrizione"]="forchetta modello xyz";

    ?>
    se la trasformo in questa:
    Codice PHP:
    <?php

    {
    $messaggio="cucchiaio1"
    $articolo["cucchiaio"]["$ID"]["codice"]="ABC123"
    $articolo["cucchiaio"]["$ID"]["descrizione"]="cucchiaio inox modello xyz"
    }

    {
    $ID="cucchiaio2"
    $articolo["cucchiaio"]["$ID"]["codice"]="ABC456"
    $articolo["cucchiaio"]["$ID"]["descrizione"]="cucchiaio inox xyz"
    }

    {
    $ID="cucchiaio3"
    $articolo["cucchiaio"]["$ID"]["codice"]="ABC789"
    $articolo["cucchiaio"]["$ID"]["descrizione"]="cucchiaio modello xyz"
    }




    {
    $ID="forchetta1"
    $articolo["forchetta"]["$ID"]["codice"]="DEF123"
    $articolo["forchetta"]["$ID"]["descrizione"]="forchetta inox modello xyz";
    }

    {
    $ID="forchetta2"
    $articolo["forchetta"]["$ID"]["codice"]="DEF456"
    $articolo["forchetta"]["$ID"]["descrizione"]="forchetta modello xyz";
    }


    ?>
    il risultato non cambia, così invece di riscrivere sempre cucchiaio... lascio un ID fisso che prende la stringa da altra parte...
    come idea non la vedo brutta... ma è sbagliata giusto? appesantisco il tutto?
    ..............
    EGwebm.com
    ..............

  10. #10
    per essere corretto è corretto ( a parte "$messaggio="cucchiaio1";" dove $messaggio deve essere $ID).

    Non so onestamente quanto appesantisce l'esecuzione del codice (potresti fare delle prove misurando l'esecuzione dello script per verificarlo).

    A me personalmente però piace di più la soluzione proposta precedentemente cioè:
    Codice PHP:
    $articolo["cucchiaio"]["cucchiaio1"]["codice"]="ABC123";
    $articolo["cucchiaio"]["cucchiaio1"]["descrizione"]="cucchiaio inox modello xyz";
    $articolo["cucchiaio"]["cucchiaio2"]["codice"]="ABC456";
    $articolo["cucchiaio"]["cucchiaio2"]["descrizione"]="cucchiaio inox xyz";
    $articolo["cucchiaio"]["cucchiaio3"]["codice"]="ABC789";
    $articolo["cucchiaio"]["cucchiaio3"]["descrizione"]="cucchiaio modello xyz";

    $articolo["forchetta"]["forchetta1"]["codice"]="DEF123";
    $articolo["forchetta"]["forchetta1"]["descrizione"]="forchetta inox modello xyz";
    $articolo["forchetta"]["forchetta2"]["codice"]="DEF456";
    $articolo["forchetta"]["forchetta2"]["descrizione"]="forchetta modello xyz"
    Ma è solo una impressione personale di maggiore leggibilità.

    Resta il fatto che la struttura da te proposta funzioni.
    (di solito per verificare se è una soluzione possibile, basta che provi la cosa direttamente sul server su cuistai testando....)


    Per la pagina lista.php dinamica, se ti trovi bloccato ed hai bisogno sono qua

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.