Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Rand() losowe nazwy
Forum PHP.pl > Forum > Przedszkole
WujekDawidus
Witam, Chcę napisać skrypt który wylosuje dwie nazwy z wyszczególnionych tak aby nie były to dwie takie same liczby np:

kot, pies, ryba, surykatka, dzik, słoń <<< i z tych wyszczególnionych chcę alby wylosowały się dwie różne.

Z góry dzięki tongue.gifP
Crozin
Wrzuć wszystko do tablicy i skorzystaj z array_rand.
phpion
... albo z shuffle (odpada konieczność sprawdzania czy nie wystąpiła duplikacja).
Crozin
@phpion: Co prawda w manualu nie jest to jasno określone, ale drugi parametr array_rand określa ile losowych kluczy ma zwrócić - więc logiczne jest, że raczej zwróci bez powtórzeń. winksmiley.jpg
phpion
Fakt, masz rację. Szczerze mówiąc to nie wiedziałem nawet, że array_rand ma drugi parametr hehe.
WujekDawidus
Zrobiłem coś takiego:

  1. <?php
  2. $input = array("Alcatel", "Apple", "Emporia", "HTC", "Huawei", "LG", "Motorola", "Nokia", "RIM", "Sagem", "Samsung", "Sony Ericsson");
  3. $rand_keys = array_rand($input, 2);
  4. echo "<center> <h1>";
  5. echo $input[$rand_keys[0]] . "\n";
  6. echo "||";
  7. echo $input[$rand_keys[1]] . "\n";
  8. echo "</h1></center>";
  9.  
  10. ?>


I teraz chcę zrobić coś takiego, że jeśli wyświetli się przykładowo "HTC" i "Nokia" to po kliknięciu na jedną z firm żeby dodawał się do MysQl jeden głos !
Pomoże ktoś tongue.gif ?
Wicepsik
A z czym masz problem?
WujekDawidus
jak to napisać tongue.gifP
Bo na razie uczę się PHP i słabo mi idzie ;PP

najwięszky prblem mam z tym, żeby do każdej firmy dobrać "coś", że jak na nią kliknę to doda jeden głos do sQla
Elber
A jak baze MySQL masz skonstruowaną ? To by wiele nam pomogło ;P
WujekDawidus
To nie ważne, proszę o jakiś wzór pod bazę testową

(Jeszcze nie zrobiłem bazy smile.gif)
emajl22
Robisze pole "głosy" i zmieniasz wartość o +1, zapytaniem UPDATE.
WujekDawidus
Dziękuję winksmiley.jpg

Ale te marki telefonów wyskakują losowo po dwie !
A jak do każdej marki dopisać "te coś", że jak kliknę na nazwę to się doda do tabeli jeden punkt.
emajl22
Robisz link np. <a href="index.php?glos=<?php echo $input[$rand_keys[0]]; ?>">NAZWA</a>, później dajesz if (isset($_GET['glos'])) i robisz zapytanie UPDATE gdzie w WHERE podajesz $input[$rand_keys[0]] i tyle. Jeśli nie rozumiesz, poczytaj jakieś kursy, czy coś.
Elber
HMM jeśli nazwy się nie będą powtarzały to:

  1. UPDATE tabela SET glosy = glosy + 1 where nazwa_marki = $_GET['glos']


Nawiązując do przedmówcy biggrin.gif
WujekDawidus
Cytat(emajl22 @ 30.12.2010, 21:17:50 ) *
Robisz link np. <a href="index.php?glos=<?php echo $input[$rand_keys[0]]; ?>">NAZWA</a>, później dajesz if (isset($_GET['glos'])) i robisz zapytanie UPDATE gdzie w WHERE podajesz $input[$rand_keys[0]] i tyle. Jeśli nie rozumiesz, poczytaj jakieś kursy, czy coś.


Mniej więcej rozumiem ale wychodzi mi coś takiego:
Na stronie pojawia się właśnie ten napis "NAZWA" z przekierowaniem na /index.php?glos= <<< i po znaku "=" wylosowuje się nazwa marki (nie przynosi to żadnego rezultatu oprócz tego, że strona się odświeża)



Oto mój kod PHP:

  1. <?php
  2.  
  3. $input = array("Alcatel", "Apple", "Emporia", "HTC", "Huawei", "LG", "Motorola", "Nokia", "RIM", "Sagem", "Samsung", "Sony Ericsson");
  4. $rand_keys = array_rand($input, 2);
  5.  
  6. $telefon = $input[$rand_keys[0]];
  7. $telefon2 = $input[$rand_keys[1]];
  8. ?>
  9. <center> <h1>
  10. <a href="index.php?glos=<?php echo $telefon; ?>"><?php echo $telefon; ?></a>
  11. <a href="index.php?glos=<?php echo $telefon2; ?>"><?php echo $telefon2; ?></a>
  12. </center> </h1>
  13.  
  14. <?php
  15.  
  16. $baza = "ranking_tel";
  17. $tabela = "telefony";
  18. $connection = mysql_connect("localhost", "root", "");
  19. $wybierz = mysql_select_db($baza, $connection) or die("Nie wybrano bazy!");
  20.  
  21. if($_GET["glos"] == Alcatel ); // Alcatel to przykładowy telefon jak narazie
  22.  
  23.  
  24.  
  25. ?>


Co mam teraz zrobić żeby po kliknięciu na nazwę telefonu dodało do mojej bazy:
Baza: ranking_tel
Tabela: telefony
Pola: Jakie powinny być?...

Chodzi o to żeby po kliknięciu na np: "Nokia" >> został dodany 1 głos dla tej marki.

daros17
poczytaj insert into
można zrobić to chcesz np tak
  1. $connection = mysql_query("insert into tabela SET kolumna = '$telefon', kolumna = '$telefon2'")or die (mysql_error());
WujekDawidus
Myślę, że zrobię dla każdej marki oddzielną kolumnę.
Jak to zrobić, żeby 1 głos się dodawał ?

Może za pomocą UPDATE questionmark.gif

Jak zrobić żeby spośród losowych danych nie było powtórek ?

np Nokia - Sony
(kolejne losowanie, w którym nie będzie do wyboru znowu Nokia i Sony tylko np. Alcatel - Motorola
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.