preluare date din mysql si afisare in pagina intr-un tabel

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

preluare date din mysql si afisare in pagina intr-un tabel

salut. ma poate sfatui cineva cu informatii referitoare la un script php care sa preia informatiile dintr-o coloana din tabelul bazei de date si sa o afiseze intr-un tabel de 6 coloane?
de exemplu, an tabelul "tabel" si doresc ca informatiile din campul "useri" sa fie afisate intr-un tabel de fix 6 coloane, iar nr de randuri sa se completeze automat in functie de numarul de inregistari din tabel.

MarPlo Mesaje:4343
Salut
Studiaza tutorialul de la pagina Creare tabel cu date din Array si Baza de date. La punctul 2 este exact despre asa ceva.
Sper sa fie de folos.

ursuletzu_nebunatic Mesaje:7
e ok.am tot studiat informatia de pe site-ul tau.fii atent.
eu am un formular prin care preiau informatii, de ex nume, user, etc......si le trimit in DB, in tabelul 'tabel'.

acum, uite o parte din cod:

Cod: Selectaţi tot

// conexiunea la DB....
$result = mysql_query("SELECT * FROM tabel");
while($row = mysql_fetch_array( $result ))
{
echo $row['user'];
}
/* pana aici merge bine si imi afiseaza toti userii unul dupa altul.de la primul, la ultimul.
** urmeaza tabelul care afiseaza informatia asa cum vreau eu: numele userilor se afiseaza unul dupa altul, 1 2 3 4 5 6, apoi userii 7 si 8 sar la randul urmator.
** ceea ce nu reusesc sa fac este sa trec cumva $row['user'] in array-ul de dedesubt. */

$numere = array("1","2","3","4","5","6","7","8","9","10","11");

//functia care genereaza tabelul cu valorile deja aranjate
function generare_tabel($valori = array(), $coloane = 6)
{
   // nr
   $nr = 0;
   // start table
   $tabel = '<table border="0" cellpadding="1" cellspacing="1">
     <tr>'."\r\n";
   // generam capul de tabel pentru fiecare coloana in parte
   for($col = 1; $col <= $coloane; $col++)
      $tabel .= "<td>col{$col} </td>\r\n";
   // inchidem capul de tabel
   $tabel .= "</tr>\r\n";
   // start foreach
   foreach ($valori as $valoare) 
   {
      // daca nr = 0 inseamna ca trebuie pus tr pentru deschidere rand nou
      if ( $nr == 0 )
         $tabel .= "<tr>\r\n";
      // daca nr > 0 atunci verificam daca nu e divizibil si punem inchiderea 
// ptr rand anterior si deschidem urmatorul rand
      if ( $nr > 0 && ! ($nr % $coloane)) 
         $tabel .= "</tr><tr>\r\n";
      // afisam valorile in randul deschis
      $tabel .= "<td>$valoare</td>\r\n";
      // incrementam ca sa stim ce facem la urmatorul pas al buclei
      $nr++;
   }
   // daca mai trebuie adaugate campuri la tabel
   if ( ! ( $nr % $coloane))
      $tabel .= "</tr>\r\n";
   else
   {
      for($end = $coloane-1; $end >= 1; $end--)
      {
         if ( ! ( $nr % $end))
            $tabel .= "<td>-</td>\r\n";
      }
      $tabel .= "</tr>\r\n";
   }
   // inchidem tabelul
   $tabel .= "</table>\r\n";
   // returnam tabelul
   return $tabel;
}

echo generare_tabel($numere, 6);
multumesc.

Uite: am in campul useri urmatoarele nume: blabla, alex, xxxyyy, neanicu, ionvasile,kkk, zzzzz, sdfgh, tytyty, wwwww.
trebuie sa ii afiseze in felul urmator:

blabla | alex | xxxyyy | neanicu | ionvasile | kkk
zzzzz | sdfgh | tytyty | wwwww

nu e obligatoriu sa folosesc acest script de creare a tabelului.

MarPlo Mesaje:4343
Nu stiu daca am inteles ce vrei sa faci. Dupa mine, am inteles ca rezultatele din "$row['user']" sa le pui intr-un Array, apoi din acel Array sa faci cu acea functie tabelul.
Daca asta este, atunci se poate adauga intr-un Array ce e in "$row['user']" asa:

Cod: Selectaţi tot

