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
#!/usr/bin/php-cgi
<?php
$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 FROM nodes n
JOIN macs m ON (m.nodeid = n.id)
JOIN customers c ON (c.id = n.ownerid)");
if ($row["mac"] == "00:00:00:00:00:00")
{
mysql_query("INSERT INTO radcheck VALUES (NULL, \"$row[name]$row[cid]\", \"Password\", \"==\", \"$row[passwd]\")"); mysql_query("INSERT INTO radcheck VALUES (NULL, \"$row[name]$row[cid]\", \"NAS-IP-Address\", \":=\", \"192.168.0.1\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-IP-Address\", \":=\", \"$row[ipaddr]\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Service-Type\", \":=\", \"Framed-User\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Protocol\", \":=\", \"PPP\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-IP-Netmask\", \"=\", \"255.255.255.255\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Routing\", \":=\", \"Broadcast-Listen\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Compression\", \":=\", \"Van-Jacobsen-TCP-IP\")"); }
elseif ($row["chkmac"] == "0")
{
mysql_query("INSERT INTO radcheck VALUES (NULL, \"$row[name]$row[cid]\", \"Password\", \"==\", \"$row[passwd]\")"); mysql_query("INSERT INTO radcheck VALUES (NULL, \"$row[name]$row[cid]\", \"NAS-IP-Address\", \":=\", \"192.168.0.1\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-IP-Address\", \":=\", \"$row[ipaddr]\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Service-Type\", \":=\", \"Framed-User\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Protocol\", \":=\", \"PPP\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-IP-Netmask\", \"=\", \"255.255.255.255\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Routing\", \":=\", \"Broadcast-Listen\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Compression\", \":=\", \"Van-Jacobsen-TCP-IP\")"); }
else
{
mysql_query("INSERT INTO radcheck VALUES (NULL, \"$row[name]$row[cid]\", \"calling-station-id\", \"==\", \"$row[mac]\")"); mysql_query("INSERT INTO radcheck VALUES (NULL, \"$row[name]$row[cid]\", \"Password\", \"==\", \"$row[passwd]\")"); mysql_query("INSERT INTO radcheck VALUES (NULL, \"$row[name]$row[cid]\", \"NAS-IP-Address\", \":=\", \"192.168.0.1\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-IP-Address\", \":=\", \"$row[ipaddr]\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Service-Type\", \":=\", \"Framed-User\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Protocol\", \":=\", \"PPP\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-IP-Netmask\", \"=\", \"255.255.255.255\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Routing\", \":=\", \"Broadcast-Listen\")"); mysql_query("INSERT INTO radreply VALUES (NULL, \"$row[name]$row[cid]\", \"Framed-Compression\", \":=\", \"Van-Jacobsen-TCP-IP\")"); }
}
?>
Zapytanie zwraca mi taką wartosc:
1 KLIENT1 192.168.0.2 zrqRKZDtYSYFjDFF 1 00:00:00:00:00:00 1
2 KLIENT2 192.168.0.104 dino1988 1 00:00:00:00:00:00 2
6 KLIENT3 192.168.0.8 sEgClbb2CRX6N0p6 1 00:00:00:00:00:00 6
9 KLIENT4 192.168.0.70 9wXDK6u3BK6cgHOZ 1 00:00:00:00:00:00 9
11 KLIENT5 192.168.0.13 yE2jt527Gz7C572w 1 00:00:00:00:00:00 11
17 KLIENT6 192.168.0.19 OYsFBSpWybFWqyHh 1 00:00:00:00:00:00 17
20 KLIENT7 192.168.0.62 M3iR3tcBI5kXFws4 1 00:00:00:00:00:00 20
28 KLIENT8 192.168.0.30 4v1W5urDIRJIELie 1 00:00:00:00:00:00 28
31 KLIENT9 192.168.0.33 jSaz8lELBY8FuFud 1 00:00:00:00:00:00 31
33 KLIENT10 192.168.0.35 GEOlZdS4eucIYr2j 1 00:00:00:00:00:00 33
38 KLIENT11 192.168.0.40 garmonbozia123 1 00:00:00:00:00:00 38
39 KLIENT12 192.168.0.41 u0cBVaRK67VC6DOf 1 00:00:00:00:00:00 39
48 KLIENT13 192.168.0.157 arEAFljJ8puEDPl3 1 00:00:00:00:00:00 45
49 KLIENT14 192.168.0.137 dino1988 1 00:00:00:00:00:02 2
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:
27 KLIENT14 Password == dino1988
28 KLIENT14 NAS-IP-Address := 192.168.0.1
29 KLIENT14 calling-station-id == 00:00:00:00:00:01
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:
27 KLIENT14 Password == dino1988
28 KLIENT14 NAS-IP-Address := 192.168.0.1
29 KLIENT14 calling-station-id == 00:00:00:00:00:02
30 KLIENT14 calling-station-id == 00:00:00:00:00:01
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
28 KAMIL2 calling-station-id == 00:00:00:00:00:02
29 KAMIL2 Password == dino1988
30 KAMIL2 NAS-IP-Address := 192.168.0.1
31 KAMIL2 calling-station-id == 00:00:00:00:00:01
32 KAMIL2 Password == dino1988
33 KAMIL2 NAS-IP-Address := 192.168.0.1
bardzo prosiłbym o wskazówki
pozdrawiam