Autor Zpráva
šárinka
Profil
Ahoj, mám problém s cyklem potřebuji vypsat známky ve tvaru 5,3,2,4,3,5,1,... Známky vypisuju z databáze mám takovýto script
<?php
$vys = MySQL_Query("select * from hodnoceni where id='".$_GET["id"]."'")or die(mysql_error());
while ($rowe=MySQL_Fetch_Array($vys))
{
$znamka = $rowe["znamka"];
};

  for($i=0;$i<MySQL_Num_Rows($vys);$i++) {
    if($i != 0) $znamky .= ',';
    $znamky .= $znamka[$i];
  }
  echo 'Znamky: ' . $znamky . '<br />';
?>


ale je problém v tom žemi to vypiše pouze 5,,,,,,, ale nenapíše mi to mezi čárky ty známky kde mám chybu?
Měsíček
Profil
Tipnu si .. neměl by být ten cyklus for v cyklu while?
king26
Profil
<?php
$znamka=array();
$vys = MySQL_Query("select * from hodnoceni where id='".$_GET["id"]."'")or die(mysql_error());
while ($rowe=MySQL_Fetch_Array($vys))
{
$znamka=$rowe["znamka"];
};

  for($i=0;$i<count($znamka)-1;$i++) {
    if($i != 0) $znamky .= ',';
    $znamky .= $znamka[$i];
  }
  echo 'Znamky: ' . $znamky . '<br />';
?>
šárinka
Profil
díky
Ssob
Profil
king26
Podle mě ti ten kód nemůže fungovat.

$znamka=$rowe["znamka"];
Místo toho by nejspíš mělo být
$znamka[]=$rowe["znamka"];
.

for($i=0;$i<count($znamka)-1;$i++) {
To -1 tam nemá co dělat.

Navíc by se to celé dalo zapsat mnohem jednodušeji:
$query = mysql_query("SELECT GROUP_CONCAT(znamka) AS znamky FROM hodnoceni WHERE id = " . intval($_GET['id']) . " GROUP BY id");
$znamky = mysql_result($query, 0);

echo 'Znamky: ' . $znamky;


Anebo alespoň místo druhého cyklu použít:
$znamky = implode(',', $znamka);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: