Select din MySQL afisat pe n coloane si m randuri

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Avatar utilizator
trif
Mesaje: 500

Select din MySQL afisat pe n coloane si m randuri

Buna ziua,
Am dat de un obstacol si nu stiu cum sa il fac.
Am un select din bd si acesta selecteaza:
denumire, poza, si pret
dar eu doresc ca sa imi puna pe 4 coloane si 2 randuri acesta informatie selectata, nu doar pe o coloana sau doar pe un rand.
M-am interesat si nu prea am gasit nici nu am reusit sa imi dau seama cum se face.
Stiu ca se face cu array dar nu stiu cum se face cu mai multe informatii cum ar fi denumire poza si pret. Asa cu o informatie (numar) este simplu.
Dar ceea ce doresc este ca sa ii dau eu nr de coloane si nr de randuri.
Adica daca ii dau c:4 si r:3 sa imi apara 4 coloane si 3 randuri. Astept ceva simplu si concis.
Multumesc anticipat.
Cu stima Trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

steell Mesaje: 190
Chiar nu inteleg ce vrei sa faci (ori sunt prea obosit). Deci ai un tabel cu campurile: denumire, poza, pret
Faci selectul in tabel (SELECT * FROM TABEL)
Mai departe nu inteleg ce vrei sa faci. Fi mai explicit.

trif Mesaje: 500
Salut,
ceea ce vreau este in felul urmator:
eu am asa:

Cod: Selectaţi tot

acesta este un select cu 3 limit
poza----------------------poza----------------------poza
denumire----------------denumire----------------denumire
pret-----------------------pret----------------------pret
dar daca ii dau limita mai mare imi afiseaza tot in dreapta nu imi coboara.
cea ce imi trebuie este ca sa ii dau nr de coloane si nr de randuri in care sa imi apara grupul de selectie.
de exemplu
c=3
r=4

Cod: Selectaţi tot

acesta este un select cu  12 limit
poza----------------------poza----------------------poza
denumire----------------denumire----------------denumire
pret-----------------------pret----------------------pret
-----------------------------------------------------------------
poza----------------------poza----------------------poza
denumire----------------denumire----------------denumire
pret-----------------------pret----------------------pret
-----------------------------------------------------------------
poza----------------------poza----------------------poza
denumire----------------denumire----------------denumire
pret-----------------------pret----------------------pret
-----------------------------------------------------------------
poza----------------------poza----------------------poza
denumire----------------denumire----------------denumire
pret-----------------------pret----------------------pret
-----------------------------------------------------------------
ca o matrice. daca ii dau c=4 si r=3
este asa:

Cod: Selectaţi tot

acesta este un select cu  12 limit
poza----------------------poza----------------------poza----------------------poza
denumire----------------denumire----------------denumire----------------denumire
pret-----------------------pret----------------------pret----------------------pret
---------------------------------------------------------------------------------------------
poza----------------------poza----------------------poza----------------------poza
denumire----------------denumire----------------denumire----------------denumire
pret-----------------------pret----------------------pret----------------------pret
---------------------------------------------------------------------------------------------
poza----------------------poza----------------------poza----------------------poza
denumire----------------denumire----------------denumire----------------denumire
pret-----------------------pret----------------------pret----------------------pret
---------------------------------------------------------------------------------------------
Cred ca s-a inteles.
Va multumesc anticipat. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje: 4343
Salut
Se poate in felul urmator. Se adauga datele din coloanele fiecarui rand intr-un <div>, iar valoarea fiecarei coloane in <span>. Va rezulta atatea Div-uri cate randuri sunt selectate. Ca sa fie asezate pe randuri si coloane, se dauga tag <br/> la fiecare numar de $c (vezi in cod cum e).
Apoi din CSS se face alinierea si design-ul elementelor html.
Poti testa si modifica exemplu urmator. La while() se modifica pt. parcurgerea datelor din baza de date. Numarul de randuri rezulta automat in functie de cate coloane sunt si totalul de randuri selectate din baza de date.

Cod: Selectaţi tot

<style type="text/css">
#vpdp {
 position: relative;
 width: 95%;
 margin: 1px auto;
 background: #f0f1fe;
 padding: 0.4em;
 text-align:center;
}
#vpdp .celpdp {
 display: inline-block;
 margin: 0.25em;
 background: #fbfefe;
 border: 1px dashed blue;
 padding: 0.2em;
}
#vpdp .celpdp span {
 display: block;
 margin: 0.2em auto;
 border-bottom: 1px solid #888899;
}
</style>
<?php
// De la: https://marplo.net/php-mysql/

// numar de coloane
$c = 4;

// datele din baza de date
$rows = array(
 array('poza'=>'poza_1', 'denumire'=>'denumire_1', 'pret'=>'pret_1'),
 array('poza'=>'poza_2', 'denumire'=>'denumire_2', 'pret'=>'pret_2'),
 array('poza'=>'poza_3', 'denumire'=>'denumire_3', 'pret'=>'pret_3'),
 array('poza'=>'poza_4', 'denumire'=>'denumire_4', 'pret'=>'pret_4'),
 array('poza'=>'poza_5', 'denumire'=>'denumire_5', 'pret'=>'pret_5'),
 array('poza'=>'poza_6', 'denumire'=>'denumire_6', 'pret'=>'pret_6'),
 array('poza'=>'poza_7', 'denumire'=>'denumire_7', 'pret'=>'pret_7'),
 array('poza'=>'poza_8', 'denumire'=>'denumire_8', 'pret'=>'pret_8'),
 array('poza'=>'poza_9', 'denumire'=>'denumire_9', 'pret'=>'pret_9'),
 array('poza'=>'poza_10', 'denumire'=>'denumire_10', 'pret'=>'pret_10'),
 array('poza'=>'poza_11', 'denumire'=>'denumire_11', 'pret'=>'pret_11'),
 array('poza'=>'poza_12', 'denumire'=>'denumire_12', 'pret'=>'pret_12')
);

$html_data = '<div id="vpdp">';

$i = 0;
while($row = @$rows[$i]) {
  $html_data .= '<div class="celpdp"><span>' .$row['poza']. '</span><span>'. $row['denumire']. '</span><span>'. $row['pret'] .'</span></div>';
  $i++;

  // adauga rand nou la fiecare numar de $c parcurs (cand restul impartirii e 0)
  if(($i % $c) == 0) $html_data .= '</br>';
}
$html_data .= '</div>';

echo $html_data;
?>