Modyfikacja kodu PHP


(Maher9) #1

Witam,

Ściągnąłem ostatnio porównywarkę fotek ( FACEMASH ). Cała zabawa polega na tym że wyskakują dwie fotki, wybierasz jedną z nich i wyskakuje ci para kolejnych. I tu mam taką prośbę gdyby ktoś mógł rzucić na to okiem i zmodyfikować tak aby po kliknięciu na zdjęcie, to w które kliknęliśmy zostało a to drugie się zmieniło. Cały skrypt nie jest jakoś specjalnie zaawansowany jednak jestem zielony w PHP.

Link do skryptu http://www.sendspace.pl/file/b1de61ce3d5abb6550372f


(Grzelix) #2

podmień w index.php

// Get random 2

$query="SELECT * FROM images ORDER BY RAND() LIMIT 0,1 

		UNION

             SELECT * FROM images WHERE image_id ='".$_GET['winner']."'";

Nie testowałem ale powinno działać


(Maher9) #3

Niestety nie działa.


(Drobok) #4

To powinno działać o ile obsłużysz pierw dwa randomy jeśli nie ma winnera. Zrób se coś na kształt.

if(!isset($_GET['winner'])/*kod co był*/}

Też nie testowałem, teraz ide spać, ale jak się obudzę to sprawdzę xD

(Grzelix) #5

jeszcze jest moźliwość że zostanie wylosowany winner w pierwszej części

korekta wyglada tak:

// Get random 2

$query="SELECT * FROM images WHERE image_id!='".$_GET['winner']."' ORDER BY RAND() LIMIT 0,1 

      UNION

 SELECT * FROM images WHERE image_id ='".$_GET['winner']."'";

(Maher9) #6

Albo coś źle robię albo nie działa dalej.

Prosił bym aby ktoś kto się na tym zna przetestował i jeśli bedzie działało to prosił bym aby wrzucił ja jakiegoś hosta.


(Grzelix) #7

Testowane:

// Get random 2


if(!isset($_GET['winner']))

{

$query="SELECT * FROM images ORDER BY RAND() LIMIT 0,2";

}

else

{

$query="

SELECT * FROM

  (SELECT * FROM images WHERE image_id ='".$_GET['winner']."' ) a

UNION ALL

SELECT * FROM 

  (SELECT * FROM images WHERE image_id!='".$_GET['winner']."' ORDER BY RAND() LIMIT 0,1) b";

 } 


$result = @mysql_query($query);


while($row = mysql_fetch_object($result)) {

	$images[] = (object) $row;

}

i mała zmiana w pliku rate.php

// Back to the frontpage

	header('location: /index.php?winner='.$_GET['winner']	);

(Maher9) #8

Wielkie dzięki grzelix , działa jak należy.