Wątek przeniesiony 2014-10-19 08:51 z PHP przez dzek69.

Zliczanie ilości kliknięć w poszczególne przyciski, powiązane z tym samym wierszem

0

Witam !

Prosze o pomoc, chodzi o to że mam coś takiego:

user image

i chce, aby po kliknieciu Wybieram1, dodalo mi daną wartość do kolumny odpowiadającej danemu tekst1, a jeśli klikne Wybieram2, to doda mi do kolumny odpowiadającej tekst2, i tak osobno dla każdego z poszczególnych wersów na zdjęciu.

wygląd w bazie danych:

user image

Wiem jak zrobić żeby dodawał +1 po każdym kliknięciu, tylko nie wiem jak żeby dla każdego z rekordów klikniecia zliczał osobno.

Pomocy

0

wrzuć kod html generujący tę tabelkę, wolę go poprawić niż pisać od nowa (a i tak Ty mogłeś zrobić inaczej)

I błagam:

  1. Wklejaj obrazki w tagi, które działają na tym forum (używaj przycisków w edytorze), przeklejanie kodu z innych forów jak leci, bez nawet użycia podglądu to trochę ignoranctwo, wkleję, niech robią
  2. Obrazki wrzucaj na imgur jak musisz - te na fotosiku szybko wygasają i bodajże mają blokadę antyhotlinkową, więc i tak ich nie zobaczymy
  3. Już w tytule powinno być wiadomo o co chodzi w Twoim poście. Twój tytuł nie był zły, ale nie był też dobry
  4. Jak będziesz wklejał kod - używaj tagów z kolorowaniem, tj. np. <code class="html"></code>
0

Dodawanie postu, wpisujemy tekst1 i tekst2.

<?php
include('funkcja.php');
echo'
<center>
<br>

<form action="dodajpost.php" method="post">
Tekst1<br />
<input type="text" name="tekst1" value=""  class="nr1"/><br />

Tekst2:<br />
<input type="text" name="tekst2" class="nr1" /><br />

<input type="submit" value="dodaj"  /><br />
</center>
';
?>
 <?php
// odbieramy dane z formularza
@$tekst1 = $_POST['tekst1'];
@$klik1 = $_POST['klik1'];
@$tekst2 = $_POST['tekst2'];
@$klik2 = $_POST['klik2'];


if($tekst1 and $tekst2  ) {
    
    // łączymy się z bazą danych
    $connection = @mysql_connect('localhost', 'root', 'lolo90')
    or die('Brak połączenia z serwerem MySQL');
    $db = @mysql_select_db('cowolisz2', $connection)
    or die('Nie mogę połączyć się z bazą danych');
    // dodajemy rekord do bazy
    $ins = @mysql_query("INSERT INTO test SET tekst1='$tekst1', tekst2='$tekst2'");
    if($ins) echo "Rekord został dodany poprawnie";
    else echo "Błąd nie udało się dodać nowego rekordu";
    mysql_close($connection);
} else {
echo '<br>Prosimy o wprowadzenie wszystkich pól prawidłowo.'; 
}

?>

Wyswietlanie stronicowe tabeli na rysunku w 1 poscie:

<?php
        include ("config.php");
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Paginacja - Michał Załęcki</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php

