Visualizzazione risultati 1 fino 20 di 20

Discussione: Categorie articoli

  1. #1
    Guest

    Angry Categorie articoli

    Buonasera, sto creando uno script con degli articoli di varie categorie e avrei bisogno di suddividerle.

    Ho già una tabella 'employees' con le 5 colonne id_art, titolo_art, testo_art, foto_art, data_art. Presumo bisogna aggiungerne un altra di nome categoria_art (Credo...) e poi cosa devo fare?

    Attendo risposte

  2. #2
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    vuoi mostrare tutte le categorie , solo ordinate per "categoria_art" , o vuoi visualizzare solo una categoria alla volta in base alla selezione dell'utente.

  3. #3
    Guest

    Predefinito

    Mi basterebbe anche per esempio:

    Nome Categoria
    titolo 1
    titolo 2
    titolo 3
    ... etc.

    Altra categoria
    titolo 1
    titolo 2
    titolo 3
    ... etc.


    Non so se hai capito (Y)

  4. #4
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Quindi mostrarle tutte solo ordinate e raggrupate per "categoria_art" .... ok.

    come prima cosa devi inserire nella tabella la "categoria_art" , quindi esegui un ordinamento dei dati per categoria
    SELECT * FROM `tabella` WHERE `campo` = xxx ORDER BY `categoria` ASC

    adesso la tua tabella sara' ordinata per categoria in modo ascendente

    sei hai problemi per quanto riguarda l'aspetto grafico della tabella , chiedi pure ..

  5. #5
    Guest

    Predefinito

    Bhe direi, son più di una categoria perciò come fa il codice a capire quale sono i campi da visualizzare sotto la categoria?

    Tipo se ho tre categorie

    Azione
    CAMPO 1
    CAMPO 1
    CAMPO 1
    CAMPO 1


    Commedia
    CAMPO 1
    CAMPO 1
    CAMPO 1
    CAMPO 1

    Fantascienza
    CAMPO 1
    CAMPO 1
    CAMPO 1
    CAMPO 1

    Come fa a visualizzare i "CAMPO" sotto?

    Non capisco (Si son stupido )

  6. #6
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    il PHP ti restituisce un elenco ordinato , tipo:

    categaria1 * nome1
    categaria1 * nome2
    categaria1 * nome3
    categaria2 * nome1
    categaria2 * nome2
    ...

    per il tuo esempio , puoi inserire un controllo nel flow row che per ogni categaria 'DIVERSA' crea una nuova tabella , ed ogni tabella ha un head con il nome della categoria

    ma ci sono anche molti altri modi .. o anche semplicemente cambiando lo stile con i css : quindi ad ogni categoria assegni una classe diversa.

    dimmi se hai problemi..

    DEMO
    Ultima modifica di NLSweb : 22-07-2014 alle ore 20.42.55

  7. #7
    Guest

    Predefinito

    Ho visto la demo che hai postato, è proprio così che lo volevo fare... però per ora il risultato è così:



    Help me, codice:

    Codice PHP:
    <div id="main">
    <h2>Categorie</h2>
    <?php

    $sql
    = "SELECT * FROM articoli ORDER BY categoria_art ASC";
    $query = @mysql_query($sql) or die (mysql_error());


    //verifichiamo che siano presenti records
    if(mysql_num_rows($query) > 0){
    // se la tabella contiene records mostriamo tutti gli articoli attraverso un ciclo

    while($row = mysql_fetch_array($query)){
    $id_art = stripslashes ($row['id_art']);
    $tiny = $row['testo_art'];
    $titolo = $row['titolo_art'];
    $pic = $row['foto_art'];
    $categoria = $row['categoria_art'];
    $data = $row['data_art'];
    $link = "<br><div class='fb-like' data-href='https://developers.facebook.com/docs/plugins/' data-layout='button_count' data-action='like' data-show-faces='false' data-share='true'></div>";

    echo
    "<div id='article'>";
    echo
    "<h3>" .$categoria. "</h3>";
    echo
    "<a href='articolo.php?id=$id_art'>" .$titolo. "</a>";
    echo
    "</div>";
    echo
    "<hr>";
    //valorizziamo una variabili con il link all'intero articolo
    }

    }
    else {
    echo
    "<div id='error'>";
    echo
    "Nessun articolo";
    echo
    "</div>";
    }
    ?>
    </div>

  8. #8
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Codice PHP:
    /* apri il table prima di iniziare il ciclo while */
    echo "<table>";

    /* nel mio esempio ordina per data , quindi creo una variabile che contiene il primo valore del array */
    /* chiaramente i dati sono stati gia' ordinati .. */
    $i=0; $data = $datanovita[0];

    /* ed inizio il ciclo di while */
    while($row = mysqli_fetch_array($result)) {

    $titolonovita[$i]=$row['titolo'];
    $datanovita[$i]=$row['data'];
    $brevenovita[$i]=$row['breve'];

    /* eseguo il controllo della data x creare una nuova tabella , nel tuo caso sara' la categoria */
    /* ogni volta che ci sara' un nuovo valore chiudo la tabella precedente e ne creo una nuova */
    /* quindi riassegno il nuovo valore alla variabile */
    if($data!=$datanovita[$i]){
    $data=$datanovita[$i];
    echo
    "</table>";
    echo
    "<br/><h1>".$data."</h1>";
    echo
    "<table>";
    }

    /* qui scrivo i contenuti della tabella */

    echo "<tr>";
    echo
    "<td class=\"titolo\">".$titolonovita[$i]."</td>";
    echo
    "</tr>";
    echo
    "<tr>";
    echo
    "<td class=\"breve\">".$brevenovita[$i]."</td>";
    echo
    "</tr>";

    $i = $i + 1;
    }

    /* chiudo l'ultima tabella alla fine del ciclo */
    echo "</table>";
    chiaramente tu personalizzi la tabella come vuoi , io nel mio piccolo esempio ho assegnato delle classi con stili diversi

    spero di sia di aiuto , se hai ancora problemi , chiedi pure..

  9. #9
    Guest

    Predefinito

    Non vorrei essere rompi c*******, ma tu mi hai fatto l'esempio con mysqli e io ho fatto tutto con mysql, mi potrei aiutare ad adatare il tuo codice col mio?

  10. #10
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    ...il principio di fondo e' lo stesso ..

    io ho definito degli array che contengono i valori dei miei campi , ed una variabile per il controllo della categoria

    alla variabile all'inizio avra' un valore vuoto

    quindi all'interno del ciclo di while inserisci un IF che controlla se la categoria e' diversa dalla variabile allora crea una nuova tabella

    tutto qui..

    se non vuoi usare una tabella (come nel tuo esempio) ma degli elementi con classe diversa va bene uguale , esempio:

    apro div prima del ciclo
    controllo se cambia la categoria , se si chiudo il div e ne apro uno nuovo
    quindi assegno le classi agli elementi (esempio: la categoria H1 , i campi H3 , ecc.)
    quando chiudo il ciclo chiudo l'ultimo div

    durante il ciclo puoi anche assegnare un id univoco ad ogni categoria se vuoi

    in questo non si differisce tra MySQL e MySQLi , poiche' e' solo PHP....

  11. #11
    Guest

    Predefinito

    Sarò stupido io ma proprio non ce la faccio, ho fatto tutto quello che mi hai detto però o mi da errori o non mi fa vedere niente.



    Ci son quasi riuscito (forse), i campi vengono visualizzati sotto la propria categoria però ora mi dice

    Notice: Undefined variable: categorianuova in C:\newxampp\htdocs\sardafilm\categorie.php on line 114

    Codice PHP:
    113 echo "<table>";
    114 $i=0; $categoria = $categorianuova[0];
    115 while($row = mysql_fetch_array($query)){
    Ultima modifica di atzendei : 22-07-2014 alle ore 22.43.04 Motivo: Aggiornamento

  12. #12
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    se vuoi che ci dia uno sgurado posta il codice ..
    intando questo e' l'intero sorgente del mio esempio...
    Codice PHP:
    <!DOCTYPE html>
    <html>
    <head>
    <style>
    .titolo{
    font-family:Arial, serif;
    font-size:100%;
    color:blue;
    }
    .breve{
    font-family:Arial, serif;
    font-size:80%;
    color:black;
    }
    h1{
    font-family:Arial, serif;
    font-size:100%;
    color:red;
    }
    </style>
    </head>
    <body>
    <?php
    $con
    =mysqli_connect("localhost","..............","................","..................");
    if (
    mysqli_connect_errno()) {
    echo
    "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $result = mysqli_query($con,"SELECT * FROM laTuaTabella WHERE campo='tuoValoreDiRicerca' ORDER BY `tuoCampoDiOrdinamento` ASC");

    /* Creo i vettori che contengono i risultati della query */
    $titolonovita=array();
    $datanovita=array();
    $brevenovita=array();

    echo
    "<table>";
    $i=0; $data = $datanovita[0];

    while(
    $row = mysqli_fetch_array($result)) {

    $titolonovita[$i]=$row['titolo'];
    $datanovita[$i]=$row['data'];
    $brevenovita[$i]=$row['breve'];

    if(
    $data!=$datanovita[$i]){
    $data=$datanovita[$i];
    echo
    "</table>";
    echo
    "<br/><h1>".$data."</h1>";
    echo
    "<table>";
    }

    echo
    "<tr>";
    echo
    "<td class=\"titolo\">".$titolonovita[$i]."</td>";
    echo
    "</tr>";
    echo
    "<tr>";
    echo
    "<td class=\"breve\">".$brevenovita[$i]."</td>";
    echo
    "</tr>";


    $i = $i + 1;
    }
    echo
    "</table>";

    mysqli_close($con);
    ?>
    </body>
    </html>

  13. #13
    Guest

    Predefinito

    L'errore è cambiato, Notice: Undefined offset: 0 in C:\newxampp\htdocs\sardafilm\categorie.php on line 116

  14. #14
    Guest

    Predefinito

    Codice PHP:
    <div id="main">
    <h2>Categorie</h2>
    <?php

    $sql
    = "SELECT * FROM employees ORDER BY categoria_art ASC";
    $query = @mysql_query($sql) or die (mysql_error());


    //verifichiamo che siano presenti records
    if(mysql_num_rows($query) > 0){
    // se la tabella contiene records mostriamo tutti gli articoli attraverso un ciclo
    echo "<table>";
    $titolonovita=array();
    $categorianuova=array();
    $i=0; $categoria = $categorianuova[0];
    while(
    $row = mysql_fetch_array($query)){
    $titolonovita[$i]=$row['titolo_art'];
    $categorianuova[$i]=$row['categoria_art'];

    if(
    $categoria!=$categorianuova[$i]){
    $categoria=$categorianuova[$i];
    echo
    "</table>";
    echo
    "<br/><h1>".$categoria."</h1>";
    echo
    "<table>";
    }
    echo
    "<tr>";
    echo
    "<td class=\"titolo\">".$titolonovita[$i]."</td>";
    echo
    "</tr>";

    }

    }
    else {
    echo
    "<div id='error'>";
    echo
    "Nessun articolo";
    echo
    "</div>";
    $i = $i + 1;
    }
    echo
    "</table>";
    ?>
    </div>
    Il codice è questo poi sotto ho il sistema del login quindi non c'entra niente.

  15. #15
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    l'incremeto della variabile di $i e' posta dentro ELSE inceve deve stare dentro il ciclo di while !

  16. #16
    Guest

    Predefinito

    Non cambia nulla

  17. #17
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Notice: Undefined variable: categorianuova in C:\newxampp\htdocs\sardafilm\categorie.php on line 114
    cambia

    Codice PHP:
    $categoria = "";

  18. #18
    Guest

    Predefinito

    Sei un mito, funziona ora, grazie mille

  19. #19
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    prego, e buon lavoro...

  20. #20
    Guest

    Predefinito

    Altrettanto

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •