Pagina 1 din 1

Tabel HTML randuri ZEBRA cu date din array

Scris: Mie Iul 27, 2011
de trif
Salut, am si eu o mica problema si tot am cautat pe net si tot nu am gasit, problema este urmatoarea:
am tebelul asta

Cod: Selectaţi tot

echo '<table border="0" width="600" >';
echo '<tr> <td>Denumire</td></tr>';
si informatia care se afiseaza este intr-un while si rezultatul este in

Cod: Selectaţi tot

<a class="link" href="class.CountAccess.php?urlf='.$rand['urlf'].'">'.$rand['denumire'].'<span>Nr. Accesari: '.$rand['nrac'].'<br> Data descarcarii: --- <br> Categoria: '.$rand['denumire_categorie'].'</span></a>
si problema este ca nu stiu cum sa fac tabel cu zebra un rand de un del si altul de alt fel. Marplo mi-ai mai dat o data un tabel care l-ai facut in zebra dar nu m-am descurcat si am venit al tine cu un exemplu concret, si daca poti sa ma ajuti. multumesc anticipat, cu stima trif.

Tabel HTML randuri ZEBRA cu date din array

Scris: Mie Iul 27, 2011
de MarPlo
Se folosesc /alterneaza 2 clase CSS, una dupa alta in cate un <tr>; numele lor diferind printr-un numar, exemplu: class="cls0" si class="cls1".
Mai jos e un exemplu care trebuie adaptat la ce ai:

Cod: Selectaţi tot

