Back to top

Autore Topic: Inserimento codice php in Joomla (con Jumi) - problema funzionamento  (Letto 7522 volte)

Offline cdf

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
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

Codice: [Seleziona]
$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
« Ultima modifica: 15 Apr 2009, 11:46:03 da cdf »

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
prova

Codice: [Seleziona]
$id = $_GET["id"];
$dati = mysql_query("select * from a_ArchivioBIBLIOGRAFICO where Idarchivio = '$id' ");
$array = mysql_fetch_array($dati);

Offline cdf

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
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.

Offline Milcon

  • Global Moderator
  • Abituale
  • ********
  • Post: 1815
  • Sesso: Maschio
    • Mostra profilo
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. :)

Offline cdf

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
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

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
fai un print_r dell'array risultante della query e vedi quali dati vengono recuperati.

Occhio, che utilizzare parametri come
Codice: [Seleziona]
$_GET[id] non è molto intelligente  :D  magari hai sovrascritto qualche variabile  ;)

Offline cdf

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
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
Codice: [Seleziona]
$_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.



Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
Bewh io userei

Codice: [Seleziona]
$_GET[myextension_id]
devi utilizzare un suffisso per le variabili che probabilmente vengono già utilizzate, come ID, USERNAME, et simili...

Offline cdf

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
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 ...

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
prova a far puntare uno script esterno sullo stesso db e stessa tabella, vedi se da lì prendi i dati

Offline cdf

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
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":
Codice: [Seleziona]
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:
Codice: [Seleziona]
<?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...

« Ultima modifica: 17 Apr 2009, 14:53:25 da cdf »

Offline cdf

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
Non trovo una via d'uscita, ... potete dirmi se il codice postato precedentemente va bene secondo voi o ci sono degli errori...

Grazie

Offline cdf

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
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 ...



Offline cdf

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
Pultroppo non ho ancora risolto ... chiedo ancora vostri "lumi" o anche soluzione alternative ...

Grazie ancora

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
l'intestazione della tabella la visualizzi vero?

Offline cdf

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
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...

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
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?

Offline cdf

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
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"?).

 



Web Design Bolzano Kreatif