echo "<p>";
 echo "<table boder=\"1\"><tr>";
  echo "<td bgcolor=\"\"><strong><center><u>ID</strong></td>";
 echo "<td bgcolor=\"\"><strong><center><u>Tekst1</strong></td>";
 echo "<td bgcolor=\"\"><strong><center><u>Klik1</strong></td>";
 echo "<td bgcolor=\"\"><strong><center><u>Tekst2</strong></td>";
 echo "<td bgcolor=\"\"><strong><center><u>Klik2</strong></td>";
 echo "</tr>";
 echo "</p>";
 
        //musimy wyciągnąć z bazy informacje o ilości postów ogólnie do wyliczenia ilości stron
        //celowo nie kożystamy z SQL_CALC_FOUND_ROWS, bo zależy nam na zabezpieczeniu się przed wś****skimi 
        //użytkownikami, którzy zmodyfikują url i będą chcieli wejść na stronę jaka nie istnieje
        $query = "SELECT COUNT(*) as all_posts FROM test";
        $result = mysql_query($query) or die (mysql_error());
        $row = mysql_fetch_array($result);
        extract($row);
        
        $onpage = 15; //ilość newsów na stronę
        $navnum = 20; //ilość wyświetlanych numerów stron, ze względów estetycznych niech będzie to liczba nieparzysta
        $allpages = ceil($all_posts/$onpage); //wszysttkie strony to zaokrąglony w górę iloraz wszystkich postów i ilości postów na stronę
        
        //sprawdzamy poprawnośc przekazanej zmiennej $_GET['page'] zwróć uwage na $_GET['page'] > $allpages
        if(!isset($_GET['page']) or $_GET['page'] > $allpages or !is_numeric($_GET['page']) or $_GET['page'] <= 0){
                $page = 1;
        }else{
                $page = $_GET['page'];
        }
        $limit = ($page - 1) * $onpage; //określamy od jakiego newsa będziemy pobierać informacje z bazy danych
                
        $query = "SELECT * FROM test ORDER BY id DESC LIMIT $limit, $onpage";
        $result = mysql_query($query) or die (mysql_error());
        
 while ( $row = mysql_fetch_row($result) ) {
        echo "</tr>";
	echo "<td bgcolor=\"\"><center>" . $row[0] . "</td>";	
    echo "<form action=\"stronic.php\" method=\"post\"><td bgcolor=\"\"><center>" . $row[1] . "</td>";
	echo '<td bgcolor=\"\"><input type="submit" name="klik1" value="Wybieram1"></td>';
    echo "<td bgcolor=\"\"><center>" . $row[3] . "</td>";
	echo '<td bgcolor=\"\"><input type="submit" name="klik2" value="Wybieram2"></td></form>';
    echo "</tr>";
 }
 echo "</table>";
 
 include('funkcja.php');
        
        //zabezpieczenie na wypadek gdyby ilość stron okazała sie większa niż ilośc wyświetlanych numerów stron
        if($navnum > $allpages){
                $navnum = $allpages;
        }
        
        //ten fragment może być trudny do zrozumienia
        //wyliczane są tu niezbędne dane do prawidłowego zbudowania pętli
        //zmienne są bardzo opisowę więc nie będę ich tłumaczyć
        $forstart = $page - floor($navnum/2);
        $forend = $forstart + $navnum;
        
        if($forstart <= 0){ $forstart = 1; }
        
        $overend = $allpages - $forend;
        
        if($overend < 0){ $forstart = $forstart + $overend + 1; }
        
        //ta linijka jest ponawiana ze względu na to, że $forstart mogła ulec zmianie
        $forend = $forstart + $navnum;
        //w tych zmiennych przechowujemy numery poprzedniej i następnej strony
        $prev = $page - 1;
        $next = $page + 1;
        
        //nie wpisujemy "sztywno" nazwy skryptu, pobieramy ja od serwera
        $script_name = $_SERVER['SCRIPT_NAME'];
        
        //ten fragment z kolei odpowiada za wyślwietenie naszej nawigacji
                if($page > 1) echo "<a href=\"".$script_name."?page=".$prev."\">Poprzednia</a>";
        if ($forstart > 1) echo "<a href=\"".$script_name."?page=1\">[1]</a>";
        if ($forstart > 2) echo "";
        for($forstart; $forstart < $forend; $forstart++){
                if($forstart == $page){
                        
                }else{
                        
                }
                echo "<a href=\"".$script_name."?page=".$forstart."\">[".$forstart."]</a>";
        }
        if($forstart < $allpages) echo "";
        if($forstart - 1 < $allpages) echo "<a href=\"".$script_name."?page=".$allpages."\">[".$allpages."]</a>";
        if($page < $allpages) echo "<a href=\"".$script_name."?page=".$next."\">Następna</a>";
        
?>
</body>
</html>

Funkcja.php zaincludowana w powyższym kodzie:

Funkcja includowana na samym początku(funkcja.php) w powyższym kodzie, dzięki tej funkcji zlicza klikniecia w przyciski.

<?php
// odbieramy dane z formularza
@$tekst1 = $_POST['tekst1'];
@$klik1 = $_POST['klik1'];
@$tekst2 = $_POST['tekst2'];
@$klik2 = $_POST['klik2'];


if($klik1 == TRUE ) {
    
    // łączymy się z bazą danych
    $connection = @mysql_connect('localhost', 'root', 'lolo90')
    or die('Brak połączenia z serwerem MySQL');
    $db = @mysql_select_db('cowolisz2', $connection)
    or die('Nie mogę połączyć się z bazą danych');
    // dodajemy rekord do bazy
    $ins = @mysql_query("UPDATE dzial SET klik1=klik1+1");
	mysql_query("SELECT *FROM   pracownik
       INNER JOIN dzial
          ON test.object_id = dzial.object_id'");
    if($ins) echo "Rekord został dodany poprawnie";
    else echo "Błąd nie udało się dodać nowego rekordu";
    mysql_close($connection);
} else {
echo '<br>Prosimy o wprowadzenie wszystkich pól prawidłowo.'; 
}
if($klik2 == TRUE ) {
    
    // łączymy się z bazą danych
    $connection = @mysql_connect('localhost', 'root', 'lolo90')
    or die('Brak połączenia z serwerem MySQL');
    $db = @mysql_select_db('cowolisz2', $connection)
    or die('Nie mogę połączyć się z bazą danych');
    // dodajemy rekord do bazy
    $ins = @mysql_query("UPDATE dzial SET klik2=klik2+1");
    if($ins) echo "Rekord został dodany poprawnie";
    else echo "Błąd nie udało się dodać nowego rekordu";
    mysql_close($connection);
} else {
echo '<br>Prosimy o wprowadzenie wszystkich pól prawidłowo.'; 
}

?>

Prosze o pomoc

zamiana znaczników <code class="html"> na <code class="php"> - @furious programming

1 użytkowników online, w tym zalogowanych: 0, gości: 1