Autor Zpráva
SpotRudloff
Profil
Dobrý den,
potřeboval bych takovou malou radu.

Vytvořil jsem si anketu, která plně funguje, jenže nevím, jak udělat čáru, jakoby graf, která srovnává všechny odpovědi v anketě.
Použil jsem trojčlenku, všechno fungovalo, jenže mi něják nejde od hlavy, jak to udělat, aby to nemělo šířku větší, než jakou bych chtěl.

Toto je skript, jenž vypisuje anketu:
<?php
require_once "db.php";

$select = $mysqli->query("SELECT * FROM poll");
if(!$select) die($mysqli->error);

while($data = $select->fetch_assoc()) {
  echo $data['question'] ."<br /><br />";
  $select = $mysqli->query("SELECT * FROM poll_votes WHERE poll_id = ". $_GET['poll_id']);
  if(!$select) die($mysqli->error);

  while($data = $select->fetch_assoc()) {
    echo "<a href='vote.php?poll_id=". $data['poll_id'] ."&answer=". $data['id'] ."'>". $data['answer'] ."</a>";
    if($select->num_rows > 0) {
      $width = ceil(100 * $data['count']) / $select->num_rows;
      //$width = 100 - $width;
      //echo $select->num_rows;
    } else
      $width = 1;
    //echo "&nbsp;". $data['count'];
    echo "<div style='width:". $width ."px;border:Blue 1px Solid;'></div>";
    echo "<br />";
  }
}
?>


Děkuji předem za radu.
David1256
Profil
jak to udělat, aby to nemělo šířku větší, než jakou bych chtěl
Počet hlasů jedné odpovědi / počet hlasů všech odpovědí * maximální šířka(šířka, kterou bys chtěl).
Louka
Profil
já bych si určil poměr mezi jednotlivými odpověďmi a pak bych vzal max šířku a vydělil to:
edit, takto: width = 1 / (poměr_pro_odpoved / max_width)
SpotRudloff
Profil
Louka:
Jak myslíš ten poměr?
Joker
Profil
SpotRudloff:
Jak myslíš ten poměr?
Aby ten vzorec fungoval, musela by to být převrácená hodnota poměru hlasů pro danou odpověď (tj. počet všech hlasů / počet hlasů pro danou odpověď), ale asi se do toho Louka zamotal, správně je vzorec co píše David1256
panther
Profil
SpotRudloff:
případně pak je ještě druhá možnost, kdy 100% šířky bude mít odpověď, která má nejvíce hlasů (místo celkového počtu hlasů) a ostatní se budou počítat v poměru k ní. Výsledek by pak mohl vypadat podobně jako ve Statistikách zde na diskusi.
SpotRudloff
Profil
panther:
Ano, ano. To je to co jsem chtěl. Jenže nevím jak na to. Dnes mi to už asi myslet nebude...
panther
Profil
SpotRudloff:
vzorec máš výše, jen místo celkového počtu příspěvku bude ten, který má hlasů nejvíce (bude brán jako základ).
SpotRudloff
Profil
Tak děkuju za radu. Zkusím to sesmolit a řeknu Vám, jestli to půjde.

// EDIT: Tak se mi to nakonec povedlo, opravdu jsem jen potřeboval proměnnou, která obsahovala nejvyšší číslo. To jsem zíkal pomocí
$select = $mysqli->query("SELECT max(`count`) as cnt FROM poll_votes");


Všm Vám moc děkuji, hlavně Pantherovi a Davidu1256.

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:

0