Problema generare tabel

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

Problema generare tabel

Problema mea este urmatoarea:

Am urmatorul cod:

Cod: Selectaţi tot

<?php
$fisier=$_GET['file'];

$conn = mysql_connect("localhost", "xfilex", "xfilex")
    or die("Unable to connect to MySQL");
$selectdb = mysql_select_db('xfilex');
$utilizator=mysql_real_escape_string($_GET['file']);
$cerereSQL = 'SELECT * FROM fisiere WHERE fisier="'.$_GET['file'].'"'; 
$rezultat = mysql_query($cerereSQL);
if(mysql_num_rows($rezultat) > 0) {
while($rand = mysql_fetch_array($rezultat))	{ 
      echo '<center>
                <table border="0" class="acces" width="97%" bgcolor="#C6E5B7">
              Descarca fisierul '.$fisier.'
                </table>
                </center>';
echo "<table border='0' width='50%'><tr>";

	echo '<td class="margins"><font class="general">Nume fisier: </font><font class="general_red" color="red"><b>'.$_GET['fisier'].'</font></b></tr></td>';
	echo'<br>';
	echo '<tr><td class="margins"><font class="general">Marime: </font><font class="general_red" color="red"><b>filesize($fisier)</font></b></td></tr>';
  echo'<br>';
	echo '<tr><td class="margins"><font class="general">Data uploadului: </font><font class="general_red" color="red"><b>'.$rand['data'].'</font></b></td></tr>';
	echo '<tr><td class="margins"><font class="general">Uploader: </font><font class="general_red" color="red"><b>'.$rand['uploader'].'</font></b></td></tr>';
	echo '<tr><td class="margins"><font class="general">Descarcari: </font><font class="general_red" color="red"><b>'.$rand['descarcari'].'</font></b></td></tr>';
	echo'<br>';
	echo '<tr><td class="margins"><font class="general">Descriere: </font><font class="general_red" color="red"><b>'.$rand['descriere'].'</font></b></td></tr>';
	echo '<br>';
	
	
	echo "</table>";
	
echo "</center>";
  }
}
?>

<?php
echo '<br>';
echo '<br>';
echo '<a href="'.$url.'/d/download2.php?file='.$fisier.'"><img src="download.gif"></a>';
echo '<br>';
echo '<br>';
echo 'Adresa fisierului este:<br><input type="text" name="thetext" size="60" value="http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['REQUEST_URI']).'download.php?file='.$fisier.'">';
?>
Il pun in pagina si imi arata de doua ori tabelu cu datele din cod:((Am incetcat dar nu merge sa fk sa nu arate doua pls HELP.
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

MarPlo Mesaje:4343
In astfel de cazuri problema e ca inceputul (si inchiderea) tabelului HTML sunt in bucla WHILE, din aceasta cauza, cand se repeta executia din bucla se creaza iar codul pt. inceputul tabelului.
Solutia: Scrierea codului de inceput (si sfarsit) de tabel in afara buclei WHILE.

- Uite un exemplu destul de explicat si simplu ca sa intelegi din el cum sa faci pt. codul tau, si pt. altele asemanatoare.
E doar un exemplu explicativ, mai departe ramane sa-l studiezi si sa incerci sa-l aplici pana reusesti si intelegi logica.

Cod: Selectaţi tot

<?php
// Se face conectarea la MySQL si selectarea bazei de date

// Selectarea randurilor din tabel
$cerereSQL = "SELECT * FROM `nume_tabel` WHERE `coloana`='$val'";
$rezultat = mysql_query($cerereSQL);

// Daca sunt returnate randuri de tabel
if(mysql_num_rows($rezultat) > 0) {
  // Se creaza codul pt. inceputul tabelului HTML
  echo '<table border="1">';

  // Se scrie in bucla WHILE codul HTML pt. generarea DOAR a randurilor ce vor fi in tabel
  while($rand = mysql_fetch_array($rezultat))   {
    echo '<tr><td>' .$rand['col1']. '</td><td>' .$rand['col2']. '</td></tr>';
  }

  // Se creaza (dupa terminarea lui WHILE) inchiderea tabelului HTML
  echo '</table>';
}
?>

Subiecte similare