Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Formularz
Forum PHP.pl > Forum > Przedszkole
luzak124
  1. <?php
  2. // odbieramy dane z formularza
  3. $oceniam = $_POST['oceniam'];
  4. $dlakogo = $_POST['dlakogo'];
  5. $kto = $_POST['kto'];
  6. $kiedy = date("Y-m-d");
  7.  
  8.  
  9. if($oceniam and $dlakogo and $kto and $kiedy) {
  10.    
  11.    // łączymy się z bazą danych
  12.    $connection = @mysql_connect('localhost', 'root', '')
  13.    or die('Brak połączenia z serwerem MySQL');
  14.    $db = @mysql_select_db('amicus', $connection)
  15.    or die('Nie mogę połączyć się z bazą danych');
  16.    
  17.    // dodajemy rekord do bazy
  18.    $ins = @mysql_query("INSERT INTO ocenypm SET plusminus='$oceniam', dlakogo='$dlakogo', kto='$kto', kiedy='$kiedy'");
  19.    
  20.    if($ins) echo "Rekord został dodany poprawnie";
  21.    else echo "Błąd nie udało się dodać nowego rekordu";
  22.    
  23.    mysql_close($connection);
  24. }
  25.  
  26. ?>
  27. <form action="profil_pokaz.php?username=<? echo $username ?>" method="post">
  28. <input type="hidden" name="oceniam" value="plus" />
  29. <input type="hidden" name="dlakogo" value="<? echo $username ?>" />
  30. <input type="hidden" name="kto" value="<?php echo $_SESSION['user']; ?>" />
  31. <input type="submit" value="plus" />
  32. </form>
  33. <form action="profil_pokaz.php?username=<? echo $username ?>" method="post">
  34. <input type="hidden" name="oceniam" value="minus" />
  35. <input type="hidden" name="dlakogo" value="<? echo $username ?>" />
  36. <input type="submit" value="minus" />
  37. </form>

O to skrypt oceniania użytkowników na zasadzie plus, minus ale jak zrobić tak że jeżeli użytkownik Kowalski ocenił juz profil użytkownika Nowak to już drugi raz tego nie może zrobić?
Prosze o pomoc.
Foxx
Przed wykonaniem
  1. <?php
  2. // dodajemy rekord do bazy
  3. $ins = @mysql_query("INSERT INTO ocenypm SET plusminus='$oceniam', dlakogo='$dlakogo', kto='$kto', kiedy='$kiedy'");
  4. ?>


Wywołaj zapytanie
  1. <?php
  2. $odp = mysql_query("SELECT COUNT(*) FROM ocenypm WHERE dlakogo='".$dlakogo."' AND kto='".$kto."'");
  3. ?>

I jeżeli to zwróci wynik > 0 to nie wykonuj tego INSERTA
Grzyw
Wyciągnij z bazy liczbę ocen użytkownika X dla użytkownika Y. Jeżeli ta liczba > 0, zablokuj formularz lub na etapie dodawania głosu nie zezwól na zapis do bazy i wywal komunikat.
peter13135
a co z unique questionmark.gif
Grzyw
Cytat(peter13135 @ 15.03.2009, 11:53:47 ) *
a co z unique questionmark.gif

I kiedy miałby to sprawdzać? Już po dodaniu drugiego głosu? Bezsens. Na 'dzień dobry' przy wywalaniu formularza w HTML wyciągnąć trzeba, tak jak pisał Foxx i ja pisałem, informację, czy głos jest już oddany i odpowiednio poinformować o tym usera i nie ma nad czym się zastanawiać.
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.