info query da cambiare

  • Creatore Discussione Creatore Discussione Kirsolo
  • Data di inizio Data di inizio

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
Salve ho fatto una funzione, che mi stampa i miei immobili in questo modo:

1 | 3
--------
2 | 2
--------
3 | 1
--------

praticamente in una colonna 3 in ordine crescente e nell'altra 3 in ordine decrescente.

PHP:
function schedaCatalogoVendita(){
$conn = dbConnect();
$sqldesc ="SELECT * FROM immobile WHERE status  LIKE '%vendita%' ORDER BY codice desc limit 3";
$sqlasc ="SELECT * FROM immobile WHERE status LIKE '%vendita%' ORDER BY codice Asc limit 3";
$rispdesc = mysql_query($sqldesc) or die ("Errore nella query: ".$sql."\n". mysql_error());
$rispasc = mysql_query($sqlasc) or die ("Errore nella query: ".$sql."\n". mysql_error());
while (($rigadesc = mysql_fetch_array($rispdesc)) & ($rigaasc = mysql_fetch_array($rispasc)))  {
	$codice=$rigadesc['codice'];
	$des = $rigadesc['descrizione'];
	$descr = strlen($des) > 150 ? substr($des, 0, 150) . "..." : $des;
	 echo "<tr >";
	 echo "<td class=\"catalog_img\"><img src=".$rigadesc['immagine']." width='145' height='175' /><p class=\"Ascheda\"><a class=\"Ascheda\" href=\"scheda-immobile.php?codice=$codice\">Visualizza l'intera scheda profilo</a></p></td>
			<td class=\"catalog_desc\"><h2 class=\"catalog_deno\"><span class=\"blue\">".$rigadesc['codice']."-".$rigadesc['denominazione']."</span></h2>
			<p class=\"p_tab_desc\">".htmlentities($descr)."</p>
			<p class=\"catalog_deno\"><span class=\"gold\">".$rigadesc['prezzo']."€</p>
			</td>"; 
	$codice=$rigaasc['codice'];
	$des = $rigaasc['descrizione'];
	$descr = strlen($des) > 150 ? substr($des, 0, 150) . "..." : $des;
	echo "<td class=\"catalog_img\"><img src=".$rigaasc['immagine']." width='145' height='175' /><p class=\"Ascheda\"><a class=\"Ascheda\" href=\"scheda-immobile.php?codice=$codice\">Visualizza l'intera scheda profilo</a></p></td>
			<td class=\"catalog_desc\"><p class=\"catalog_deno\"><span class=\"blue\">".$rigaasc['codice']."-".$rigaasc['denominazione']."</span></p>
			<p class=\"p_tab_desc\">".htmlentities($descr)."</p>
			<p class=\"catalog_deno\"><span class=\"gold\">".$rigaasc['prezzo']."€</p>
			</td></tr>";
			}
}

nella mia pagina richiamo <?php echo schedaCatalogoVendita();?>

Ora vorrei cambiare lo schema in questo modo:

1 | 2
--------
3 | 4
--------
5 | ...n

oppure in

1 | n/2 +1
-------------
2 | n/2+2
-------------
... | ....
-------------
n/2 | n

come potrei cambiare la query?
grazie
 
Guarda che è più semplice farlo come il secondo caso.
Basta fare:
PHP:
echo "<table>";
$count = 0;
while($vettore = mysql_fetch_array($query)){
  if($count % 2 == 0)
    echo "<tr>";
  echo "<td>$vettore['valore']</td>";  
  $count++;
}
Ho abbozzato. Controllala.
 
Guarda che è più semplice farlo come il secondo caso.
Basta fare:
PHP:
echo "<table>";
$count = 0;
while($vettore = mysql_fetch_array($query)){
  if($count % 2 == 0)
    echo "<tr>";
  echo "<td>$vettore['valore']</td>";  
  $count++;
}
Ho abbozzato. Controllala.

Si così li stampa in una sola colonna...se metto anche il ramo else? In pratica nella colonna sx i numeri pari e quella destra i dispari?
 
Son riuscito a farlo in questo modo:

1 | 2
-------
3 | 4
-------
5 | 6
-------
7 | n..

