Stampare valori in più div con PHP e MySQL

  • Creatore Discussione Creatore Discussione Garaux
  • Data di inizio Data di inizio

Garaux

Utente Attivo
24 Feb 2013
50
0
0
Salve,
ho una domanda da farvi.
Vorrei stampare i valori di una tabella all'interno di due div (uno con float a sinistra e l'altro a destra).

Questo è il semplicissimo script per creare un array dei valori all'interno della tabella.

PHP:
<?php
include 'connection.php';

$richiestaSQL = 'SELECT * FROM email_list';

$dati = mysql_query($richiestaSQL, $connection);

if(!$dati) {
	die('Errore nella richiesta SQL'.mysql_error());
	}  



while($row = mysql_fetch_array($dati, MYSQL_ASSOC)) {
	  echo $row['first_name'] . ' ' . $row['last_name'] . ' ' . $row['email'] . '<br />';
}

?>



Vorrei che i risultassi venissero stampati come mostrato nell'immagine:

es.png


Questo è il file html dei div:

HTML:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>

<style>


#container {
	width: 900px;
	padding: 8px;
	border: 1px solid #ccc;
	margin: 0 auto;
}

.left {
	width: 200px;
	padding: 8px;
	height: 200px;
	background: #ccc;
 	float: left;
 }
 
 
.right {
	width: 200px;
	padding: 8px;
	height: 200px;
	background: #ccc;
 	float: right;
 }


.clearDiv {
	clear: both;
}

</style>

</head>

<body>

<div id="container">
 
<div class="left">
<p>Nome: XXX</p>
<p>Cognome: XXX</p>
<p>Email: XXX</p>
</div>


  
<div class="right">
<p>Nome: XXX</p>
<p>Cognome: XXX</p>
<p>Email: XXX</p>
</div>



 
<div class="clearDiv"></div>

</div>

Con questo semplice script creo un array dei div per poi inserirli in un loop:

PHP:
 <?php

$divLeft = '<div class="left"></div>';
$divRight = '<div class="right"></div>';

$divArr = array($divLeft, $divRight);

 foreach ($divArr as $value)
  {
  echo $value;
  }
  
  
  
  
?>

Ma poi come faccio a inserire i valori della tabella all'interno dei div?
Qualcuno potrebbe darmi una mano?

Grazie
 
Ciao, puoi fare tutto nel ciclo while
PHP:
<?php

$i = 0;
while ($row = mysql_fetch_array($dati, MYSQL_ASSOC)) {

    $float = $i % 2 == 0 ? "left" : "right";
    $i++;

    echo "<div class='" . $float . "'>";
    echo "<p> Nome :" . $row['first_name'] . "</p>";
    echo "<p> Cognome :" . $row['last_name'] . "</p>";
    echo "<p> E-mail :" . $row['email'] . "</p>";
    echo "</div>";
}
?>
imposti il float in base al valore di una variabile che incrementerai ad ogni iterazione
 
Ciao, grazie per la risposta.

Allora...hai creato un loop utilizzando un'istruzione condizionale ternaria:

PHP:
$i = 0;
while ($row = mysql_fetch_array($dati, MYSQL_ASSOC)) {

    $float = $i % 2 == 0 ? "left" : "right";
    $i++;

Non ho ben capito l'istruzione:
$i % 2 == 0

Potresti delucidarmi? Grazie.
 
% restituisce il resto di una divisione
se dividiamo un numero per due e rimane resto 0 possiamo dedurre che si tratta di un numero pari viceversa se dalla divisione rimane resto 1 allora si tratta di un numero dispari, prova a stampare questo ciclo
PHP:
<?php

for ($i = 0; $i < 11; $i++) {
    echo $i . " % 2 = " . ($i % 2) . "<br/>";
}
?>
 
Ultima modifica:

Discussioni simili