Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Formularz - sprzawdzenie
Pride
post
Post #1





Grupa: Zarejestrowani
Postów: 139
Pomógł: 11
Dołączył: 31.01.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Siemka.
Czy moglibyście mi poradzić jak można wykonać taki skrypt sprawdzający. Na początku pobieram z bazy losowe rekordy i tworze z nich obraz - kolor (teraz aby bylo szybciej tylko kolor - w przyszłości będzie to zmienione na tworzenie obrazków itp ale to nie ważne):

1. Pobieram color_hex i color_name z bazy,
2. Wstawiam color_hex jako tło komórki,
3. Wstawiam color_hex i color_name do ukrytego input'a (jako daną do sprawdzenia)
4. Całość generuje się 3x - 3 różne kolory z 3 input'ami (co wywołanie zmienia się name o +1).

  1. <?php
  2. if($_GET['num'] == '3')
  3. {
  4. settype($_GET['num'], 'integer');
  5.  
  6. $num = '0';
  7. $i = '1';
  8. $result_num = mysql_query('SELECT `id` FROM `rgb_colors`;');
  9. $date_num = mysql_num_rows($result_num);
  10. if(!$date_num == '0')
  11. {
  12. if($date_num<$_GET['num']) $num = $date_num;
  13. else $num = $_GET['num']; 
  14.  
  15. echo '<form action="rgb.php?go=check" method="post">
  16. <table width="500" border="1">';
  17.  
  18. $result = mysql_query('SELECT `color_hex`, `color_name` FROM `rgb_colors`
  19. ORDER BY RAND() LIMIT '.$num.';');
  20. while ($row = mysql_fetch_array($result))
  21. {
  22. echo '<tr height="40">
  23. <td width="40" align="center">#'.$i.'</td> 
  24. <td width="80" style="background: '.$row['color_hex'].';"> </td>
  25. <td style="background: #FF0000;">
  26. <b>R:</b> <input type="radio" name="color'.$i.'" value="red" />
  27. <input type="hidden" name="color_check'.$i.'" value="'.$row['color_name'].'" />
  28. <input type="hidden" name="color_hex'.$i.'" value="'.$row['color_hex'].'" />
  29. </td>
  30. <td style="background: #00FF00;">
  31. <b>G:</b> <input type="radio" name="color'.$i.'" value="green" />
  32. </td>
  33. <td style="background: #0000FF;">
  34. <b>B:</b> <input type="radio" name="color'.$i.'" value="blue" />
  35. </td>
  36. </tr>';
  37. $i++;
  38. }
  39. echo '</table>
  40. <input type="submit" value="Submit" />
  41. </form>';
  42. }
  43. ?>


Teraz właśnie jest problem ponieważ chce sprawdzić czy użytkownich na wzór obrazu wybrał odpowiedni kolor.
W bazie do każdego hex'a przypisana jest nazwa np: 1 | #FF0000 | red - czyli id=1, hex=#FF0000 i jest to kolor=red.
Właśnie teraz nie wiem jak to sprawdzić - wiem, że musze pobrać z bazy wszystkie kolory i porównać je z hex'ami z formularza. Następnie zobaczyć czy $_POST['color1/2/3'] == kolorowi z bazy (tego na podstawie hex'a). Jeżeli np. _POST['color1'] == jakiś $row['color_name'] (ten color_name jest z tego zamego wiersza co hex) to no $zmienna = 'ok' a jak ~= to $zmienna2 = 'wrong'; i przechodzi dalej do następnych 2. Po sprawdzeniu 3 wyświetla które są dobrze które źle.

Myślałem, żeby zrobić 3 różne zapytania dla każdego z kolorów - było by łatwiej bo podałbym WHERE `color_hex` = $_POST['color_hex'] ale znowu gdy będzie ich 20 to... :| Jestem wręcz pewien, że idzie to zrobić o wiele łatwiej ale właśnie jak? Ma ktoś jakis dobry pomysł? snitch.gif


--------------------
Kto pyta - nie błądzi, kto szuka - znajduje.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 08:25