• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[PHP][MySQL] Porównywanie

Object Storage Arubacloud
–1 głos
494 wizyt
pytanie zadane 25 lipca 2016 w PHP przez Omin Początkujący (250 p.)

Witam serdecznie smile.gif
Chciałem zrobić stronę na której można głosować na zdjęcia.
Na stronie pojawiają się losowo dwa zdjęcia, których ścieżki znajdują się w bazie danych.
W bazie danych mam tabele - Zdjecia a w niej 'image_id','image_url', 'Wynik'.

Mój problem polega na tym, że jak już pojawią się te zdjęcia i kliknę w przycisk niżej pod jednym z nich to punkt przyznawany jest do zdjęcia o innym ID niż było wyświetlone np. pojawia się zdjęcie o ID = 1 a punkt dostaje zdjęcie o ID = 5.

Kod losowania zdjęcia, wyjęcia go z bazy:

 


        $losoweID = mysql_query("SELECT `image_id` FROM `zdjecia` ORDER BY `image_id` DESC LIMIT 1");
        $obrazek=mysql_fetch_array($losoweID,MYSQL_NUM);
        $lastid=$obrazek[0];
 
 
	$img1=rand(1,$lastid);
	$img2=rand(1,$lastid);
 
 
 
	while($img1==$img2){
	$img2=rand(1,$lastid);
	}
 
	echo $img1;
 
	echo $img2;
 
	$Result1 = mysql_query("SELECT `image_id`,`image_url`,`Wynik` FROM `zdjecia` WHERE `image_id`=$img1");
 
	$Obrazek1 = mysql_fetch_row($Result1);
 
	$Result2 = mysql_query("SELECT `image_id`,`image_url`,`Wynik` FROM `zdjecia` WHERE `image_id`=$img2");
 
	$Obrazek2 = mysql_fetch_row($Result2);

 

Kod wyświetlania zdjęcia :

 

<?php
		echo '<img src="'. $Obrazek1[1] . '" />'; 
?>

 

Kod przycisku, który po kliknięciu powinien dodać punkt:

 

 <form method="GET" action="index.php">
				<div class="przycisk">
					<button type="button" class="btn btn-default btn-lg przycisk_wielkosc">
					  <a href="index.php?akcja=zapytanie" class="btn btn-default btn-lg btn-block ">Głosuj!</a>
					</button>
				</div>
        </form>

No i kod uaktualniania wyniku:

 

   if (isset($_GET['akcja']) and $_GET['akcja']=='zapytanie'){
					$sql = "UPDATE `zdjecia` SET `Wynik`=`Wynik`+1 WHERE `image_id`='$img1'";
					mysql_query($sql) or die('BŁĄD:'.mysql_error());
				}

 

Pozdrawiam

komentarz 26 lipca 2016 przez efiku Szeryf (75,160 p.)
Kod na oko ma co najmniej 15 lat. Nawet nie czytam ;) (fajnie widać wklejkę z jakiegoś innego forum)  :D

2 odpowiedzi

+2 głosów
odpowiedź 25 lipca 2016 przez Ehlert Ekspert (212,870 p.)
wybrane 26 lipca 2016 przez Omin
 
Najlepsza

Twój kod jest strasznie nieczytelny. Zainteresuj się programowaniem obiektowym i PDO. Twoje zapytanie można skrócić do jednego używając OR w sql. Zmiennych nie nazywamy wielką literą.

Jak trochę się podszkolisz, napiszesz kod na czysto to na pewno problem zniknie. Pamiętaj żeby takie rzeczy tworzyć w Netbeans + xDebug.

komentarz 25 lipca 2016 przez Ehlert Ekspert (212,870 p.)

I jeszcze dla pola image_ID dodaj ograniczenia Unique.

2
komentarz 26 lipca 2016 przez efiku Szeryf (75,160 p.)
0 głosów
odpowiedź 26 lipca 2016 przez Omin Początkujący (250 p.)
Odpowiedzi szukałem też na innym forum. Co do kodu to powiem tyle - moja przygoda z php trwa od 2 dni. Problem już rozwiązany :)

Podobne pytania

0 głosów
1 odpowiedź 1,703 wizyt
0 głosów
1 odpowiedź 328 wizyt
pytanie zadane 16 sierpnia 2022 w PHP przez Doge Gaduła (3,420 p.)
0 głosów
1 odpowiedź 251 wizyt

92,666 zapytań

141,564 odpowiedzi

320,019 komentarzy

62,031 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...