Autor Zpráva
Ajtak
Profil *
Mám takovýto kód pro výpis obrázků z databáze: a já bych potřeboval jak je ten input aby se tam dalo napsat hodnocení a potom se to uložilo do db.

Jde to nějak?

<?php
$query = "SELECT image, thumb, tags, number FROM images";
$result = mysql_query($query);
while(list($image, $thumb, $tags, $number) = mysql_fetch_array($result)){
 echo "<tr><td><h1>$number.</td><td><a class='vlightbox1'  href='".$image."'><img src='".$thumb."' ></td><td><input type=text></td></tr>";
}
?>   



U každé fotky se dělá to okýnko a já potřebuji obsah těchto políček uložit do db sloupec body.


Chci aby s tam psali čísla, které by se uložili do db.
nemeja
Profil
muzes udelat treba novou tabulku (id obrazku, id_klikajiciho, hodnoceni). Do te zapisovat jednotliva hodnoceni a pak pro obrazek pocitat prumer
BedyR
Profil
Ajtak:
No nevím jestli tam máš v tabulce 'images' pole (samo že se můžou jmenovat jinak)

id - identifikační číslo rekordu
body - suma přidělených bodů
hodnotilo - počet hodnotitelů

já vycházím z toho že ano
doplněný tvůj skript jsem pracovně nazval galerie
to pole za obrázkem by mělo být radši <select><option>1 .... kde by jsi měl všechny hodnoty např 1-5 nebo radiobuttony nebo tlačítka
protože takhle budeš muset testovat rozsah hodnot a zda je to číslo.
dále tam můžeš mít zobrazenu průměrnou hodnotu hodnocení (třeba pod tím polem,<sele ....)

galerie.php
<?php
    echo "<form method="post" action="zpracovat.php" target="_self">
              <table>';
    $query = "SELECT image, thumb, tags, number, id, body, hodnotilo  FROM images";
    $result = mysql_query($query);
    while(list($image, $thumb, $tags, $number, $id, $body, $hodnotilo) = mysql_fetch_array($result)){
      $name = "id".$id."#".$body."#".$hodnotilo."#";
      $prum = round($body/$hodnotilo,1);
      echo '<tr>
                <td>
                    <h1>'.$number.'</h>
                </td>
                <td>
                    <a class="vlightbox1"  href="'.$image.'">
                        <img src="'.$thumb.'" >
                   </a>
                </td>
                <td>
                    <span>'.$prum.'</span>
                </td>
                <td>
                  <select name="'.$name.'">
                      <option value="1">
                      <option value="2">
                      <option value="3">
                      <option value="4">
                      <option value="5">
                  </select>
                </td>
              </tr>';
    }
   echo  '<table>
         <form method="post" action="zpracovat.php" target="_self">';

    
?>

inputem zakládáš položky ty je ale potřebuješ aktualizovat na to je UPDATE

skript je bez kontroli platnosti hodnot

zpracovat.php
<?php
  while (list($key, $val) = each($_POST)) {
      if (!empty($val) {
        list($id,$body,$hodnotilo) = exploded("#", $key);
        $id         = substr($id,2);
        $body  += $val;
        $hodnotilo ++;
        $query  = "UPDATE images SET body = ".$body.", hodntilo = ".$hodnotilo." WHERE id = ".$id ;
        $result  = mysql_query($query);
      }
  }
  header("Location: ./galerie.php");
  exit;
?>



Ajtak:
pak bys tam měl ještě mít kontrolu na hodnotitele aby stejný člověk během minuty nehodnotil třeba desetkrát
Ajtak
Profil *
Ten zpracuj mi hlásí chybu již na 3 řádku: Parse error: syntax error, unexpected '{' in /home/users/guest/kurz.g6.cz/web/system/zpracovat.php on line
Someone
Profil
Ajtak:
Nebude to přesně podle tvého kódu, ale snad si to zvládneš poupravit:
<form method="POST">
    <table>
        <tr><td>P.Č.</td><td>Obrázek</td><td>Body</td></tr>
    <?php
        $sql = mysql_query("SELECT * FROM obrazky");
        while ($vysledek = mysql_fetch_assoc($sql)) {
            echo '
                <tr>
                      <td>'.$vysledek['id'].'</td><td><img alt="Obrázek" src="'.$vysledek['cesta]'.'" /></td>
                      <td>
                          <select name="body[]">
                              <option value="1">1</option>
                              <option value="2">2</option>
                              <option value="3">3</option>
                              <option value="4">4</option>
                              <option value="5">5</option> 
                         </select>
                         <input type="hidden" name="id[]" value="'.$vysledek['id'].'">
                      </td>
                </tr>
            ';
        }
    ?>
         <tr><td colspan="3"><input type="submit" name="hlasovat" value="Hlasovat"></td></tr>
    </table>
</form>
<?php
    if (isset($_POST['hlasovat'])) {
        foreach($_POST['id'] as $klic => $id) {
            mysql_query("UPDATE obrazky SET body=body+".$_POST['body'][$klic].", pocet_hodnoceni = pocet_hodnoceni+1 WHERE id=".$id);
        }
    }
?>
$klid opraveno na $klic
Ajtak
Profil *
Pokusím se to vysvětlit jinak:

Mám takovýto skript pro výpis obrázků z databáze:
<?php
    $query = "SELECT image, thumb, tags, number, id, hlasovat  FROM images";
    $result = mysql_query($query);
    while(list($image, $thumb, $tags, $number, $id, $hlasovat) = mysql_fetch_array($result)){
      $name = "id".$id."#".$hlasovat."#";
      echo '<tr>
                <td>
                    <h1>'.$number.'</h>
                </td>
                <td>
                    <a class="vlightbox1"  href="'.$image.'">
                        <img src="'.$thumb.'" >
                   </a>
                </td>
              
                <td>
                  <input type=text name="hlasovat">
                  
                </td>
              </tr>';
    }
   echo  '<table>
                <input type="submit">';
 
    
?>

A já potřebuji skript, který navýší číslo ve sloupci hlasovat o počet $_POST[name].

Jde to nějak? Prosím o řešení
Someone
Profil
Viz [#5] Someone
Ajtak
Profil
Jak upravuji, tak upravuji, stále to hází nějaké chyby.
Ajtak
Profil
Prosím o pomoc...

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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