- Home
- Categorie
- Coding e Sistemistica
- PHP
- Recuperare tutti gli elementi con paging
-
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
-
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.
-
ehh no ho già provato a mettere i numeri dal 9 in su...
-
e cosa ti restituisce mettendo 9?
-
Fatal error: Call to a member function RecordCount() on a non-object in /products.php on line 82 ``` sempre questo
-
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...
-
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 scriptxxx
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
-
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!
-
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
xx
**
-
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
-
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...