<style type="text/css"><!--
.cls0 {background:#e7e8fe;}
.cls1 {background:#01da02;}
--></style>
<?php
// array din care vor fi poreluate datele (pt. test)
// in locul lui se pot prelua datele dintr-o baza de date
$arr = array('Rand 1 ...', 'Rand 2 ...', 'Rand 3 ...', 'Rand 4 ...');

$clsnr = 0;      // variabila cu numar ce va fi folosit la alternare /modificare nume clasa css
$tabel = '<table border="0" width="600" ><tr><td>Denumire</td></tr>';

// parcurgere array si adaugare randuri in tabel
$i = 0;
while($i<count($arr)) {
  $clasa = 'cls'.$clsnr;          // seteaza clasa css
  $tabel .= '<tr class="'. $clasa. '"/><td>'. $arr[$i]. '</td></tr>';

  // incrementare index si alternare valoare $clsnr (0 sau 1), ca rest in functie de index
  $i++;
  $clsnr = $i%2;
}

$tabel .= '</table>';       // incheiere tabel
echo $tabel;
?>
- Poti verifica sursa /codul HTML rezultat, ca sa intelegi principiul.

Tabel HTML randuri ZEBRA cu date din array

Scris: Joi Iul 28, 2011
de trif
salut, am incercat sa fac asa dar nu prea imi merge ca imi face un array doar la un rezultat si atat,

Cod: Selectaţi tot

$clsnr = 0;      // variabila cu numar ce va fi folosit la alternare /modificare nume clasa css
$tabel = '<table border="0" width="600" ><tr><td>Denumire</td></tr>';
if (!isset($_GET['id'])) { 
//$query="SELECT * FROM cantari_ppt WHERE aprobat = 1 ORDER BY denumire asc limit $limita";
$query="SELECT * FROM cantari_ppt 
INNER JOIN categorie
ON cantari_ppt.categoria = categorie.cheie
WHERE aprobat = 1 ORDER BY denumire asc limit $limita"; 
$result=mysql_query($query);
$num=mysql_num_rows($result);
 $i=0;
while ($i < $num) {
  $rand=mysql_fetch_array($result);
  if ($rand['nrac'] == 0)
  {
  // parcurgere array si adaugare randuri in tabel
$i = 0;
while($i<count($rand)) {
  $clasa = 'cls'.$clsnr;          // seteaza clasa css
  $tabel .= '<tr class="'. $clasa. '"/><td>
	<a class="link" href="class.CountAccess.php?urlf='.$rand['urlf'].'">'.$rand['denumire'].'<span>Nr. Accesari: '.$rand['nrac'].'<br> Data descarcarii: --- <br> Categoria: '.$rand['denumire_categorie'].'</span></a>
	</td></tr>';
  // incrementare index si alternare valoare $clsnr (0 sau 1), ca rest in functie de index
  $i++;
  $clsnr = $i%2;
}

$tabel .= '</table>';       // incheiere tabel
echo $tabel;
te uiti te rog sa vezi ce am facut, multumesc anticipat, cu stima trif

Tabel HTML randuri ZEBRA cu date din array

Scris: Joi Iul 28, 2011
de MarPlo
Trebuie un singur WHILE (si un singur $i incrementat), cel in care preiei randurile luate din baza de date, in acela se adauga /adapteaza codul din instructiunea WHILE din exemplul dat mai sus.
Daca aplici la ce preiei din baza de date, nu mai e nevoie de while($i<count($rand)) .

Tabel HTML randuri ZEBRA cu date din array

Scris: Vin Iul 29, 2011
de trif
salut, am reusit, multumesc pentru ajutor, uite asa am facut:

Cod: Selectaţi tot

$clsnr = 0;      // variabila cu numar ce va fi folosit la alternare /modificare nume clasa css
$tabel = '<table border="0" width="600" ><tr><td>Denumire</td></tr>';
if (!isset($_GET['id'])) { 
//$query="SELECT * FROM cantari_ppt WHERE aprobat = 1 ORDER BY denumire asc limit $limita";
$query="SELECT * FROM cantari_ppt 
INNER JOIN categorie
ON cantari_ppt.categoria = categorie.cheie
WHERE aprobat = 1 ORDER BY denumire asc limit $limita"; 
$result=mysql_query($query);
$num=mysql_num_rows($result);
$i=0;
while ($i < $num) {
  $rand=mysql_fetch_array($result);
  $clasa = 'cls'.$clsnr;     
   if ($rand['nrac'] == 0)
  {
	$tabel .= '<tr class="'. $clasa. '"/> <td>
   <a class="link" href="class.CountAccess.php?urlf='.$rand['urlf'].'">'.$rand['denumire'].'<span>Nr. Accesari: '.$rand['nrac'].'<br> Data descarcarii: --- <br> Categoria: '.$rand['denumire_categorie'].'</span></a>
   </td></tr>';
	}
	 elseif ($rand['nrac'] > 0)
  {
  $tabel .= '<tr class="'. $clasa. '"/> <td>
   <a class="link" href="class.CountAccess.php?urlf='.$rand['urlf'].'">'.$rand['denumire'].'<span>Nr. Accesari: '.$rand['nrac'].'<br> Data descarcarii: '.$rand['dt'].'<br> Categoria: '.$rand['denumire_categorie'].'</span></a>
   </td></tr>';
	}  
  $i++;
  $clsnr = $i%2;
}
$tabel .= '</table>';  
echo $tabel;
}
eu nu am mai modificat SELECT-ul dar daca nu este bun cu JOIN il puneti pe care il vreti voi. cu stima trif

Tabel HTML randuri ZEBRA cu date din array

Scris: Sâm Noi 19, 2011
de trif
salut, am si eu o problema, am un script de LOAD MORE, si am vrut sa ii implementez randuri ZEBRA la rezultatele pe care mi le da. problema este in felul urmator:
am 2 fisiere:
loadone.php care are codul:

Cod: Selectaţi tot

	
<id class="timeline" id="updates">
	<?php
include('conectare.php');
$sql=mysql_query("SELECT * FROM cantari_ppt 
INNER JOIN categorie
ON cantari_ppt.categoria = categorie.cheie
INNER JOIN utilizatori
ON cantari_ppt.autor = utilizatori.utilizator
WHERE aprobare = 1 ORDER BY id_c desc limit 5");
$tabel = '<table border="0" width="550" cellspacing="0" cellpadding="0"><tr><td>Denumire cantare</td></tr>';
$nrac=0;
$clsnr=0;  
$i=0;
while ($rand=mysql_fetch_array($sql)) {
  $upd_id=$rand['id_c'];
   if($rand['ranguri'] == 1 ) {
  $rang = '<h6>Trimisa de: <font color ="red" >  '.$rand['utilizator'].'</h6></font> ';
}
elseif($rand['ranguri'] == 2 ) {
   $rang = '<h6>Trimisa de: <font color ="blue" >  '.$rand['utilizator'].'</h6></font> ';
}
elseif($rand['ranguri'] == 3 ) {
  $rang = '<h6>Trimisa de: <font color ="green" >  '.$rand['utilizator'].'</h6></font>  ';
}
  $clasa = 'cls'.$clsnr;     
   if ($rand['nrac'] == 0)
  {
	$tabel .= '<tr class="'. $clasa. '"/> <td>
   <a class="link" href="class.CountAccess.php?urlf='.$rand['urlf'].'">'.$rand['denumire'].'<span>Nr. Accesari: '.$rand['nrac'].'<br> Data descarcarii: --- <br> Categoria: '.$rand['denumire_categorie'].'</span></a>
'.$rang.'
</td></tr>';
	}
	 elseif ($rand['nrac'] > 0)
  {
  $tabel .= '<tr class="'. $clasa. '"/> <td>
   <a class="link" href="class.CountAccess.php?urlf='.$rand['urlf'].'">'.$rand['denumire'].'<span>Nr. Accesari: '.$rand['nrac'].'<br> Data descarcarii: '.$rand['dt'].'<br> Categoria: '.$rand['denumire_categorie'].'</span></a>
'.$rang.'
</td></tr>';
	}   
  $i++;
  $clsnr = $i%2;
}
$tabel .= '</table>';  
echo $tabel;
?>
<div id="more<?php echo $upd_id; ?>" class="morebox">
<center><a href="#" class="more_updates" id="<?php echo $upd_id; ?>">Mai multe rezultate</a><br></center>
</div>
si loadmore.php care are codul urmator:

Cod: Selectaţi tot

<html>
<head>
<style type="text/css"><!--
.cls0 {background:#EEE;}
.cls1 {background:#FFF;}
--></style>
</head>
</body>
<?php
include("conectare.php");
sleep(1);
if(isset($_POST['lastupd']))
{
	$lastupd=$_POST['lastupd'];
	$lastupd=mysql_real_escape_string($lastupd);
	$result=mysql_query("SELECT * FROM cantari_ppt 
INNER JOIN categorie
ON cantari_ppt.categoria = categorie.cheie
INNER JOIN utilizatori
ON cantari_ppt.autor = utilizatori.utilizator
WHERE aprobare = 1 AND id_c < $lastupd ORDER BY id_c desc limit 3");
$tabel = '<table border="0" width="550" cellspacing="0" cellpadding="0" >';
$nrac=0;
$y=0;
$clsnr=0;  
while ($rand=mysql_fetch_array($result)) {
$upd_id=$rand['id_c'];
   if($rand['ranguri'] == 1 ) {
  $rang = '<h6>Trimisa de: <font color ="red" >  '.$rand['utilizator'].'</h6></font> ';
}
elseif($rand['ranguri'] == 2 ) {
   $rang = '<h6>Trimisa de: <font color ="blue" >  '.$rand['utilizator'].'</h6></font> ';
}
elseif($rand['ranguri'] == 3 ) {
  $rang = '<h6>Trimisa de: <font color ="green" >  '.$rand['utilizator'].'</h6></font>  ';
}
  $clasa = 'cls'.$clsnr;     
   if ($rand['nrac'] == 0)
  {
	$tabel .= '<tr class="'. $clasa. '"/> <td>
  <a class="link" href="class.CountAccess.php?urlf='.$rand['urlf'].'">'.$rand['denumire'].'<span>Nr. Accesari: '.$rand['nrac'].'<br> Data descarcarii: --- <br> Categoria: '.$rand['denumire_categorie'].'</span></a>
'.$rang.'
</td></tr>';
	}
	 elseif ($rand['nrac'] > 0)
  {
  $tabel .= '<tr class="'. $clasa. '"/> <td>
   <a class="link" href="class.CountAccess.php?urlf='.$rand['urlf'].'">'.$rand['denumire'].'<span>Nr. Accesari: '.$rand['nrac'].'<br> Data descarcarii: '.$rand['dt'].'<br> Categoria: '.$rand['denumire_categorie'].'</span></a>
'.$rang.'
</td></tr>';
	}   
  $y++;
  $clsnr = $y%2;
}
$tabel .= '</table>';  
echo $tabel;
?>
<?php
}
?>
<div id="more<?php echo $upd_id; ?>" class="morebox">
<center><a href="#" id="<?php echo $upd_id; ?>" class="more_updates">Mai multe rezultate</a></center>
</div>
<body>
</html>
am aceste 2 fieiere care in index.php sunt apelate cu include "loadonce.php";
dar faza este ca atunci cand intru pe index.php imi arata tabelul cu zebra dar cand dau mai multe rezultate imi afiseaza rezultatele dar nu in forma de zebra. adica cand imi arata rezultate cerute imi afiseaza un tabel normal chit ca in fisier am pus sa imi arate in forma de zebra. nu stiu care este problema. va uitati va rog sa vedeti unde am gresit. va multumesc anticipat. cu stima trif

Tabel HTML randuri ZEBRA cu date din array

Scris: Sâm Noi 19, 2011
de MarPlo
Salut
Ar trebui sa verifici codul html la tabelul adaugat in pagina, sa vezi ce class sau id au randurile. Asa e mai usor sa-ti dai seama unde in codul php sa cauti gresala.
Daca acel continut e adaugat dinamic, printr-un Ajax, poti verifica si vedea codul adaugat folosind Mozilla Firefos si addon-ul FireBug (e foarte util pt. cei care fac pagini web).

Nu stiu daca urmatoarea solutie e rezolvarea, dar incerc.
Deci, in "loadmore.php", in loc de:

Cod: Selectaţi tot

$clasa = 'cls'.$clsnr;
pune:

Cod: Selectaţi tot

$clasa = 'cls'.$clsnr%2; 
Iar in loc de:

Cod: Selectaţi tot

$clsnr = $y%2;
sa fie:

Cod: Selectaţi tot

$clsnr++;