creare sistema multi categorie

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve, come posso realizzare un sistema con multi categorie in una mia tabella:

CREATE TABLE `articoli_categorie` (
`id` mediumint(8) unsigned auto_increment,
`titolo` varchar(255), ---> titolo della categoria
`testo` longtext, ---> descrizione della categoria
`data` varchar(100), ---> data di creazione
`active` tinyint(1) , ---> attiva o non attiva.
PRIMARY KEY (`id`));

Mi dite come posso fare?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Intendi dire fare in modo che ogni categoria possa contenere infinite sotto-categorie? Ho realizzato un sistema simile tempo fa. La mia tabella era strutturata in questo modo:
Codice:
CREATE TABLE  `test`.`categorie` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 255 ) NOT NULL ,
`description` TEXT NOT NULL ,
`parent` INT NOT NULL
) ENGINE = MYISAM ;
Nel campo parent inserisci l'ID della categoria "padre". Per le categorie principali semplicemente inserisci 0.

Poi, quando visualizzi le categorie nella pagina Web, in ogni categoria, oltre al suo contenuto, visualizza anche le categorie "figlio". Se nessuna categoria particolare è richiesta visualizza quelle che hanno il campo parent impostato a 0.
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
ciao e grazie mille per avermi risposto..
mi protesti fare un esempio di codice che almeno capisco come fare..

grazie e buona serata.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Ecco a te:
PHP:
<?php
/*
 * Effettuo la connessione al database con la libreria
 * PDO (PHP Data Objects) di PHP5.
 */
try {
    $db = new PDO('mysql:host=localhost;dbname=test', 'root');
}
/*
 * Gestisco eventuali errori dovuti alla connessione.
 */
catch (PDOException $e) {
    die(sprintf(
        'Impossibile connettersi al database: "%s".',
        $e->getMessage()
    ));
}

/*
 * Controllo che la categoria sia stata specificata.
 */
if (isset($category = $_GET['category'])) {
    /*
     * Controllo se la categoria esiste nel database.
     */
    $stm = $db->prepare('SELECT COUNT(*) FROM categories WHERE id = ?');
    $stm->execute(array($category));

    if ($stm->fetchColumn() == 0) {
        die(sprintf(
            'Non esiste una categoria con ID "%s".',
            $category
        ));
    }

    /*
     * Recupero i dati della categoria.
     */
    $stm = $db->prepare('SELECT * FROM categories WHERE id = ?');
    $stm->execute(array($category));

    $data = $stm->fetch(PDO::FETCH_ASSOC);

    /*
     * Recupero le sotto-categorie.
     */
    $stm = $db->prepare('SELECT * FROM categories WHERE parent = ?');
    $stm->execute(array($category));

    $sub_categories = $stm->fetchAll(PDO::FETCH_ASSOC);

    // ...
}
/*
 * Se nessuna categoria è stata specificata.
 */
else {
    /*
     * Recupero tutte le categorie.
     */
    $stm = $db->query('SELECT * FROM categories WHERE parent = 0');
    $categories = $stm->fetchAll();

    // ...
}
Il file è da completare. I primi puntini vanno sostituiti con la visualizzazione delle sotto-categorie e dei record presenti nella categoria, i secondi con la visualizzazione delle categorie principali.
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
si, ma non ci ho capito nulla......

perché io programmo ancora con mysql_query, mysql_connect..

mi protesti scrivere con questi.

grazie mille e scusa molto.
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Se usi ancora la libreria mysql forse è davvero giunto il momento di passare a PDO. Ti consiglio di leggere qualche tutorial in merito, ad esempio la nostra guida. PDO è molto più performante di mysql, che è deprecata.

ciao, mi fai un esempio completo per testare se l'hosting dove ho il sito è attivo.

Perché ho provato ma da errori:
Codice:
<?php
# gestione delle eccezioni in fase di connessione con PDO

// collegamento al database
$col = 'mysql:host=62.xxxx;dbname=Sql4384xxx';

// blocco try per il lancio dell'istruzione
try {
  // connessione tramite creazione di un oggetto PDO
  $db = new PDO($col , 'Sqlxxx', 'd5xxx');
}
// blocco catch per la gestione delle eccezioni
catch(PDOException $e) {
  // notifica in caso di errorre
  echo 'Attenzione: '.$e->getMessage();
}
  # utilizzo del metodo query()
// lancio di una transazione con PDO
$db->beginTransaction();
// definizione della query 
$sql = 'SELECT FROM pagine ORDER BY id';  

// visualizzazione dei risultati
foreach($db->query($sql) as $row){  
  echo $row['titolo']. '<br>';	
  echo $row['data']. '<br>';  
  echo $row['active']. '<br>';  
}
?>

Mi da errore:
Warning: Invalid argument supplied for foreach() in /web/htdocs/xxxxx/home/pdo.php on line 24

Mi dici come mai?

Poi oltre a qui hai altri esempi.

