- Home
- Categorie
- Coding e Sistemistica
- Coding
- Script per creare pagina in WP da tabella di database
-
Il form è stato creato con un applicativo esterno a WP ed il codice inserito in una pagina wordpress
Essendo io privo di comptenze in programmazione Php/Mysql avrei solo bisogno di alcune righe di codice che leggano dal Db i record di coloro che hanno dato l'autorizzazione a pubblicare i nominativi.
e presentare sotto forma di tabella 3/4 colonne (50 righe per pagina direi)Altro aspetto: i campi devono essere allineati verticalmente al centro della cella in quanto una colonna contiene molto testo (commenti liberi)
Questa colonna, l'ultima, dovrebbe occupare cira il 40-50% dello schermo.So che si tratta di collegarsi al DB (?)
e dare il comando SELECT campo1, campo 2, campo3, campo4 WHERE ....
e poi i parametri di formattazione della tabellase qualcuno mi scrivesse il codice gliene sarei molto grato (eventualmene anche a pagamento)
-
Trovi intanto quì una bellissima classe per l'impaginazione fatta da ilnetsurfer.
-
Mi sembra che sia proprio quello che cerco.
Siccome sono assolutamente a digiuno di programmazione, PER CORTESIA mi diresti esattamente il codice che devo insierire in una pagina WP per visualizzare i dati del DB?Dbase = nomeuser_forms1
tabella = ap_form_4
campi da visualizzare = element_1, element_2, element_18
WHERE element_25 = 1vorrei anche che l'allineamente verticale delle celle fosse verticale e che la colonna di element_18 occupasse il 50% mentre le altre due il 25% ciascuna
50 record per pagina
Chiedo troppo?
Grazie
-
Grazie del suggerimento, credo sia quello che cerco anche se avrò bisogno di un aiuto
per inserire il codice nella pagina.
-
Utilizzando quella classe intanto questa è la versione base, l'integrazione in WP poi vediamo come farla è un po' che non ci smanetto, nel caso chiederai in area apposita.
Al momento consideriamo di voler visualizzare questa lista in una pagina che si chiama show.php.Questa la classe (file class.pagination.php)
[php]<?php
//CLASSE DI IMPAGINAZIONE
class impaginazione{
public $menu;
public $num_per_page;
public $ceil;
public $from;
public $query;
public $rows;
function createlink($page,$num_per_page,$query,$rows,$url){
$this->page = $page;
$this->num_per_page = $num_per_page;
$this->query = $query;
$this->rows = $rows;
$this->url = $url;$this->ceil = ceil($this->rows/$this->num_per_page);
$this->from = (($this->page * $this->num_per_page) - $this->num_per_page);
$this->menu = "";if($this->page > 1)
{
$this->menu .= " <a href="".$this->url."page=".($page-1)."">Indietro</a> ";
}for($i = 1; $i <= $this->ceil; $i++)
{
if(($this->page) == $i)
{
$this->menu .= $i;
}
else
{
$this->menu .= " <a href="".$this->url."page=".$i."">$i</a> ";
}
}
if($this->page < $this->ceil)
{
$this->menu .= " <a href="".$this->url."page=".($page+1)."">Avanti</a> ";
}$this->query .= " LIMIT ".$this->from.",".$this->num_per_page."";//COMPLETA LA QUERY
}
}
?> [/php]Nella stessa cartella metterai il file show.php (ho considerato che ci sia pure il file di connessione al Db, config.php, adatta nome e percorso a quello che già usi):
[php]<?php
////////////////////////////
#IMPAGINAZIONE#
###########################
require_once "class.pagination.php";
require_once "config.php"; //file di connessione al Db
$page = (!isset($_GET['page'])) ? 1 : $_GET['page'];//controlli necessari
if ($page == 0)
{
$page=1;
}
#Qui eseguiamo la query che recupera i dati
#Ricordate che la query non deve contenere il carattere LIMIT
$query_init ="SELECT element_1, element_2, element_18 FROM ap_form_4 WHERE element_25 = 1 ORDER BY element_1 ASC";//La nostra query(in questo caso la mia)
$action = mysql_query($query_init);//ESEGUE
$rows = mysql_num_rows($action);//Il numero di colonne, dato importantissimo
$num_per_page = 50;//quanti articoli vogliamo per ogni pagina$pag = new impaginazione();//creo nuova istanza
$link = "show.php?";$pag->createlink($page,$num_per_page,$query_init,$rows,$link);
$query = mysql_query($pag->query);
$menu = $pag->menu;
echo "<table border="1" width="100%">";
while($row = mysql_fetch_array($query))
{?>
<tr><td style="vertical-align:middle; width:24%;"><? echo $row['element_1']; ?></td><td style="vertical-align:middle; width:24%;"><? echo $row['element_2']; ?></td><td style="width:50%;"><? echo $row['element_18']; ?></td></tr><?}
echo "</table>";
echo $menu;
//Formato: Indietro 1 2 3 4 Avanti?> [/php]
-
Intanto grazie mille
poi volevo chiedere, anzichè creare un file config.php per la connessione al DB non posso farla direttamente in questo file?Se sì esattamente come?
Perdona se sono tanto impedito
-
Basta vedere le FAQ.
Quì trovi come effettuare la connessione al Database ai tuoi script, ti basterà sostituire la riga:
[php]require_once "config.php"; //file di connessione al Db[/php]Con i parametri e funzioni di connessione per come vedi nella FAQ.
-
Grazie mille!!!
con un paio di tentatici ci sono riuscito!lascia a desiderare l'aspetto ma facciamo un passo alla volta
Per la parte grafica:
- vorrei che in ogni pagina della tabella comparissero in alto le etichette dei campi (intendo non i nomi del Dbase ma etichette che decido io)
- quando un record ha il terzo campo vuoto non crea la suddivisione delle celle
- tutte le lettere accentate sono sotituite dal ?
-
Te l'ho detto che era la versione base.
Così puoi modificarla ed integrarla come più preferisci e secondo le tue esigenze.Per le lettere accentate il problema sarà la codifca se inserisci un'intestazione html con il meta relativo forse risolvi:
[php]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <!-- questo per capirci /-->
<title>Il title della pagina</title>
</head>
<body>
<?
....lo script della pagina show.php?>
</body>
</html>
[/php]Per le intestazioni e per le celle vuote modificalo così:
[php].......
echo "<table border="1" style="width:100%; empty-cells: show; border-collapse:collapse;">";
echo "<tr><th>Intestazione1</th><th>Intestazione2</th><th>Intestazione3</th></tr>";
while (.....[/php]
-
Riprendo dopo molto tempo questa discussione
Se volessi integrare il codice in WP come potrei fare perchè uan pagina interpreti il codice php?
Grazie mille