Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Operazioni con Array

  1. #1
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228

    Operazioni con Array

    Ciao a tutti, spiego il mio problema:

    Ho form di aggiunta di notizie che una volta inviato non fa altro che controllare se un tag è presente nella tabella tags e incrementare di 1 il valore del record se il tag esiste, altrimenti aggiunge alla tabella tags una nuova voce con valore 1. Poi tramite uno script creerò la classica tag-cloud.

    Ora devo creare un form di aggiornamento delle notizie che faccia esattamente la stessa cosa, ma in modo più controllato.
    Supponiamo di avere una tabella tipo questa:
    codice:
    rosso 1
    verde 2
    blu   1
    e che i tag riferiti a quella notizia siano rosso, verde, blu vorrei far sì che se elimino verde il valore nella tabella scali di 1 automaticamente e se inserisco bianco si vada ad aggiungere il record bianco con valore 1 nella tabella tags. Naturalmente se nel campo lascio rosso e blu questi non dovranno far incrementare di 1 i valori nella tabella tags perchè erano già presenti. Inoltre se il valore del tag arrivasse a 0 vorrebbe dire che quel tag non è più presente in alcuna notizia e quindi va eliminato anche dalla tabella tags.

    Avevo pensato di fare delle operazioni sugli array passando sia la lista dei tag presenti prima della modifica sia quelli nuovi, ma non so quale operazione soddisfa le mie esigenze.

  2. #2
    non ho capito come hai associato i tag alla notizia... nel senso come fai a sapere quando editi la notizia X che ha associati i tag a-b-c?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228
    Più o meno sono vicino alla soluzione:

    la notizia da aggiornare mi compare con un campo input di tipo text chiamato tag contenente i tag associati a quella notizia (convertiti da numerici a testuali): bianco, rosso, verde
    ed un campo input di tipo hidden chiamato tag_old contentente gli stessi valori.

    L'utente può modificare ovviamente solo quelli editabili potendo cambiare alcune voci, aggiungerne o cancellarne altre.

    nella pagina che recupera i dati ora ho questo:
    Codice PHP:
    $strTagsOld "bianco, rosso, verde";
    $strTags "bianco, verde, blu; 
    Le operazioni di verifica tag comuni, nuovi e cancellati le farei eseguire rispettivamente da questo codice:
    Codice PHP:
    $strTagsCommon array_intersect($strTagsOld$strTags); // recupero solo i tag presenti sia prima che dopo l'aggiornamento
    $strTagsNew array_diff($strTags$strTagsOld); // recupero solo i nuovi tag presenti nella pagina di aggiornamento
    $strTagsDel array_diff($strTagsOld$strTags); // recupero solo i tag vecchi e non presenti nella pagina di aggiornamento 
    Ma come risultato ottengo un insperato:
    codice:
    Warning: array_intersect() [function.array-intersect]: Argument #1 is not an array in /path/pagina.php on line 153
    Warning: array_diff() [function.array-diff]: Argument #1 is not an array in /path/pagina.php on line 169
    Warning: array_diff() [function.array-diff]: Argument #1 is not an array in /path/pagina.php on line 197
    Qualche idea?

  4. #4
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228

    Risolto

    Ok, capito... le stringhe non sono Array bastava leggere.

    Risolto!

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.