mostrare contenuto caricato dinamicamente da database

dla86

Utente Attivo
27 Mag 2009
36
0
0
Ciao a tutti,
dovrei realizzare una sezione del mio sito dove mostrare una griglia con una serie di contenuti caricati dinamicamente dal database. Premetto che non sono esperto in php però ho realizzato questo codice che intanto mostra il contenuto.

PHP:
<?php
                            require("dati.php");
                            $tot = 10;
                              $query = "SELECT * FROM mia_tabella
                                      WHERE id = 'xxx'
                                      LIMIT 0,$tot";
                            $result = mysql_query($query)
                            or die("Caricamento fallito: ".mysql_error());
                            while ($row = mysql_fetch_array($result))
                            {            
                            echo "<font><b>", $row['title'], "</b></font>";
                            echo "<br>";
                            echo "<font>", $row['introtext'], "</font><br><br>";
                            //echo "<img src='", $row['images'], "'/><br><br>";
                            }
                       
                            mysql_close($connection);
                                            
                        ?>

PHP:
<?php
$connection = mysql_connect("host", "user", "password")
                or die("Impossibile connettersi al server");
$db = mysql_select_db("nome db", $connection)
                or die ("Impossibile connettersi al Database");
?>

Ora vorrei che cliccando su tutto il contenuto mi si aprisse un pop-up che mostrasse il fulltext del contenuto, da caricare sempre dinamicamente dal database. come posso fare?...qui mi sono bloccato...
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Ciao, dovresti realizzare una nuova pagina che prenda in ingresso l'id di riferimento ed esegua una query per prelevare il campo chiamato fulltext.

Fatto questo dovresti collegare a questa pagina tramite un tag anchor e il metodo javascript window.open che ti permettono di aprirla in un popup.

Un ulteriore consiglio che posso darti è di usare le librerie mysqli, in quanto l'estensione che stai usando per connetterti al database è deprecata.
 

dla86

Utente Attivo
27 Mag 2009
36
0
0
ho capito il 20% di quello che hai detto :(
ti ringrazio comunque. intanto potrei chiederti di indicarmi il codice per connettermi al database visto che l'estensione è deprecata?
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Provo a mostrarti con un esempio pratico (i nomi che assegno ai files sono di puro riferimento, se li cambi assicurati di cambiarli anche nel codice, dove compaiono):

connessione.php
PHP:
<?php // Qui si effettua la connessione al database

$mySqliLink = mysqli_connect('host', 'user', 'password', 'db');

if (!$mySqliLink) {
    die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}


// non è necessario il tag di chiusura di php

lista.php
PHP:
<?php
    require 'connessione.php'; 
    $tot = 10;

    // Le parentesi graffe non aggiungono veramente nulla rispetto a prima
    // torna molto utile però usarle per contrassegnare visivamente le variabili da valutare in una stringa
    $query = "SELECT * FROM mia_tabella WHERE id = 'xxx' LIMIT 0,{$tot}"; 

    // Tentiamo di eseguire la query e verificare se ci sono errori
    if (($result = mysqli_query($mySqliLink, $query)) !== false) {

        // Sono stati trovati record ?
        if (mysqli_num_rows($result) > 0) {

            // Ok, li scorriamo..
            while($row = mysqli_fetch_assoc($result)) {

                echo "<font><b>", $row['title'], "</b></font>"; 
                echo "<br>"; 
                echo '<font>';
                // Definiamo il link che aprirà la finestra popup.
                // Gli apici singoli vanno messi sotto escape con un backlash che li precede, in questo modo
                // non si confondono con i delimitatori di stringa dell'echo di php
                echo '<a href="javascript:void(0);" onclick="window.open(\'descrizione.php?id=\'', $row['id'], ',\'_blank\',\'toolbar=no, scrollbars=yes, resizable=yes\');">';
                    echo $row['introtext']; 
                echo '</a>';
                echo '</font><br><br>'; 

            }
            
            // liberiamo le risorse impiegate dalla query
            mysqli_free_result($result);

        } else {
            echo 'No record found.';
        }

    } else {
        echo 'MySqli Error: ', mysqli_error($mySqliLink);
    }
                        
    mysqli_close($mySqliLink);                                          
?>

descrizione.php
PHP:
<?php
    require 'connessione.php'; 

    // Se è stato passato id come parametro lo prelevo, altrimenti assegnamo valore nullo alla variabile
    $id = isset($_GET['id'])? $_GET['id'] : null;

    // Realizziamo la query facendo un minimo essenziale escape di sicurezza sul parametro $id
    $query = sprintf(
        "SELECT * FROM mia_tabella WHERE id = '%s' LIMIT 1",
        addcslashes(mysqli_real_escape_string($mySqliLink, $escaped), '%_')
    ); 

    // Tentiamo di eseguire la query e verificare se ci sono errori
    if (($result = mysqli_query($mySqliLink, $query)) !== false) {

        // Sono stati trovati record ?
        if (mysqli_num_rows($result) > 0) {

            // Ok, lo preleviamo
            $row = mysqli_fetch_assoc($result);

                echo "<font><b>", $row['title'], "</b></font>"; 
                echo "<br>"; 
                echo '<font>', $row['fulltext'], '</font><br><br>';
            
            // liberiamo le risorse impiegate dalla query
            mysqli_free_result($result);

        } else {
            echo 'No record found.';
        }

    } else {
        echo 'MySqli Error: ', mysqli_error($mySqliLink);
    }
                        
    mysqli_close($mySqliLink);                                          
?>


Sono righe di codice che ho scritto molto alla veloce, potrebbero esserci degli errori.
Fammi sapere comunque se bene o male hai compreso il funzionamento e soprattutto se ora ti è più chiaro cosa intendevo nel mio precedente post.

Per il resto, su php.net trovi la documentazione ufficiale di tutte le funzioni di cui hai bisogno ;)
 

