Pagina 21 di 22 primaprima ... 11 19 20 21 22 ultimoultimo
Visualizzazione dei risultati da 201 a 210 su 217
  1. #201
    Originariamente inviato da Graboid
    Qualcuno puo' dirmi dove trovare un esempio per php5 scaricabile completo di sql per la creazione delle tabelle e pagina per la modifica dell'albero?
    quella di phpclasses.org va anche su PHP5 e 5.1 ... stando ai miei tests
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  2. #202
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Io sto provando la classe su php 4 per ora utilizzando il file per i test che ho trovato su phpclasses.org e secondo me per essere veramente completa mancano solo 2 cose.

    1-Un sistema (anche javascript) per esplodere solo i figli della voce cliccata dato che vedere alberi di grosse dimensioni completamente esplosi crea confusione.

    2-Oltre a movenode() servirebbe una funzione per cambiare l'ordine dei figli

    Partendo da questa situazione

    -Animali
    - - Cane
    - - Gatto
    - - Pesce

    Io vorrei arrivare a questa

    -Animali
    - - Pesce
    - - Cane
    - - Gatto

    Ultima riflessione, secondo voi con alberi di che dimensioni si inizia a sentire la differenza di prestazioni fra mppta e ricorsioni?

    Ciao

  3. #203
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Mi accorgo adesso che sul movenode() servirebbe anche un controllo che impedisca di spostare un branch all'interno di un suo figlio.
    Nella situazione attuale cancella anche il branch padre.
    Capisco che non è un'azione sensata ma sappiamo tutti dove può arrivare per esempio un cliente che "gioca" col nostro cms.

  4. #204
    Se avessi letto tutta la discussione prima di postare avresti trovato le risposte alle tue domande.

    I tuoi dubbi sono già stati fatti presenti.
    Andr3a stesso ha risposto che non ha implementato i controlli perchè il compito della classe è solo quello di spostare ciò che gli chiedi. Se poi non vuoi che si possa spostare all'interno di una classe fglia una classe padre il controllo lo fai a parte, prima di passare i parametri alla classe. per ciò che riguarda l'esplosione dei vari rami anche questo non riguarda la classe. Il compito della classe è quello di gestire un sistema di dati gerarchici (inserire, modificare, cancellare) e di mostrare il sistema stesso. Come questo sistema viene mostrato non è compito della classe. Essa, infatti, dà solo una minima formattazione (l'indendazione). Non dico che non siano cose utili quelle che hai proposto, solo che non sono indispensabili. Ciò non toglie che la classe può essere modificata. Perchè non provi tu a fare quello che chiedi! Sarà un allenamento per te e lavoro in meno per altri che hanno le tue stesse necessità!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  5. #205
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Ho letto tutta la discussione ma almeno una settimana fa ma forse ho dimenticato qualche passaggio .

    Sono d'accordo sulla presentazione dei dati (che intendevo andasse aggiunta nel file di test)e ad aggiungere il controllo sullo spostamento dei branch ci sto lavorando.
    Cambiare l'ordine dei figli mi sembra indispensabile e compito della classe ma per questa operazione penso proprio di non avere abbastanza skill.

    Spero che le mie non siano state prese come critiche, è solo che mi sembra che manchi proprio poco per avere un'ottima classe e soprattutto completa.

  6. #206
    Le critiche fanno bene. Per lo spostamento dell'ordine dei figli sono d'accordo con te. Aspettiamo la mano di andr3a!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  7. #207
    attualmente non esistono metodi ufficiali per muovere su o giù, in cima o in fondo, "foglie" di un ramo o rami interi.

    Forse sarebbe veramente utile al fine di avere una classe quanto più completa possibile e sinceramente ci avevo già pensato ma non ho avuto tempo di implementare / testare.


    Allo stato attuale della classe però puoi spostare in fondo ad un ramo qualunque foglia.

    Per esempio se pippo ha pluto e paperino, clickando sulla freccia della pagina di esempio di pluto e mettendo come id genitore, lo stesso che ha, ovvero quello di pippo, la sequenza diventerà pippo --> paperino e pluto , quindi hai spostato pluto in fondo.

    Il comportamento sarà:
    1 - rimuovi pluto da pippo
    2 - aggiungi pluto a pippo
    paperino in automatico si troverà prima di pluto

    Stando a questo esempio ti è (macchinosamente) possibile ordinare a piacere le foglie.

    Purtroppo non è possibile svincolare l' order by sx poichè i numeri sono alla base del sistema e lo gestiscono per intero.

    dire di mettere paperino prima di pluto ordinando per nome sarebbe superfluo e scorretto, poichè il suo id è per forza di cose dopo quello di pluto.

    Unica variante forse possibile è quela di creare un array con tutti i risultati ed ordinare solo poi le sottochiavi con sort multidimensionali ...

    Spero di essermi spiegato e di averti dato, temporaneamente, un modo relativamente semplice di gestire i sotto ordini.

    Detto questo, se e quando avrò tempo, implementerò il Modified Preorder Trasversal Tree Algoritm in PDO, così da poterlo sfruttare anche su PHP4 / 5 o 5.1 senza PDO grazie al mio porting, e così da non aver più un sistema dedicato ad un solo database o una sola versione (andrebbe su tutti i mysql come su sqlite2/3 come su postgreSQL), stay tuned

    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #208
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Grazie per le risposte!

    Ho trovato questo:

    http://pear.php.net/package/Tree/doc..._DBnested.html

    Verso la fine dellla pagina c'e' la funzione _move che accetta anche un parametro per decidere in che posizione mettere l'elemento da spostare.

  9. #209
    Originariamente inviato da Graboid
    Grazie per le risposte!

    Ho trovato questo:

    http://pear.php.net/package/Tree/doc..._DBnested.html

    Verso la fine dellla pagina c'e' la funzione _move che accetta anche un parametro per decidere in che posizione mettere l'elemento da spostare.
    si, direi che quella Pear è decisamente più completa della mia ma attenzione ... il "mio" MPTTA è diverso dal solito poichè suddiviso in 2 tabelle e non una sola.

    La scelta di questa suddivisione è stata per tentare di migliorare le prestazioni durante alcune operazioni, lettura in primis (una tabella è composta da soli indici numerici unsigned, ergo è una tabella al limite delle migliori prestazioni possibili ed aiuta a leggere i risultati annessi nella tabella 2, quella con i campi di testo indicizzata, però, con un p_id unsigned, facilmente trovabile/indicizzato).

    Questo per dirti che se hai già le tabelle create con il mio metodo dovrai ricrearle con il metodo solito, quello tradizionale.

    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #210
    Non ho letto il codice delle varie librerie proposte, quindi mi scuso se ciò che sto per dire è già roba vecchia.
    Riguardo allo spostamento di un nodo in una qualsiasi altra posizione, avevo pensato una cosa del genere, sfruttando i metodi già disponibili di cancellazione e inserimento:

    Supponiamo di sapere l'ID del nodo da spostare

    START TRANSACTION;
    SET @@FOREIGN_KEY_CHECKS = 0;
    - Leggo il nodo da spostare
    - Elimino il nodo in questione con il solito metodo
    - Inserisco il nodo nella nuova posizione con il solito metodo, forzando tutti i campi, ID compreso, ai valori precedentemente letti
    SET @@FOREIGN_KEY_CHECKS = 1;
    COMMIT;

    Come numero e peso delle query, è meglio o peggio delle soluzioni viste finora?

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.