grazie mille.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Onestamente non ne ho idea. Qualche versione fa PHP generava un E_DEPRECATED quando la si usava, ma poi l'errore è stato tolto perché causava troppi problemi, dato che la maggior parte degli script si appoggiavano alla libreria. In ogni caso è meglio smettere di usarla: i sorgenti sono confusi e scritti male, ed è poco sicura. Come se non bastasse non è nemmeno orientata agli oggetti.
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Puoi passare tranquillamente a MySQLi o PDO, è probabile che l'idea degli sviluppatori sia quella di rendere le funzioni mysql deprecate in futuro.
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
L'importante è non usare MySQL. Io uso PDO perché, in questo modo, l'applicazione si può adattare a qualunque DBMS senza bisogno di cambiare i sorgenti. Come mai PDO ti sta così antipatico? :)

perché ciò la sfiga.

nel 2005 avevo iniziato e poi abbandonato perché non c'era ancora nessun hosting che supportava php5 e tutti mettevano il php4.
e mo nel 2011 mi devono levare mysql che palle.

Mi dici cosa cambia da mysql_connect , mysql_query

devo aggiungere solo una i?
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
comunque mi fai alcuni esempi come inserire/ modificare /cancellare

perché il sito che sto facendo è molto semplice e viene gestito da una sola persona anche se si ha la possibilità di aggiungere altre persone come fossero i collaboratori.

faccio solo INSERT, UPDATE, SELECT , DELETE.

grazie mille.
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
allora, mi ci rimetto , mi dite come posso far semplice due menu a tendina che uno scelga la prima categoria e poi con l'altra menu a tendina scelga la seconda ?

come posso fare?

comunque vedetevi i sorgenti di wordpress e il file wp-db.php dentro la cartella wp-includes.
usano ancora : mysql_connect

quindi anche io uso ancora come fanno loro... tanto io faccio per uso personale.

Mi dite come posso fare questo sistema?

grazie mille.
 
Discussioni simili
Autore Titolo Forum Risposte Data
R Come creare sistema Add to homescreen PHP 3
R [PHP] Creare sistema random PHP 3
F come creare un sistema ranking tra due tabelle (TOMBOLA/BINGO) PHP 8
S Creare Sistema di API Request e Response libero e protetto PHP 7
P Creare un sistema di alert PHP 6
E Creare un testo trasparente dietro un div HTML e CSS 5
M Creare traccia di download file sul server HTML e CSS 2
A Cerco programmatore/sviluppatore per creare forum Offerte e Richieste di Lavoro e/o Collaborazione 2
L Creare ancore interne alla pagina PHP 1
I Creare un banner temporaneo JavaScript Javascript 0
C Creare Tabella Dati Meteo prelevandoli da dei Tags in un altro foglio PHP 27
simgia Cordova errore quando cerco di emulare o creare la app Sviluppo app per Android 2
U PHP creare un file excel dopo ricerca nel DB PHP 0
A Creare un cronometro PHP 5
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
F Creare elementi html con javascript Javascript 3
Shyson Modificare codice e creare link PHP 0
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
L Creare una forma geometrica Photoshop 1
M [Cerco] aiutanti per creare sito Offerte e Richieste di Lavoro e/o Collaborazione 8
S Libreria PHP per creare file dwg o dxf PHP 0
L Creare un countdown con giorno specifico della settimana PHP 3
W Creare link di una dato Classic ASP 0
W creare file .jar Java 2
M Creare con il Vb 2010 Il Classico Notes di Windows Vista Visual Basic 1
MarcoGrazia Creare una password Snippet Javascript 0
J creare pagina php di prenotazione PHP 5
A Creare un modulo di ricerca avanzata con dreamweaver HTML e CSS 0
INTEROPERABILITY Sviluppatrice/formatrice creare APP Offerte e Richieste di Lavoro e/o Collaborazione 0
L Creare una pagina pre-home WordPress 1
G Creare side-bar non visibile da dispositivi mobile HTML e CSS 0
L creare oggetti da una classe tramite un form Javascript 0
Web93 CREARE SITO WEB COMICS CON WORDPRESS WordPress 0
maxnegri Contare sessioni aperte e creare condizione PHP 1
A Come creare pulsante donazione PayPal HTML e CSS 5
L [CERCO] Creare blog su WordPress con tema Divi Offerte e Richieste di Lavoro e/o Collaborazione 3
F Creare un set di date a seconda del frazionamento scelto da inserire in MySQL PHP 6
R [Photoshop] Creare Azione Photoshop 1
F [PHP] creare tabella e tasto cerca PHP 3
A Creare con Javascript un percorso all'interno di uno spazio Javascript 0
B [PHP] Creare PDF dopo inserimento dati form PHP 4
A [HTML] Creare sito web per eLearnig HTML e CSS 2
R Bootstrap 4 - creare una finestra di testo responsive sopra un Carousel jQuery 1
Spenalzo Creare tabelle multiple con Access via VBA MS Access 2
D [PHP] Consigli su come creare form PHP 1
I Creare Qsl radioamatore con testo editabile Presentati al Forum 1
T [PHP] Creare Honeypot per form contatti PHP 10
S [PHP] Creare collegamento filtri di ricerca al database PHP 6

Discussioni simili