Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sprawdzanie duplikatów
rafik73
post
Post #1





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 19.03.2014

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


Witam
Mam problem z czujką wykrywającą duplikaty. Dane są zawężane do rekordów o określonej dacie,np:
data 2015-07-20
istnieją rekordy:
1 A B C
2 D E F
3 G H I
gdzie liczby to id_tssk.

$id_tssk to id edytowanego rekordu.
Gdy chcę edytować 1 rekord i zamienić powiedzmy C na F to odpowiedni warunek if powinien to wychwycić (F istnieje w 2 rekordzie)
a tu żaden z warunków nie reaguje i przechodzi do działania 6. Co robię nie tak?

  1. $same_query = mysql_query("SELECT * FROM `tssk` WHERE `data_punktu`='$data_punktu' AND `id_tssk`<>'$id_tssk'") or die('Błąd zapytania');
  2. while($same=mysql_fetch_array($same_query)){
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9. if( warunek 1) {
  10. działanie 1
  11. }
  12.  
  13. elseif(warunek 2) {
  14. działanie 2
  15. }
  16.  
  17.  
  18. elseif( warunek 3) {
  19. działanie 3
  20. }
  21.  
  22. elseif( warunek 4 ) {
  23. działanie 4
  24. }
  25. } // tu się zamyka pętla while
  26.  
  27.  
  28. if (warunek 5) {
  29. działanie 5
  30. }
  31. else
  32. {
  33. działanie 6
  34. }


Mam wrażenie, jakby nie działała pętla while
Zapytanie jest OK,bo testowałem 'echem'
Poprawcie mnie,jeśli się mylę, przebieg tego kodu to:
Zapytanie mysql-jest rekord-warunek1-false-warunek2-false-warunek3-false-warunek4-false i tu pętla
i kolejne zapytanie. Jeśli któryś z warunków od 1 do 4 true to odpowiednie działanie. Jeśli pętla
się zakończy (koniec rekordow), to wtedy przejście do warunku 5.

Ten post edytował rafik73 21.07.2015, 20:38:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rafik73
post
Post #2





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 19.03.2014

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


  1. $data_punktu=$_GET['data_punktu'];
  2. $nr_punktu=$_GET['nr_punktu'];
  3. $student=$_GET['student'];
  4. $nr_lekcji=$_GET['nr_lekcji'];
  5. $pomoc=$_GET['pomoc'];
  6. $ocena=$_GET['ocena'];
  7. $uwagi=$_GET['uwagi'];
  8. $id_tssk=$_GET['id_tssk'];
  9.  
  10.  
  11.  
  12. $tobigpoint="Komunikat 1";
  13. $samepunkt="Komunikat 2";
  14. $samestudent="Komunikat 3";
  15. $samepomoc="Komunikat 4";
  16.  
  17. $same_query = mysql_query("SELECT * FROM `tssk` WHERE `data_punktu`='$data_punktu' AND `id_tssk`<>'$id_tssk'") or die('Błąd zapytania');
  18. while($same=mysql_fetch_array($same_query)){
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25. if( $nr_punktu > 3) { //numer punktu max 3
  26. header( 'Location:../tssk/tssk_bydate_edit_same.php?id_date='.$data_punktu.'&same='.$tobigpoint.'' ) ;
  27. }
  28.  
  29. elseif( $same['nr_punktu'] == $nr_punktu) { // numer punktu nie może się powtórzyć
  30. header( 'Location:../tssk/tssk_bydate_edit_same.php?id_date='.$data_punktu.'&same='.$samepunkt.'' ) ;
  31. }
  32.  
  33.  
  34. elseif( $same['student'] == $student) { //student nie może się powtórzyć
  35. header( 'Location:../tssk/tssk_bydate_edit_same.php?id_date='.$data_punktu.'&same='.$samestudent.'' ) ;
  36. }
  37.  
  38. elseif( $same['pomoc'] == $pomoc AND $same['pomoc'] <> 1 ) { //pomocnik nie może się powtórzyć
  39. header( 'Location:../tssk/tssk_bydate_edit_same.php?id_date='.$data_punktu.'&same='.$samepomoc.'' ) ;
  40. }
  41. }
  42.  
  43.  
  44. if (empty($data_punktu) OR empty($nr_punktu) OR empty($nr_lekcji)) { //czujka pustych pól
  45. header( 'Location:../tssk/tssk_bydate_edit_empty.php?id_date='.$data_punktu.'' ) ;
  46. }
  47. else
  48. {
  49. mysql_query("SET NAMES 'utf8'");
  50.  
  51. mysql_query("UPDATE `tssk` SET `data_punktu`='$data_punktu',`nr_punktu`='$nr_punktu',`lekcja`='$nr_lekcji',`pomoc`='$pomoc',`ocena`='$ocena',`tssk_uwagi`='$uwagi',`student`='$student' WHERE `id_tssk`='$id_tssk'")
  52. or die('Błąd ania');
  53. header( 'Location:../tssk/tssk_bydate_edit_confirm.php?id_date='.$data_punktu.'' ) ;
  54. }


Formularz wyświetla 3 rekordy
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 29.12.2025 - 21:11