Ordonare date din Select pe randuri si coloane

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
bvlucretiu
Mesaje: 88

Ordonare date din Select pe randuri si coloane

Bună!
Ce instrucțiune trebuie introdusă într-o interogare cu SELECT astfel încât să-mi afișeze un număr limitat de rânduri?
Exemplu:
Am într-un tabel vreo 70 de înregistrări iar la interogarea SELECT aș dori să îmi afișeze coloane cu cel mult 25 de înregistrări, iar acestea să fie afișate una lângă alta astfel încât să poată afișa mai multe înregistrări într-un cadru fără a fi nevoit să folosesc foarte mult scrolul!
Vă mulțumesc!

MarPlo
Salut
Posteaza ce cod ai incercat, si ce nu rezulta cum vrei.

bvlucretiu

Cod: Selectaţi tot

<?php


// conecteaza la baza de date "tests" 
$conn = new mysqli('localhost', 'root', '0101', 'erma');

// verifica conexiunea
if (mysqli_connect_errno()) {
  exit('Connect failed: '. mysqli_connect_error());
}
// interogare sql SELECT 
$sql = "SELECT `id`, 
`nume`,
`prenume`,
`NR`,
`per`
 FROM `Clienti`"; 
//!~#$%$%^&*()_+?/>,.m\|\}]{[!!```~~1``2345677!@$#
// executa interogarea si retine datele returnate
$result = $conn->query($sql);
   // daca $result contine cel putin un rand
if ($result->num_rows > 0) {
  // afiseaza datele din fiecare rand din $result
  while($row = $result->fetch_assoc()) {
     echo '<br /> <div id="idalim"> <b>'
	 . $row['id']. '</b> </div> <div id="nume_locatar"><b>
	 '. $row['nume'].'
	 '. $row['prenume'].'</div><div id="numarcasa">
	 '. $row['NR'].'</div><div id="numar_casa_per">
	 '. $row['per'].'
	
	 </div>
	 
	 <div id="editare_locatar">>|
	 <a href="edit_locatar_Clienti.php?id='. $row['id'].'" title="Editeaza">Editeaza</a>&nbsp;|||
	 <a href="sterge_locatar_Clienti.php?id='. $row['id'].'" title="Sterge">Sterge</a>|||</b> </div> <br>';
 }
}
else {
  echo '0 rezultate';
}

$conn->close();
echo '</div>';
?>
La această interogare am un număr de 75 de rânduri și o să fie și mai multe în viitor, iar ca rezultat am o coloană foarte îngustă (unde aș mai butea să adaug măcar încă două coloane asemănătoare) și întinsă în jos pe pagină, fapt care impune utilizarea scrolului, ori dacă aș putea face ca după 25 sau 30 de înregistrări să adaug o coloană nouă care să meargă în continuare de la prima, care le-aș putea încadra într-un div iar după umplerea paginii cu două sau trei coloane abia apoi să trebuiască scrolul pentru a merge cu un cadru mai jos unde să se continue după epuizarea coloanelor din primul cadru!
Sper că înțelegeți ceea ce doresc să spun!
Vă mulțumesc!

MarPlo
Vezi daca iti e de folos acest exemplu sa-l adaptezi la ce ai.

Cod: Selectaţi tot

<?php
$reout ='';  //retine datele ce vor fi afisate la final
$nrw =25;  //numar de randuri pe coloana

// conecteaza la baza de date
$conn = new mysqli('localhost', 'root', '0101', 'erma');

// verifica conexiunea
if(mysqli_connect_errno()) exit('Connect failed: '. mysqli_connect_error());

$sql = "SELECT col1, col2 FROM tabel";

// executa interogarea
$result = $conn->query($sql);
if($result->num_rows >0){
  $i =0;
  $reout .='<div class="cols">';
  while($row = $result->fetch_assoc()){
    $reout .='<div>'. $row['col1'] .'<br>'. $row['col2'] .'</div>';
    $i++;
    if(($i%$nrw) ==0) $reout .='</div><div class="cols">';
  }
  $reout .='</div>';
}
else $reout .='0 rezultate';

echo $reout;
Iar in css:

Cod: Selectaţi tot

.cols:empty {display:none;}
.cols {
border:1px solid #888;
display:inline-block;
margin:2px;
}
.cols div {
border-bottom:1px solid blue;
}

Subiecte similare