Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie chce dodawać :/
Forum PHP.pl > Forum > Przedszkole
V!c3r
Mam problem. Pisze mały skrypt z głosowaniem. I wszysko ładnie pięknie tylko nie dodaje mi :/ Znaczy jak wyciągam wartość z bazy to jest ok ale lecz gdy chcem dodać do tej wartości 1 to nic mi sie nie dzieje :/ Pewnie pomyślicie że jestem głupi ale może (dodam że jestem bardzo początkujący Oto ten kod:
[php:1:d14cbe66f6]<?php
function glosuj() {
$ip = $_SERVER['REMOTE_ADDR'];
$id = $_GET['id'];
$zapytanie = "SELECT * FROM konkurs WHERE id='$id'";
$result = mysql_query($zapytanie);
$liczba = $result['glos'];
$dodac = $liczba+ ;
$zapytanko = "UPDATE konkurs SET glos='$dodac' WHERE id='$id'";
$r = mysql_query($zapytanko);
$pytanie = "INSERT INTO konkurs (ip) VALUES '$ip' WHERE id=$id";
$r2 = mysql_query($pytanie);
oddane();
}

?>[/php:1:d14cbe66f6]
cboot
$dodac = $liczba+ ; questionmark.gif?
Jak już to $dodac = $liczba+1 ;
A najlepiej tak:
[php:1:ad9bed95a6]<?php
$liczba = $result['glos'];
$liczba++ ;
$zapytanko = "UPDATE konkurs SET glos='$liczba' WHERE id='$id'";
$r = mysql_query($zapytanko);
?>[/php:1:ad9bed95a6]
Albo krócej:
[php:1:ad9bed95a6]<?php
$liczba = $result['glos'];
$zapytanko = "UPDATE konkurs SET glos='".$liczba++."' WHERE id='$id'";
$r = mysql_query($zapytanko);
?>[/php:1:ad9bed95a6]
No i zabezpiecz się przy okazji przed atakiem sql injection:
[php:1:ad9bed95a6]<?php
$id = (int) $_GET['id'];
?>[/php:1:ad9bed95a6]

EDIT: Ups.. sorry. $liczba++ powinno być oczywiście poza cudzysłowiem, myślałem, że to poprawiłem zaraz po napisaniu, a nie poprawiłem, więc robię to teraz.... Wersja q jest oczywiście debest.
q
[php:1:f0663df3d6]
<?php
function glosuj() {
$ip = $_SERVER['REMOTE_ADDR'];
$id = $_GET['id'];
$zapytanie = "SELECT * FROM konkurs WHERE id='$id'";
$result = mysql_query($zapytanie);
$liczba = $result['glos'];
$dodac = $liczba++;
$zapytanko = "UPDATE konkurs SET glos='$dodac' WHERE id='$id'";
$r = mysql_query($zapytanko);
$pytanie = "INSERT INTO konkurs (ip) VALUES '$ip' WHERE id=$id";
$r2 = mysql_query($pytanie);
oddane();
}
?>
[/php:1:f0663df3d6]

poprawilem linie 8, powinno byc ++ (inkrementacja). Mozna to zrobic rowniez samym zapytaniem MySQL, wtedy:

[php:1:f0663df3d6]<?php

function glosuj() {
$ip = $_SERVER['REMOTE_ADDR'];
$id = $_GET['id'];
$zapytanie = "SELECT * FROM konkurs WHERE id='$id'";
$result = mysql_query($zapytanie);
$zapytanko = "UPDATE konkurs SET glos=glos+1 WHERE id='$id'";
$r = mysql_query($zapytanko);
$pytanie = "INSERT INTO konkurs (ip) VALUES '$ip' WHERE id=$id";
$r2 = mysql_query($pytanie);
oddane();
}
?>[/php:1:f0663df3d6]
V!c3r
nie dziala :/ w bazie ciagle jest 1 :/
BzikOS
A sprawdzałeś kod podany przez q?

[php:1:9bac0b1eb5]<?php
$zapytanko = "UPDATE konkurs SET glos=glos+1 WHERE id='$id'";
?>[/php:1:9bac0b1eb5]

To musi zadziałać na 100%
V!c3r
nie nie sprawdziłem :/
hehe działą wielkie dzięki!!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.