posto il codice per chi lo voglia fare:
PHP:
function schedaCatalogoVendita(){
$conn = dbConnect();
$sql ="SELECT * FROM immobile WHERE status LIKE '%vendita%' ORDER BY codice desc ";
$risp = mysql_query($sql) or die ("Errore nella query: ".$sql."\n". mysql_error());
$count = 0;
while ($riga = mysql_fetch_array($risp))  {
	$codice=$riga['codice'];
	$des = $riga['descrizione'];
	$descr = strlen($des) > 150 ? substr($des, 0, 150) . "..." : $des;
	if(($count % 2) == 0) {
	 echo "<tr>";
	 echo "<td class=\"catalog_img\"><img src=".$riga['immagine']." width='145' height='175' /><p class=\"Ascheda\"><a class=\"Ascheda\" href=\"scheda-immobile.php?codice=$codice\">Visualizza l'intera scheda profilo</a></p></td>
			<td class=\"catalog_desc\"><h2 class=\"catalog_deno\"><span class=\"blue\">".$riga['codice']."-".$riga['denominazione']."</span></h2>
			<p class=\"p_tab_desc\">".htmlentities($descr)."</p>
			<p class=\"catalog_deno\"><span class=\"gold\">".$riga['prezzo']."€</p>
			</td>"; 
	$count++;
	} else {
	 echo "<td class=\"catalog_img\"><img src=".$riga['immagine']." width='145' height='175' /><p class=\"Ascheda\"><a class=\"Ascheda\" href=\"scheda-immobile.php?codice=$codice\">Visualizza l'intera scheda profilo</a></p></td>
			<td class=\"catalog_desc\"><h2 class=\"catalog_deno\"><span class=\"blue\">".$riga['codice']."-".$riga['denominazione']."</span></h2>
			<p class=\"p_tab_desc\">".htmlentities($descr)."</p>
			<p class=\"catalog_deno\"><span class=\"gold\">".$riga['prezzo']."€</p>
			</td>"; 
	$count++; 
	echo "</tr>";}
			}
}

grazie
ciao!
 
Else non serve in questo caso. Il tuo codice è ottimizzabile (si può ridurre a metà) togliendo else e usando degli accorgimenti come nell'esempio che ti ho fatto.
 
Else non serve in questo caso. Il tuo codice è ottimizzabile (si può ridurre a metà) togliendo else e usando degli accorgimenti come nell'esempio che ti ho fatto.

Ho provato il tuo con i miei dati....stampa in una sola colonna e non in due...ottimizzabile in che modo?
 
Prova con questa.
PHP:
function schedaCatalogoVendita(){
   $conn = dbConnect();
   $sql ="SELECT * FROM immobile WHERE status LIKE '%vendita%' ORDER BY codice desc ";
   $risp = mysql_query($sql) or die ("Errore nella query: ".$sql."\n". mysql_error());
   $count = 0;
   while ($riga = mysql_fetch_array($risp))  {
      $codice=$riga['codice'];
      $des = $riga['descrizione'];
      $descr = strlen($des) > 150 ? substr($des, 0, 150) . "..." : $des;
      if(($count % 2) == 0) 
         echo "<tr>";
      echo "<td class=\"catalog_img\"><img src=".$riga['immagine']." width='145' height='175' /><p class=\"Ascheda\"><a class=\"Ascheda\" href=\"scheda-immobile.php?codice=$codice\">Visualizza l'intera scheda profilo</a></p></td>
      <td class=\"catalog_desc\"><h2 class=\"catalog_deno\"><span class=\"blue\">".$riga['codice']."-".$riga['denominazione']."</span></h2>
      <p class=\"p_tab_desc\">".htmlentities($descr)."</p>
      <p class=\"catalog_deno\"><span class=\"gold\">".$riga['prezzo']."€</p>
      </td>"; 
      $count++; 
   }
}
 
Prova con questa.
PHP:
function schedaCatalogoVendita(){
   $conn = dbConnect();
   $sql ="SELECT * FROM immobile WHERE status LIKE '%vendita%' ORDER BY codice desc ";
   $risp = mysql_query($sql) or die ("Errore nella query: ".$sql."\n". mysql_error());
   $count = 0;
   while ($riga = mysql_fetch_array($risp))  {
      $codice=$riga['codice'];
      $des = $riga['descrizione'];
      $descr = strlen($des) > 150 ? substr($des, 0, 150) . "..." : $des;
      if(($count % 2) == 0) 
         echo "<tr>";
      echo "<td class=\"catalog_img\"><img src=".$riga['immagine']." width='145' height='175' /><p class=\"Ascheda\"><a class=\"Ascheda\" href=\"scheda-immobile.php?codice=$codice\">Visualizza l'intera scheda profilo</a></p></td>
      <td class=\"catalog_desc\"><h2 class=\"catalog_deno\"><span class=\"blue\">".$riga['codice']."-".$riga['denominazione']."</span></h2>
      <p class=\"p_tab_desc\">".htmlentities($descr)."</p>
      <p class=\"catalog_deno\"><span class=\"gold\">".$riga['prezzo']."€</p>
      </td>"; 
      $count++; 
   }
}

Bene funziona ;)
 
Ho applicato l'esempio che ti ho fatto prima. Quindi in teoria hai sbagliato qualcosa quando lo hai provato.
Vabbe basta che ora va. :)
 

Discussioni simili