- Home
- Categorie
- Coding e Sistemistica
- PHP
- Prelevare dati dal database e disporli in tabelle 3 x 2
-
questo e' il codice che mi stampa tutti i modulini in verticale se qualcuno puo aiutarmi:
<?
include("top_foot.inc.php");
include("config.inc.php");
top();$db = mysql_connect($server, $username, $password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($database, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$query = "SELECT nomearticolo, descrizione, urlimmagine, id FROM immagini ORDER BY nomearticolo ";
$risultato=mysql_query($query,$db) or die ("Errore nella query:" . mysql_error());while(
$riga=mysql_fetch_array($risultato)
)
{
echo "<table align= center border="1" width= 300 height= 300 >";echo "<tr>";
echo "<td>";echo "<img border= 3 src="/catalogo/$riga[urlimmagine]" width= 200 height= 200 /> \n";
echo "</td>";echo "<td>";
echo "<b>art :</b><a> $riga[nomearticolo]</a> \n \n \n";
echo "</td>";echo "<td>"; echo "<b>descrizione:</b><br><a>$riga[descrizione]</a>"; echo "</td>"; echo "</tr>"; echo "</table>"; echo "</td>"; echo "<td>"; } foot(); mysql_close($db); ?>
-
ORA RIESCO A STAMPARE LE DUE COLONNE MA NON PASSA AL RECORD SUCCESSIVO
STAMPA SOLO IL PRIMO RECORD IN ENTRAMBE LE COLONNE<?
include("top_foot.inc.php");
include("config.inc.php");
top();
$db = mysql_connect($server, $username, $password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($database, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
// effettui la query
$query = "SELECT nomearticolo, descrizione, urlimmagine, id FROM immagini ORDER BY nomearticolo ";$risultato=mysql_query($query,$db) or die ("Errore nella query:" . mysql_error());
while($riga=mysql_fetch_array($risultato))
{
// calcoli il numero delle righe che avra la tabella
@$nRighe = (int) mysql_num_rows($risultato)/2 ;echo @$nRighe;
// stampi il tag table
echo "<table>";
for ( $i=0; $i < $nRighe; $i++ ) {
// associ una righa
$row = mysql_fetch_array($risultato);
// stampi il tag di righa
echo "<tr>";
// stampi la prima colonna della righa quindi
echo "<th>";echo "<img border= 3 src="/catalogo/$riga[urlimmagine]" width= 200 height= 200 /> \n";
echo "</td>";// chiudo la prima colonna echo "</th>"; // associ la seconda righa $row = mysql_fetch_array($risultato); // stampi la seconda colonna della righa quindi echo "<th>";
echo "<td>";
echo "<img border= 3 src="/catalogo/$riga[urlimmagine]" width= 200 height= 200 /> \n";
echo "</td>";// chiudi la riga echo "</tr>";
}
// chiudi la tabella
echo "</table>";
}foot(); mysql_close($db); ?>
-
ecco la soluzione
codice php:<?
include("top_foot.inc.php");
include("config.inc.php");
top();
$db = mysql_connect($server, $username, $password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($database, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
// effettui la query
$query = "SELECT nomearticolo, descrizione, urlimmagine, id FROM immagini ORDER BY nomearticolo ";
$risultato=mysql_query($query,$db) or die ("Errore nella query:" . mysql_error());// NO
// while($riga=mysql_fetch_array($risultato))
//{// calcoli il numero delle righe che avra la tabella
@$nRighe = (int) mysql_num_rows($risultato)/2 ;echo @$nRighe;
// stampi il tag table
echo "<table align= center border="1" width= 300 height= 300 >";
for ( $i=0; $i < $nRighe; $i++ ) {
// associ una righa
$row = mysql_fetch_array($risultato);
// stampi il tag di righa
echo "<tr>";
// stampi la prima colonna della righa quindi
echo "<td>";
echo "<img border= 3 src="/catalogo/$row[urlimmagine]" width= 200 height= 200 /> \n";echo "<b>art :</b><a> $row[nomearticolo]</a> \n \n \n";
echo "<b>descrizione:</b><br><a>$row[descrizione]</a>";
echo "</td>";// associ la seconda righa
$row = mysql_fetch_array($risultato);
// stampi la seconda colonna
echo "<td>";
echo "<img border= 3 src="/catalogo/$row[urlimmagine]" width= 200 height= 200 /> \n";
echo "<b>art :</b><a> $row[nomearticolo]</a> \n \n \n";
echo "<b>descrizione:</b><br><a>$row[descrizione]</a>";
echo "</td>";
// chiudi la riga
echo "</tr>";
}
// chiudi la tabella
echo "</table>";foot();
mysql_close($db);
?>
-
@blue_devil said:
ecco la soluzione
Ciao e grazie! Questo script mi sarà utilissimo per migliorare il mio sito
C'è un piccolo problema però... ovvero vengono mostrati tutti gli elementi contenuti nel database in una solo pagina. Quindi se nel database ci sono 100 elementi vi saranno 2 colonne e 50 righe (un pò troppo per una sola pagina)
Se riesci a trovare una soluzione per dividere in più pagine fammi sapere. (ovviamente lo stesso vale anche per me)
Ciao e grazie ancora...
-
imposta un limt come condizione degli articoli da estrarre tipo limt 0,20
cosi che partira dal record 0 e si fermera al 20 se a 0 sostiusci una variabile $parti_da puoi impaginare il tutto.
come hai visto $row ti conta i record totali quindi se sono 50 li dividi e ti crei un indice a fondo pagina che imposterai con il metodo get che reinviera alla stessa pagina una variabile $parti_da
-
purtroppo non sono molto esperto...
Mi ci vorrà un bel pò per capire.Grazie ancora...
-
ragazzi...mah....:? ...questo codice l'ho gia visto da qualche altra parte...:? ...ma da dove l'hai preso blue_devil???:D
-
hei nico!! il codice lo conosci bene perche' sei stato tu a spigegarmelo (cosa molto difficile solitamente vista la mia ottusangolità hahahahaha) grazie mille ancora nicodj
PS sto ultimando un catalogo prodotti con visualizzazione delle immagini ridimensionate in automatico e con controllo in upload immagini articolo, categorie dinamiche create in fase di inserimento articolo e note di categoria a fine pagina di ogni categoria ordinate per indice, con registrazione utenti e abilitazione degli stessi pannello amministrativo per la gestione del tutto. il lato catalogo e amministrativo dello stesso e' ultimato devo sistemare solo una sciocchezza sulle note. appena ho fatto posto i vari codici cosi' magari mi dite le cose che non ho fatto in modo corretto anche se funzionanti. Ciauz
-
...cmq ok..io sno quan..oppure di la..:) ..
-
ciao..allora per visualizzarne un numero finito per pagina devi utilizzare la clausula LIMIT nella query..ad esempio :
SELECT * FROM tabella WHERE qualcosa LIMIT 0,10
se vuoi proprio sapere come fare per far comparire il numero di pagine...ecco..la funzione allegata fa al caso tuo..ma se vuoi un cosiglio capisci cosa e come lo fa, e poi fanne una tua..altrimenti nn imparerai mai..