1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| <?php
$mysqli = new mysqli("localhost", "root", "", "insee");
if (mysqli_connect_errno()) {
printf("Echec de la connexion : %s\n", mysqli_connect_error());
exit();
}
if (isset($_GET['q']))
{
$query = "SELECT COUNT(*) FROM sirene WHERE " . $_GET['q'];
if ($result = $mysqli->query($query))
{
echo '{"nhits":';
$row = $result->fetch_assoc();
$counter = $row["COUNT(*)"];
echo $counter;
echo ', "parameters": {"q": "' . $_GET['q'] . '", "format": "json", "facet": ["SIREN", "NIC", "RPET", "LIBREG", "DEPET", "LIBCOM", "SIEGE", "LIBNATETAB", "ACTIVNAT", "NOMEN_LONG", "ADR_MAIL", "NJ", "LIBNJ", "APEN700", "LIBAPEN", "DAPEN", "APRM", "TEFEN", "LIBTEFEN", "EFENCENT", "DEFEN", "CATEGORIE", "DCREN", "TCA"]}, ';
$result->close();
}
// si le compteur est inférieur à 40000 ok sinon message spécial
if ($counter <= 40000)
{
$query = "SELECT SIREN,NIC,RPET,LIBREG,DEPET,LIBCOM,SIEGE,LIBNATETAB,ACTIVNAT,NOMEN_LONG,ADR_MAIL,NJ,LIBNJ,APEN700,LIBAPEN,DAPEN,APRM,TEFEN,LIBTEFEN,EFENCENT,DEFEN,CATEGORIE,DCREN,TCA FROM sirene WHERE " . $_GET['q'];
if ($result = $mysqli->query($query))
{
echo '"records": [';
$row = $result->fetch_assoc();
$row = array_map('utf8_encode', $row);
echo json_encode($row, JSON_UNESCAPED_UNICODE);
while ($row = $result->fetch_assoc())
{
$row = array_map('utf8_encode', $row);
echo "," . json_encode($row, JSON_UNESCAPED_UNICODE);
}
echo ']}';
$result->close();
}
$mysqli->close();
}
else
{
echo '"errors": [{"source": { "parameter": "q" }, "title": "API Limited", "detail": "Max counter : 40000"}]}';
}
}
else
{
echo '{"errors": [{"source": { "parameter": "q" }, "title": "Invalid Query Parameter", "detail": "For example ?q=APEN700=\'6311Z\'+AND+SIEGE=\'1\'+AND+RPET=\'11\'"}]}';
}
?> |
Partager