• User Attivo

    Prova a postare com'è fatto il database e un record di dati, vediamo di venirne a capo...:D


  • User

    Ok ho avuto quello che volevo:

    -- 
    -- Struttura della tabella `files_categorie`
    -- 
    
    CREATE TABLE `files_categorie` (
      `ID_categoria` int(10) NOT NULL auto_increment,
      `categoria` varchar(150) NOT NULL default '',
      `in_homepage` tinyint(1) default '1',
      PRIMARY KEY  (`ID_categoria`)
    ) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=latin1 AUTO_INCREMENT=19 ;
    
    -- 
    -- Dump dei dati per la tabella `files_categorie`
    -- 
    
    INSERT INTO `files_categorie` (`ID_categoria`, `categoria`, `in_homepage`) VALUES (9, 'Dairy foodstuff', 1),
    (10, 'Sweets', 1),
    (11, 'Canned foodstuff', 1),
    (12, 'Pasta & Rice', 1),
    (13, 'Vegetables & Seafood in oil', 1),
    (14, 'Coffee & Coffee machines', 1),
    (15, 'Truffles', 1),
    (16, 'Fruits', 1),
    (17, 'Pork Salami range', 1),
    (18, 'Balsamic vinegar', 1);
    
    ```quindi si parte da 9 ? mmm... ma in hompage son tutte 1? :o

  • User Attivo

    in_homepage ha il sapore di un flag... la selezione la devi effettuare sul campo ID_categoria. Prova a mettere:

    WHERE NE.ID_categoria=9


    sperando di ottenere Dairy foodstuff.


  • User

    ehh no ho già provato a mettere i numeri dal 9 in su... :mmm:


  • User Attivo

    e cosa ti restituisce mettendo 9?


  • User
    Fatal error:  Call to a member function RecordCount() on a non-object in /products.php on line 82
    ``` sempre questo

  • User Attivo

    Leggendo la query nel primissimo post di questo thred, si può notare che i file pdf sono archiviati nella tabella files mentre in files_categorie c'è il tipo di file associato ad ogni categoria.

    Pertanto sarebbe utile vedere un record di files non di files_categorie...
    :ciauz:


  • User

    Allora dopo aver divorato una guida sulla programmazione php e dopo aver letto tutti gli script per fare il paging da una lista file dal db mysql ho cercato in tutti i modi ma ne sono venuto a capo solo staticamente...
    ho incluso la clausola LIMIT e ho creato una seconda pagina products.php
    ovvero:
    nella pagina products.php ci sarà questo:
    [php] $sql = "SELECT *
    FROM files NE
    LEFT JOIN files_categorie NC
    ON NE.ID_categoria = NC.ID_categoria
    ORDER BY categoria, data DESC
    LIMIT 0, 9";[/php]e nella pagina products2.php ci sarà questo:
    [php] $sql = "SELECT *
    FROM files NE
    LEFT JOIN files_categorie NC
    ON NE.ID_categoria = NC.ID_categoria
    ORDER BY categoria, data DESC
    LIMIT 10, 18";[/php]e inserido i link manualmente a fondo lista.
    Però ormai è una questione personale implementare il paging a questo script❌x❌x❌x
    Intanto ti lascio questo per la tabella files:

    CREATE TABLE `files` (
      `ID_file` int(10) unsigned NOT NULL auto_increment,
      `titolo` varchar(150) collate latin1_bin NOT NULL default '',
      `descrizione` text collate latin1_bin,
      `slug` varchar(150) collate latin1_bin default NULL,
      `data` date default NULL,
      `ID_categoria` int(10) NOT NULL default '0',
      `nome_file_effettivo` varchar(200) collate latin1_bin NOT NULL default '',
      `nome_file` varchar(200) collate latin1_bin NOT NULL default '',
      PRIMARY KEY  (`ID_file`)
    ) ENGINE=MyISAM AUTO_INCREMENT=31 DEFAULT CHARSET=latin1 COLLATE=latin1_bin AUTO_INCREMENT=31 ;
    
    -- 
    -- Dump dei dati per la tabella `files`
    -- 
    
    INSERT INTO `files` (`ID_file`, `titolo`, `descrizione`, `slug`, `data`, `ID_categoria`, `nome_file_effettivo`, `nome_file`) VALUES (14, 0x224c6174204272692220636865657365, '', 0x5f4c61745f4272695f5f636865657365, '2007-09-07', 9, 0x4c61745f4272695f6269732e32303037313030325f3137333130352e706466, 0x4c617420427269206269732e706466),
    
    ```Giuro che se dovessi farlo da zero riuscire ad occhi chiusi :lol:ma implementarlo a questo strano e ripeto strano script mi stà risultando un pò difficile :cry: (contando la mia poca esperienza) in futuro mi ricorderò di questa situazione...:D

  • User Attivo

    Cosa contiene il controllo if che inizia alla riga 82?

    lasciando
    WHERE NE.ID_categoria=9
    prova a commentarlo/eliminarlo del tutto!

    Giuro che se dovessi farlo da zero riuscire ad occhi chiusi :ehehq:ma implementarlo a questo strano e ripeto strano script mi stà risultando un pò difficile 😢 (contando la mia poca esperienza) in futuro mi ricorderò di questa situazione...:D

    E' un classico, mettere le mani su script complessi fatti da altri è notoriamente moooolto più difficile... :bho:
    ...ma più istruttivo!


  • User

    82 if ( $rs->RecordCount() == 0 )

    Ho certo questa funzione da tutte le parti da quanto ho capito e letto che "restituisce, all?interno di una variabile intera, il numero di record presenti in una tabella."
    quindi non posso cencellarlo.. e se provo a mettere:
    **WHERE NE.ID_categoria=9
    **mi dà errore...

    Fatal error: Call to a member function RecordCount() on a non-object in /products.php on line **82
    ❌x❌x
    **


  • User Attivo

    la dovresti avere all'interno dei file inclusi:

    function RecordCount()

    comunque ti chiedevo di eliminare tutto il cilco if

    if ( $rs->RecordCount() == 0 )

    e riga/righe seguenti e vedere cosa restituisce


  • User

    Parse error: parse error, unexpected T_ELSE in /products.php on line **87

    **se elimino tutto il ciclo if e aggiungo la clausola **WHERE NE.ID_categoria=9
    **viene l'errore scritto sopra...

    [php]85 <?php
    86 }
    87 else
    88 {
    89 $cat = "______";
    90 while (!$rs->EOF)
    91 {
    92 $nRiga++;
    93 $class = "";
    94
    95 if ($rs->fields["ID_categoria"] != $cat)
    96 {
    97 $nRiga = 1;
    98 $cat = $rs->fields["ID_categoria"];
    99 ?>[/php]

    comunque **RecordCount **non c'è nel file includes.php che l'unico file incluso...