Joomla.it Forum
Joomla! 1.5.x (versione con supporto terminato) => Joomla! 1.5 => : cdf 15 Apr 2009, 11:40:39
-
Salve,
premetto la mia conoscenza limitata di Joomla e Php…
Ho creato, esternamente a joomla, un archivio bibliografico (php + mysql), che funziona correttamente.
L’archivio è composto da tre pagine:
- ricerca.php : pagina con form per la ricerca nel database;
- risultatiricercatabella.php : tabella con i risultati della ricerca + voce “dettagli”. Questa voce “Dettagli” fa aprire la pagina successiva;
- dettagliricerca.php : Questa pagina visualizza una scheda completa dell’articolo/pubblicazione selezionata.
Ho provato ad inserire le pagine (con codice php) tramite il componente jumi. Ma se funziona bene fino alla tabella dei risultati, poi se voglio vedere i “dettagli” mi presenta una scheda vuota, e mi da questo errore:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/htdocs/www.nomesito.com/home/components/com_jumi/files/archiviobibliografico/dettagliricerca.php on line 22
Questo è la parte del codice della pagina, e l’errore riguarda l’ultima riga
$id = $_GET["id"];
$dati = mysql_query("select * from a_ArchivioBIBLIOGRAFICO where Idarchivio = $id ");
$array = mysql_fetch_array($dati);
Vi sono grato di qualsiasi indicazione/ suggerimento, poiché mi sono un po’ bloccato …
Sono ben accette anche eventuali soluzioni alternative…
Grazie tante
-
prova
$id = $_GET["id"];
$dati = mysql_query("select * from a_ArchivioBIBLIOGRAFICO where Idarchivio = '$id' ");
$array = mysql_fetch_array($dati);
-
Odino, grazie tante per la rapida risposta!
Inserendo la modifica che mi hai indicato, effettivamente scompare la segnalazione indicata sopra.
Il problema è (ma lo faceva anche prima) che mi fa vedere la scheda dei dettagli vuota... cioè non recupera i dati dalla tabella del database...
Sai come mai?
Grazie tante di nuovo.
-
Ciao, fai una prova creando una cartella nell'ftp con il file php all' interno e crea una tabella ex novo nel database e richiama l'indirizzo del file php estenamente a joomla. Ad esempio. www.tuosito.com/tuacartella/file.php, cosi' vedi se il problema sta nel codice. :)
-
Grazie Milcon per il suggerimento, ma io sono prartito proprio da file esterni a joomla (in una cartella esterna ecc.) e funzionano correttamente.
Il problema si presenta con joomla.
Colgo l'occasione per fare una domanda: quando inserisco il codice su joomla, tolgo i collegamenti al database, visto che è lo stesso di joomla (io ho aggiunto la tabella a_ArchivioBIBLIOGRAFICO a quel database) questo è corretto?
(preciso che se non li tolgo mi da il seguente errore:
Fatal error: Call to a member function get() on a non-object in /web/htdocs/www.nomesito.com/home/libraries/joomla/application/module/helper.php on line 268
Grazie
-
fai un print_r dell'array risultante della query e vedi quali dati vengono recuperati.
Occhio, che utilizzare parametri come $_GET[id]
non è molto intelligente :D magari hai sovrascritto qualche variabile ;)
-
Odino,
se non sbaglio (il che è possibilissimo) non viene recuperato nessun dato...
Mannaggia, cosa sta succedendo, visto che fuori da joomla funziona...
Per quanto riguarda $_GET[id]
l'ho ripreso da un vecchio script di html.it, ma se hai suggerimenti ... ti ringrazio!
Non capisco proprio come uscirne... perchè la pagina dei dettagli non mi recupera i dati della tabella??
Grazie tante per l'aiuto.
-
Bewh io userei
$_GET[myextension_id]
devi utilizzare un suffisso per le variabili che probabilmente vengono già utilizzate, come ID, USERNAME, et simili...
-
Ok, questo per non rischiare di utilizzare "termini" standard già utilizzati da joomla... è assolutamente giusto.
Ma perchè, anche con queste modifiche, continua a non visualizzare nulla dalla tabella del database??
Grazie ancora ...
-
prova a far puntare uno script esterno sullo stesso db e stessa tabella, vedi se da lì prendi i dati
-
Se lo script è totalmete esterno a Joomla, funziona correttamente (... selezionando "Dettagli" mi appare la scheda con i dati presenti nel database).
Se la pagina di ricerca e la pagina successiva (tabella con i risultati) sono su joomla e poi faccio aprire la pagina "Dettagli" esternamente a Joomla, funziona correttamente.
(preciso che la pagina dettagliricerca.php è identica a quella inserita su joomla salvo che c'è in più i collegamenti al database)
Se i tre passaggi (ricerca, risultati, dettagli) sono tutti su Joomla, la pagina dei dettagli non riporta i dati presenti sul database.
Preciso che richiamo così la pagina "Dettagli":
echo "<td><a href=\"index.php?option=com_jumi&fileid=17?Id_archivio=$array[Idarchivio]\">Dettagli</td> ";
Questo è invece il codice php della pagina dei dettagli:
<?php
$Id_archivio = $_GET['Id_archivio'];
$dati = mysql_query("select * from a_ArchivioBIBLIOGRAFICO where Idarchivio = '$Id_archivio' ");
$array = mysql_fetch_array($dati);
echo "<tr><td bgcolor=#F7F7F7>Titolo: </td><td bgcolor=#F7F7F7>$array[Titolo]</td></tr>";
echo "<tr><td>Autore/i: </td><td>$array[Autore]</td></tr>";
echo "<tr><td bgcolor=#F7F7F7>Fonte bibliografica: </td><td bgcolor=#F7F7F7>$array[FonteBibliografica]</td></tr>";
if ($array[Numero_Consec] != "")
{
//se questa variabile non è vuota stampo la casella con il collegamento
echo "<tr><td>N°: </td><td>$array[Numero_Consec]</td></tr>";
}
else
{
echo ""; //altrimenti non visualizzo niente
}
echo "<tr><td bgcolor=#F7F7F7>Anno pubblicazione: </td><td bgcolor=#F7F7F7>$array[Data_Pubblicazione]</td></tr>";
echo "<tr><td>Lingua: </td><td>$array[Lingua_Originale]</td></tr>";
echo "<tr><td bgcolor=#F7F7F7>Tipo di pubblicazione: </td><td bgcolor=#F7F7F7>$array[Tipo_Pubblicazione]</td></tr>";
echo "<tr><td>Tipologia: </td><td>$array[Tipologia]</td></tr>";
echo "<tr><td bgcolor=#F7F7F7>Parole chiave: </td><td bgcolor=#F7F7F7>$array[Parole]</td></tr>";
if ($array[WWW] != "")
{
//se questa variabile non è vuota stampo la casellaa con il collegamento
echo "<tr><td>Sito Web: </td><td><a href=$array[WWW]>$array[WWW]</a></td></tr>";
}
else
{
echo ""; //altrimenti non visualizzo niente
}
if ($array[LinkFILE] != "")
{
//se questa variabile non è vuota stampo la casella con il collegamento
echo "<tr><td bgcolor=#F7F7F7>Scarica il file: </td><td bgcolor=#F7F7F7><a href=$array[LinkFILE]>$array[LinkFILE]</a></td></tr>";
}
else
{
echo ""; //altrimenti non visualizzo niente
}
mysql_close();
?>
Ti ringrazio sinceramente per l'aiuto e la pazienza...
-
Non trovo una via d'uscita, ... potete dirmi se il codice postato precedentemente va bene secondo voi o ci sono degli errori...
Grazie
-
Se, a qualcuno, è capitato di dover far aprire una pagina con codice php (esterno a joomla), che a sua volta fa aprire un'altra pagina con codice php (recuperando dati da Mysql)... può gentilmente darmi indicazioni su come ha fatto (se ha utilizzato jumi o altro, che codice ha inserito, ...).
Grazie per qualsiasi indicazione e suggerimento ...
-
Pultroppo non ho ancora risolto ... chiedo ancora vostri "lumi" o anche soluzione alternative ...
Grazie ancora
-
l'intestazione della tabella la visualizzi vero?
-
Ciao e crazie di nuovo per la risposta odino,
si l'intestazione (la scritta "Titolo", "Autore" ecc.) la visualizzao, ma non i capi relativi a quel record...
-
ok è proprio un problema relativo alle query.
Io ho notato che JUMI ultimamente mi ha dato qualche problema: hai provato con l'inclusione di script dal componente?
-
Dal componente (jumi) ho provato ad inserire il codice sia tramite "Pathname" che da "Custom Script" ... con identico risultato (odino è questo che intendevi con "inclusione di script da componente"?).