Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    suggerimento per CMS con dati tabellari

    Sto realizzando un CMS per un sito, e sono in cerca di una soluzione per un problema in particolare.
    Un'area del sito, quella in cui sono presentati i prodotti, prevede - per ciascuna linea - una serie di dati tabellari. In particolare, per ogni linea sono presenti due tabelle, una con tre diverse colonne di dati, l'altra con 4 colonne.
    Le tabelle possono contenere anche molti dati (decine di righe).
    Ora, dovendo realizzare un CMS for dummies, in cui sia data la possibilità di:
    • Modificare i dati presenti
    • Cancellare i dati presenti
    • Inserire nuovi dati *

    * considerando che può essere necessario inserirli non in coda ai dati presenti...
    mi chiedevo: quale può essere la soluzione migliore?
    In particolare, due sono i punti su cui vorrei qualche consiglio / dritta:
    [list=1][*]Come passare / ricevere i valori; se nella pagina di modifica presento n campi, ciascuno identificato - ad es. - da un nome costituito da nome colonna + n° id, come faccio poi a ricevere questi dati, nella pagina che deve elaborarli, non potendo sapere prima quanti saranno?[*]Come posso inserire un nuovo dato ad un certo punto della tabella?[/list=1]
    Qualsiasi suggerimento - consiglio - indicazione - esempio - tutorial e quant'altro sarà mooolto apprezzato!
    metatad
    graphic & web design

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    alla prima forse posso risponderti...
    $_POST (o $_GET) è un array, quindi per sapere quanti valori sono stati passati basterà un foreach

    per la seconda domanda non ho proprio idea...forse posso consigliarti di usare jQuery->sortable ma non so se vuoi/puoi usare js e non ho ben capito cosa ti serve di preciso...prova ad essere più chiaro magari qualche altro utente potrà darti una mano

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Ok per il ciclo for...
    Sul secondo punto:
    immaginiamo che ci sia una tabella con questi dati
    Marchio A Etichetta A Peso 100gr
    Marchio A Etichetta B Peso 200gr
    Marchio B Etichetta A Peso 150gr

    che, nella tabella del db, saranno identificati da un id progressivo, per cui alla prima riga sarà attribuito l'id 1, alla seconda il 2, alla terza il 3, e così via.
    Ad un dato momento, l'utente/amministratore deve aggiungere un nuovo prodotto a Marchio A, che dunque dovrà apparire, nella tabella pubblicata nella pagina, nella terza posizione, cioè così:
    Marchio A Etichetta A Peso 100gr
    Marchio A Etichetta B Peso 200gr
    Marchio A Etichetta C Peso 150gr
    Marchio B Etichetta A Peso 150gr

    Come fare ad inserire un nuovo dato in quella posizione?
    metatad
    graphic & web design

  4. #4
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    ammesso che l'utente passi il valore in cui deve apparire l'elemento
    Codice PHP:
    for($i=$pos_elemento;$i<=mysql_num_row($query); $i++){
    mysql_query("UPDATE tabella SET id='".$i+1."' WHERE id='".$i."'");
    }
    e poi aggiungi l'elemento con id = $pos_elemento 
    prova così....è l'unica idea che ho al momento...magari ci sono metodi migliori

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  5. #5
    saranno identificati da un id progressivo, per cui alla prima riga sarà attribuito l'id 1, alla seconda il 2, alla terza il 3, e così via.
    Chi ha deciso che deve essere per forza così? E inoltre chi ha deciso che l'id progressivo univoco che identifica la riga deve anche idicarne l'ordine?

    Fossi in te userei l'id solo per identificare la riga (in fase di eliminazione, modifica ecc)
    Mentre agiungere nel DB un campo SUP che contiene l'id della riga superiore (un po' come le linked list)

    Quindi:

    Riga A - SUP = 0 ( o null, la prima insomma)
    Riga B - SUP = (id riga A)
    Riga C - SUP = (id riga B)


    Mettiamo che vuoi aggiungere una riga X tra B e C ti basta impostare come SUP di X l'id di B e come SUP di C l'id di X.

    Spero di essermi spiegato bene, andavo un po' di fretta.

    Saluti
    Stefano

  6. #6
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    vero.....figa la linked list implementata su DB....lo sai che non ci avevo mai pensato?

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Rispetto ad entrambe le soluzioni, ho due diverse perplessità.
    Mi chiedo - e vi chiedo...:
    - nel caso della soluzione proposta da Oronzo, sa che serve (per capire io) la parte in rosso della stringa?
    for($i=$pos_elemento;$i<=mysql_num_row($query); $i++){
    - nel caso della soluzione di LoRdCoStE, invece, va bene se ho tabelle con poche righe, ma se sono decine, e l'inserimento e tra le prime, devo modificare a cascata tutti i valori susseguenti, no? Allora, dov'è il vantaggio rispetto alla soluzione precedente?
    metatad
    graphic & web design

  8. #8
    Io ti direi di aggiungere un campo "posizione"...e lì dentro setterai ovviamente la posizione di visualizzazione.

    Oppure (soluzione non troppo bella) potresti mettere nel campo posizione, invece che dei numeri, delle lettere dell'alfabeto e ordinare i dati secondo posizione...

  9. #9
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    con la linked list non è necessario modificare a cascata
    0 -> 3 -> 5 -> 4 -> 2 -> 7 -> 6
    per inserire un record X tra 3 e 5 basta fare in modo che 3 punti a X e X punti a 5
    0 -> 3 -> X -> 5 -> 4 -> 2 -> 7 -> 6
    i restanti valori continuerano a puntare correttamente!

    la soluzione che ho postato io è a cascata

    a partire dalla posizione di inserimento fino alla fine dei record in maniera progressiva{
    aumenta l'id di una unità
    }
    aggiungi elemento con id = posizione!


    P.S: mi chiamo Max, non Oronzo!

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Scusa Max, ho scritto male il tuo nickname!...
    Ok, ho capito la questione della linked list... però non va bene per me, perchè ci sono valori che si ripetono... una cosa tipo:
    MarchioA | Etichetta A | Peso 100gr
    MarchioA | Etichetta B | Peso 150gr
    MarchioB | Etichetta A | Peso 300gr
    MarchioC | Etichetta C | Peso 100gr

    etc. etc.
    metatad
    graphic & web design

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 © 2024 vBulletin Solutions, Inc. All rights reserved.