Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Warunek w tablicy row w przypadku wykrycia duplikatów
-danieljoz-
post
Post #1





Goście







Witam napisałem skrypt w php który ma pobierac dane z jednych tabel a nastepnie zapisywac je w innej tabeli przykład skryptu wygląda tak
  1. #!/usr/bin/php-cgi
  2. <?php
  3. $con = mysql_connect("localhost","root","123qwe");
  4.  
  5. mysql_select_db("lms", $con);
  6. mysql_query("TRUNCATE TABLE radcheck");
  7. mysql_query("TRUNCATE TABLE radreply");
  8.  
  9. $result = mysql_query("select n.id AS nid, n.name, inet_ntoa(n.ipaddr) AS ipaddr, n.passwd, n.chkmac, m.mac, c.id AS cid
  10. FROM nodes n
  11. JOIN macs m ON (m.nodeid = n.id)
  12. JOIN customers c ON (c.id = n.ownerid)");
  13.  
  14. while ($row = mysql_fetch_array($result)) {
  15.  
  16.  
  17. if ($row["mac"] == "00:00:00:00:00:00")
  18. {
  19. mysql_query("INSERT INTO radcheck VALUES (NULL, \"$row[name]$row[cid]\", \"Password\", \"==\", \"$row[passwd]\")");
  20. mysql_query("INSERT INTO radcheck VALUES (NULL, \"$row[name]$row[cid]\", \"NAS-IP-Address\", \":=\", \"192.168.0.1\")");
  21. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-IP-Address\", \":=\", \"$row[ipaddr]\")");
  22. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Service-Type\", \":=\", \"Framed-User\")");
  23. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Protocol\", \":=\", \"PPP\")");
  24. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-IP-Netmask\", \"=\", \"255.255.255.255\")");
  25. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Routing\", \":=\", \"Broadcast-Listen\")");
  26. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Compression\", \":=\", \"Van-Jacobsen-TCP-IP\")");
  27. }
  28. elseif ($row["chkmac"] == "0")
  29. {
  30. mysql_query("INSERT INTO radcheck VALUES (NULL, \"$row[name]$row[cid]\", \"Password\", \"==\", \"$row[passwd]\")");
  31. mysql_query("INSERT INTO radcheck VALUES (NULL, \"$row[name]$row[cid]\", \"NAS-IP-Address\", \":=\", \"192.168.0.1\")");
  32. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-IP-Address\", \":=\", \"$row[ipaddr]\")");
  33. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Service-Type\", \":=\", \"Framed-User\")");
  34. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Protocol\", \":=\", \"PPP\")");
  35. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-IP-Netmask\", \"=\", \"255.255.255.255\")");
  36. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Routing\", \":=\", \"Broadcast-Listen\")");
  37. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Compression\", \":=\", \"Van-Jacobsen-TCP-IP\")");
  38. }
  39. else
  40. {
  41. mysql_query("INSERT INTO radcheck VALUES (NULL, \"$row[name]$row[cid]\", \"calling-station-id\", \"==\", \"$row[mac]\")");
  42. mysql_query("INSERT INTO radcheck VALUES (NULL, \"$row[name]$row[cid]\", \"Password\", \"==\", \"$row[passwd]\")");
  43. mysql_query("INSERT INTO radcheck VALUES (NULL, \"$row[name]$row[cid]\", \"NAS-IP-Address\", \":=\", \"192.168.0.1\")");
  44. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-IP-Address\", \":=\", \"$row[ipaddr]\")");
  45. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Service-Type\", \":=\", \"Framed-User\")");
  46. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Protocol\", \":=\", \"PPP\")");
  47. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-IP-Netmask\", \"=\", \"255.255.255.255\")");
  48. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Routing\", \":=\", \"Broadcast-Listen\")");
  49. mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Compression\", \":=\", \"Van-Jacobsen-TCP-IP\")");
  50. }
  51. }
  52. ?>


Zapytanie zwraca mi taką wartosc:

  1. 1 KLIENT1 192.168.0.2 zrqRKZDtYSYFjDFF 1 00:00:00:00:00:00 1
  2. 2 KLIENT2 192.168.0.104 dino1988 1 00:00:00:00:00:00 2
  3. 6 KLIENT3 192.168.0.8 sEgClbb2CRX6N0p6 1 00:00:00:00:00:00 6
  4. 9 KLIENT4 192.168.0.70 9wXDK6u3BK6cgHOZ 1 00:00:00:00:00:00 9
  5. 11 KLIENT5 192.168.0.13 yE2jt527Gz7C572w 1 00:00:00:00:00:00 11
  6. 17 KLIENT6 192.168.0.19 OYsFBSpWybFWqyHh 1 00:00:00:00:00:00 17
  7. 20 KLIENT7 192.168.0.62 M3iR3tcBI5kXFws4 1 00:00:00:00:00:00 20
  8. 28 KLIENT8 192.168.0.30 4v1W5urDIRJIELie 1 00:00:00:00:00:00 28
  9. 31 KLIENT9 192.168.0.33 jSaz8lELBY8FuFud 1 00:00:00:00:00:00 31
  10. 33 KLIENT10 192.168.0.35 GEOlZdS4eucIYr2j 1 00:00:00:00:00:00 33
  11. 38 KLIENT11 192.168.0.40 garmonbozia123 1 00:00:00:00:00:00 38
  12. 39 KLIENT12 192.168.0.41 u0cBVaRK67VC6DOf 1 00:00:00:00:00:00 39
  13. 48 KLIENT13 192.168.0.157 arEAFljJ8puEDPl3 1 00:00:00:00:00:00 45
  14. 49 KLIENT14 192.168.0.137 dino1988 1 00:00:00:00:00:02 2
  15. 49 KLIENT14 192.168.0.137 dino1988 1 00:00:00:00:00:01 2



Jak widac skrypt wyciąga mi 2x klienta14 róznią się jedynie ostatnim rekordem

więc przy dodaniu do tabeli radcheck klienta14 wyglada to tak:

  1. 27 KLIENT14 Password == dino1988
  2. 28 KLIENT14 NAS-IP-Address := 192.168.0.1
  3. 29 KLIENT14 calling-station-id == 00:00:00:00:00:01
  4. 30 KLIENT14 Password == dino1988



Chciałbym dodac warunek if który sprawdzał by czy wynik w petli row np
$row[name] powtarza się to w tedy kiedy warunek zostanie spelniony ma dodac rekordy do bazy radcheck w nastepujacy sposob:

  1. 27 KLIENT14 Password == dino1988
  2. 28 KLIENT14 NAS-IP-Address := 192.168.0.1
  3. 29 KLIENT14 calling-station-id == 00:00:00:00:00:02
  4. 30 KLIENT14 calling-station-id == 00:00:00:00:00:01
  5. 31 KLIENT14 Password == dino1988


czyli dodac jeden raz wpis tylko z 2x rekordem calling-station-id z 1 i 2 mackiem

a nie jak to teraz jest w taki sposob

  1. 28 KAMIL2 calling-station-id == 00:00:00:00:00:02
  2. 29 KAMIL2 Password == dino1988
  3. 30 KAMIL2 NAS-IP-Address := 192.168.0.1
  4. 31 KAMIL2 calling-station-id == 00:00:00:00:00:01
  5. 32 KAMIL2 Password == dino1988
  6. 33 KAMIL2 NAS-IP-Address := 192.168.0.1


bardzo prosiłbym o wskazówki

pozdrawiam
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 - 21:07