// conexiunea la DB....
$result = mysql_query("SELECT * FROM tabel");
while($row = mysql_fetch_array( $result ))
{
$ar_user[] = $row['user'];
}
Si vei avea "$ar_user" un Array.

ursuletzu_nebunatic Mesaje:7
nu merge. uite, poate nu m-am exprimat eu bine. am baza de date 'database' cu campul 'user'.
eu vreau sa fac un script care sa apeleze baza de date, sa citeasca toti userii din campul 'user' si sa ii afiseze intr-un tabel cu 6 coloane.
nu stiu cati useri am, pt ca ei se adauga in continuu cand cineva se inregistreaza pe site, iar scriptul trebuie sa ii adauge automat in tabelul pe care vreau sa il creez.
cum am aratat in exemplul de mai sus. daca am de exemplu 10 useri in tabelul 'tabel' din DB, sa ii ordoneze asa:

blabla | alex | xxxyyy | neanicu | ionvasile | kkk
zzzzz | sdfgh | tytytyt | wwwww

nu ma intereseaza cum arata scriptul, vreau doar sa functioneze. codul pe care l-am pus eu este cel pe care am incercat sa il fac, dar nu merge.

claUdiu Mesaje:313
Deci in primul rand salut si in al doilea rand scuzatima ca ma bag. Deci tu vrei sa afiseze useri din db in format text dar nu in tabel nu??? de ex asa: Useri inregistrati pe site: Raul
Gheorghe
Alex

Daca vrei asa atunci incerca urmatorul cod:

Cod: Selectaţi tot

<?php
//Connectare la Baza de Date
$user="user";
$parola="parola";
$db="Baza de date";

$conn = mysql_connect("localhost", "$user", "$parola")
    or die("Unable to connect to MySQL");
$selectdb = mysql_select_db(''.$db.''); 
$interogare = "SELECT `username` FROM `useri` order by id desc LIMIT 20";
$rezultat = mysql_query($interogare);
if (mysql_errno()) {
    echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />";
}
$nr_campuri = mysql_num_fields($rezultat);
if (mysql_num_rows($rezultat) == 0) {
    echo 'Nici un utilizator inregistrat pe site';
}
else {
      echo ''.$rand['username']. '<br>';
}
?>
Codul de mai sus trebuie modificat asa:

1-Datele de la Baza de Date
2-$interogare = "SELECT `username` FROM `useri` order by id desc LIMIT 20";

Modifica `username` cu coloana care arata usernameul
si `useri` cu numele tabelului in care ai coloana care arata usernameul.
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

ursuletzu_nebunatic Mesaje:7
salut claUdiu. nu se supara nimeni.doar incerci sa ajuti. m-am uitat peste scriptul tau, insa am si eu ceva asemanator. cu scriptul meu ii afisez intr-un tabel, insa ii pune pe toti unul dupa altul. la mine tre sa puna cate 6 pe linie, indiferent de cati sunt in tabelul din DB
uite aici scriptul pe care il folosesc pt afisarea coloanei 'user' din DB:

Cod: Selectaţi tot

// conectare si selectare DB

$result = mysql_query("SELECT * FROM tabel");
echo "<table width=\"980\" cellpadding=\"3\" cellspacing=\"2\" border=\"1\" bordercolor=\"#0000ff\">";
while($row = mysql_fetch_array( $result ))
{
	echo "<td align=\"center\" valign=\"middle\">" . $row['user'] . "</td>";
 }
sper sa ma puteti ajuta ca nu mai am nici o idee.

MarPlo Mesaje:4343
Incearca asa:

Cod: Selectaţi tot

// conectare si selectare DB

$result = mysql_query("SELECT * FROM tabel");
$html_tab = '<table width="980" cellpadding="3" cellspacing="2" border="1" bordercolor="#0000ff"><tr>';
$i = 0;
while($row = mysql_fetch_array( $result ))
{
  $html_tab .= '<td align="center" valign="middle">'. $row['user'] . '</td>';
  $i++;
  if(($i%6)==0) $html_tab .= '</tr><tr>';    // Inchide randul si adauga altul la fiecare 6 parcurgeri
 }
$html_tab .= '</tr></table>';

echo str_replace('<tr></tr>', '', $html_tab);   // Afiseaza (Cu "str_replace" sa nu ramana rand gol adaugat)

ursuletzu_nebunatic Mesaje:7
multumesc pt raspuns. este exact ce am nevoie.

Subiecte similare