dla86

Utente Attivo
27 Mag 2009
36
0
0
al click non apre nulla.. devo inserire qualche script nella pagina forse?
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Si, qui sembra esserci un errore mio, sostituisci la riga del link in questo modo:
PHP:
echo '<a href="javascript:void(0);" onclick="window.open(\'descrizione.php?id=', $row['id'], '\',\'_blank\',\'toolbar=no, scrollbars=yes, resizable=yes\');">';

Secondariamente, assicurati anche che non entri in azione il blocco popup del browser se non dovesse ancora apparire.
 

dla86

Utente Attivo
27 Mag 2009
36
0
0
ora apre la nuova finestra ma non dentro un pop-up. è voluta questa cosa?
poi sussiste un altro problema..dentro la nuova finestra leggo "no record found" ovvero non carica quello che dovrebbe caricare.
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Prova a fare un print della query nel secondo file e controlla se viene generata correttamente.

Quanto alla popup probabilmente vorrà anche sapere le dimensioni della finestra, quindi sempre sul link prova a modificare ancora così:
PHP:
echo '<a href="javascript:void(0);" onclick="window.open(\'descrizione.php?id=', $row['id'], '\',\'_blank\',\'toolbar=no,scrollbars=yes,resizable=yes,width=400,height=400\');">';
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Ho visto che hai sostituito id con asset_id nella url.


Nel file descrizione.php, hai modificato questo punto?
PHP:
$id = isset($_GET['id'])? $_GET['id'] : null;


Se si, fai un print della query, in questo modo:
PHP:
// La query già presente
    $query = sprintf(
        "SELECT * FROM mia_tabella WHERE id = '%s' LIMIT 1",
        addcslashes(mysqli_real_escape_string($mySqliLink, $escaped), '%_')
    );

    // Questo è il print:
    echo $query;
 

dla86

Utente Attivo
27 Mag 2009
36
0
0
si ho sostituito tutti id con asset_id
fatto il print della query:

SELECT * FROM finesse_content WHERE asset_id = '' LIMIT 1

la vedi anche cliccando per aprire il pop-up
 
Discussioni simili
Autore Titolo Forum Risposte Data
M [PHP] Logica esatta sul mostrare contenuto se inattivo con Codeigniter PHP 2
M Mostrare il contenuto del database e convertire la data da timestamp PHP 2
D mostrare contenuto tabella database dopo la selezione PHP 3
Tommy03 Mostrare feed senza internet Sviluppo app per Android 4
A Mostrare dati database per pagine PHP 2
Cosina Mostrare immagini da una cartella, ma solo un numero definito PHP 12
J php, scegliere autista da select e mostrare se ha fatto un incidente PHP 8
M [PHP] Mostrare risultati di una tabella ma solo se ID è attivo PHP 0
A [Javascript] Mostrare un marker se è vicino al risultato di ricerca con google maps Javascript 3
T mostrare il riultato di uno script php Ajax 2
C [Javascript] Mostrare un div cliccando una checkbox Javascript 0
T mostrare solo una volta il risulato doppio Database 10
E [PHP] GUMP: mostrare gli errori tramite array PHP 1
Bryan [PHP] Far mostrare tutte le tabelle contenenti in un database PHP 2
N invia.php solo alcuni dati da mostrare PHP 4
S [Javascript] Slider html: Mostrare immagini su 4 colonne Javascript 20
K Mostrare tabella PHP e MySQL PHP 0
G non mostrare un determinato campo se PHP 1
J Mostrare mese intero (come cambio il codice?!) Java 1
M problema mostrare data di registrazione formattata in italiano PHP 8
M Mostrare immagini dal database in una propria pagina PHP 2
R Mostrare articoli correlati in php PHP 2
M Mostrare o meno banner pubblicitari a seconda la risoluzione del device Javascript 10
N Mostrare campi form se ho selezionato un determinato campo PHP 0
A consiglio uso jquery php per mostrare parte di un form PHP 6
A consiglio uso jquery per mostrare parte di un form jQuery 0
A Mostrare tutti i record di una tabella prendendo un valore da un altra tabella MySQL 1
N Mostrare valori databse in un modal pop up con PHP e MySQL PHP 5
D mostrare nascondere sottomenu Javascript 1
C Mostrare i campi vuoti al caricamento di una maschera MS Access 0
N [RISOLTO] Mostrare a video le checkbox selezionate con PHP e MySQL PHP 4
gandalf1959 [risolto] Mostrare a video il risultato di una query con stesso anno e mesi diversi PHP 13
D Mostrare su una pagina web dati provenienti da un Database PHP 0
P Mostrare punti interesse du una mappa di google maps Javascript 1
giancadeejay Mostrare immagine solo per 2 secondi Javascript 2
A Mostrare video style facebook Javascript 0
H Funzione onmouseover per mostrare un box con un link da cliccare? Javascript 3
P Mostrare nome utente (era: ciao) PHP 1
U Mostrare una pagina html esterna PHP 8
F mostrare una sola volta un record che si ripete PHP 2
M pulsante per mostrare filmato swf HTML e CSS 12
M mostrare un feed rss con PHP PHP 2
S mostrare variabili da un js esterno Javascript 2
I eliminazione cartella e contenuto PHP 1
A fread non legge il contenuto del file PHP 4
K contenuto javascript scompare inspiegabilmente Javascript 2
G Pec come leggere il contenuto Posta Elettronica 1
axem [PHP]rendere cliccabile contenuto PHP 10
W Contenuto duplicato su più siti web, quanto è permesso? SEO e Posizionamento 1
E assegnare a una variabile il contenuto di un url (javascript) Javascript 0

Discussioni simili