query("SELECT id, titre, chanteur, CDDeca, CDChanteur, CDAnnee FROM gsm ORDER BY id;"); $req["nombre"] = $bdd->num_rows; $reqCDA = $bdd->query("SELECT id, nom FROM gsm_cdannee;"); $reqCDC = $bdd->query("SELECT id, nom FROM gsm_cdchant;"); $reqCDD = $bdd->query("SELECT id, nom FROM gsm_cddece;"); $bdd->deconnexion(); $xml_cds = $xml->createElement("liste"); if (!empty($req)) foreach($req as $ligne) { if (!empty($ligne["id"])) { $chan = $xml->createElement("chanson"); $chan->setAttribute("id", $ligne["id"]); $chan->setAttribute("titre", $ligne["titre"]); $chan->setAttribute("chanteur", $ligne["chanteur"]); $chan->setAttribute("CD_decenie", $ligne["CDDeca"]); $chan->setAttribute("CD_annee", $ligne["CDAnnee"]); $chan->setAttribute("CD_interprete", $ligne["CDChanteur"]); $xml_cds->appendChild($chan); } } if (!empty($reqCDA)) foreach($reqCDA as $cd) { $chan = $xml->createElement("cdannee"); $chan->setAttribute("id", $cd["id"]); $chan->setAttribute("nom", $cd["nom"]); $xml_cds->appendChild($chan); } if (!empty($reqCDC)) foreach($reqCDC as $cd) { $chan = $xml->createElement("cdchant"); $chan->setAttribute("id", $cd["id"]); $chan->setAttribute("nom", $cd["nom"]); $xml_cds->appendChild($chan); } if (!empty($reqCDD)) foreach($reqCDD as $cd) { $chan = $xml->createElement("cddece"); $chan->setAttribute("id", $cd["id"]); $chan->setAttribute("nom", $cd["nom"]); $xml_cds->appendChild($chan); } $xml_root->appendChild($xml_cds); } elseif ($p == "add" && ($type = intval(gpc("type", "post"))) && ($title = gpc("title", "post"))) { $color = hexdec(gpc("color", "post")); if ($type == 1) $table = "gsm_cdannee"; else if ($type == 2) $table = "gsm_cdchant"; else $table = "gsm_cddece"; $bdd = new BDD(); $bdd->escape($title); $bdd->query("INSERT INTO `$table` (nom, color) VALUES ('$title', $color);"); $id = $bdd->insert_id(); $req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm"); $bdd->deconnexion(); $xml_root->appendChild($xml->createElement("id", $id)); } elseif ($p == "del" && $id = intval(gpc("id", "post"))) { $bdd = new BDD(); $bdd->query("DELETE FROM `gsm` WHERE id = $id;"); $req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm"); $bdd->deconnexion(); } elseif ($p == "color" && ($type = intval(gpc("type", "get"))) && ($idAlbum = intval(gpc("id", "get")))) { if ($type == 1) $table = "gsm_cdannee"; else if ($type == 2) $table = "gsm_cdchant"; else $table = "gsm_cddece"; $bdd = new BDD(); $res = $bdd->unique_query("SELECT color FROM `$table` WHERE id = $idAlbum;"); $req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm"); $bdd->deconnexion(); $xml_root->appendChild($xml->createElement("color", sprintf("#%06X", $res["color"]))); $color2R = ($res["color"] >> 16) & 255; if ($color2R >= 25) $color2R -= 25; $color2G = ($res["color"] >> 8) & 255; if ($color2G >= 25) $color2G -= 25; $color2B = ($res["color"]) & 255; if ($color2B >= 25) $color2B -= 25; $xml_root->appendChild($xml->createElement("color", sprintf("#%02X%02X%02X", $color2R, $color2G, $color2B))); } elseif ($p == "rech") { $type = substr(gpc("type", "post"), 0, 1); $id = intval(gpc("id", "post")); if ($type == "d") { $bdd = new BDD(); $rech = $bdd->query("SELECT * FROM gsm WHERE CDDeca = $id;"); $req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm"); $bdd->deconnexion(); } elseif ($type == "a") { $bdd = new BDD(); $rech = $bdd->query("SELECT * FROM gsm WHERE CDAnnee = $id;"); $req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm"); $bdd->deconnexion(); } elseif ($type == "i") { $bdd = new BDD(); $rech = $bdd->query("SELECT * FROM gsm WHERE CDChanteur = $id;"); $req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm"); $bdd->deconnexion(); } $xml_cds = $xml->createElement("album"); if (!empty($rech)) { foreach($rech as $ligne) { $chan = $xml->createElement("chanson"); $chan->setAttribute("id", $ligne["id"]); $chan->setAttribute("titre", $ligne["titre"]); $chan->setAttribute("chanteur", $ligne["chanteur"]); $chan->setAttribute("CD_decenie", $ligne["CDDeca"]); $chan->setAttribute("CD_annee", $ligne["CDAnnee"]); $chan->setAttribute("CD_interprete", $ligne["CDChanteur"]); $xml_cds->appendChild($chan); } } $xml_root->appendChild($xml_cds); } elseif ($p == "stats") { $cds = array(); $bdd = new BDD(); $cds["annees"] = $bdd->query("SELECT A.id, A.nom, COUNT(T.id) AS nombre FROM gsm_cdannee A LEFT OUTER JOIN gsm T ON A.id = T.CDAnnee GROUP BY A.id ORDER BY A.nom;"); $cds["interpretes"] = $bdd->query("SELECT A.id, A.nom, COUNT(T.id) AS nombre FROM gsm_cdchant A LEFT OUTER JOIN gsm T ON A.id = T.CDChanteur GROUP BY A.id ORDER BY A.nom;"); $cds["decenies"] = $bdd->query("SELECT A.id, A.nom, COUNT(T.id) AS nombre FROM gsm_cddece A LEFT OUTER JOIN gsm T ON A.id = T.CDDeca GROUP BY A.id ORDER BY A.nom;"); $req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm"); $bdd->deconnexion(); if (!empty($cds["annees"])) { foreach($cds["annees"] as $ligne) { $cd = $xml->createElement("annee"); $cd->setAttribute("id", $ligne["id"]); $cd->setAttribute("nbTitles", $ligne["nombre"]); $xml_root->appendChild($cd); } } if (!empty($cds["interpretes"])) { foreach($cds["interpretes"] as $ligne) { $cd = $xml->createElement("interprete"); $cd->setAttribute("id", $ligne["id"]); $cd->setAttribute("nbTitles", $ligne["nombre"]); $xml_root->appendChild($cd); } } if (!empty($cds["decenies"])) { foreach($cds["decenies"] as $ligne) { $cd = $xml->createElement("decenie"); $cd->setAttribute("id", $ligne["id"]); $cd->setAttribute("nbTitles", $ligne["nombre"]); $xml_root->appendChild($cd); } } } elseif ($p == "cds") { $bdd = new BDD(); $cds["decenies"] = $bdd->query("SELECT A.*, COUNT(T.id) AS nombre FROM gsm_cddece A LEFT OUTER JOIN gsm T ON A.id = T.CDDeca GROUP BY A.nom;"); $cds["interpretes"] = $bdd->query("SELECT A.*, COUNT(T.id) AS nombre FROM gsm_cdchant A LEFT OUTER JOIN gsm T ON A.id = T.CDChanteur GROUP BY A.nom;"); $cds["annees"] = $bdd->query("SELECT A.*, COUNT(T.id) AS nombre FROM gsm_cdannee A LEFT OUTER JOIN gsm T ON A.id = T.CDAnnee GROUP BY A.nom;"); $req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm"); $bdd->deconnexion(); $xml_cds = $xml->createElement("decenies"); if (!empty($cds["decenies"])) { foreach($cds["decenies"] as $ligne) { $cd = $xml->createElement("cd"); $cd->setAttribute("id", $ligne["id"]); $cd->setAttribute("nom", $ligne["nom"]); $cd->setAttribute("nombre_titres", $ligne["nombre"]); $xml_cds->appendChild($cd); } } $xml_root->appendChild($xml_cds); $xml_cds = $xml->createElement("interpretes"); if (!empty($cds["interpretes"])) { foreach($cds["interpretes"] as $ligne) { $cd = $xml->createElement("cd"); $cd->setAttribute("id", $ligne["id"]); $cd->setAttribute("nom", $ligne["nom"]); $cd->setAttribute("nombre_titres", $ligne["nombre"]); $xml_cds->appendChild($cd); } } $xml_root->appendChild($xml_cds); $xml_cds = $xml->createElement("annees"); if (!empty($cds["annees"])) { foreach($cds["annees"] as $ligne) { $cd = $xml->createElement("cd"); $cd->setAttribute("id", $ligne["id"]); $cd->setAttribute("nom", $ligne["nom"]); $cd->setAttribute("nombre_titres", $ligne["nombre"]); $xml_cds->appendChild($cd); } } $xml_root->appendChild($xml_cds); } elseif (!empty($titre) && !empty($auteur)) { $alb = intval(gpc("alb", "post")); $type = intval(gpc("type", "post")); $id = intval(gpc("id")); $bdd = new BDD(); $bdd->escape($titre); $bdd->escape($auteur); if ($id) $bdd->query("UPDATE gsm SET titre = '$titre', chanteur = '$auteur' WHERE id = $id;"); else { //On recherche la chanson pour tester si elle n'existe pas déjà $chanson = $bdd->unique_query("SELECT id, CDDeca, CDAnnee, CDChanteur FROM gsm WHERE titre LIKE '$titre' AND chanteur LIKE '$auteur' LIMIT 1;"); $update = ""; if (!empty($chanson)) { if (isset($update) && !empty($type) && $type == 3) { if (empty($chanson["CDDeca"])) $update .= "CDDeca = ".$alb.", "; else $update = null; } if (isset($update) && !empty($type) && $type == 1) { if (empty($chanson["CDAnnee"])) $update .= "CDAnnee = ".$alb.", "; else $update = null; } if (isset($update) && !empty($type) && $type == 2) { if (empty($chanson["CDChanteur"])) $update .= "CDChanteur = ".$alb.", "; else $update = null; } } if (!empty($update)) { $bdd->query("UPDATE gsm SET $update titre = titre WHERE id = ".$chanson["id"].";"); $res = $chanson["id"]; } else { if ($type == 1) $disc = array("annee" => $alb, "interprete" => 0, "decenie" => 0); else if ($type == 2) $disc = array("annee" => 0, "interprete" => $alb, "decenie" => 0); else if ($type == 3) $disc = array("annee" => 0, "interprete" => 0, "decenie" => $alb); else $disc = array("annee" => 0, "interprete" => 0, "decenie" => 0); $bdd->query("INSERT INTO gsm (titre, chanteur, CDDeca, CDAnnee, CDChanteur) VALUES ('$titre', '$auteur', ".$disc["decenie"].", ".$disc["annee"].", ".$disc["interprete"].");"); $res = $bdd->insert_id(); } } $req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm"); $bdd->deconnexion(); $xml_root->appendChild($xml->createElement("id", $res)); } else { $bdd = new BDD(); $req = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM gsm"); $bdd->deconnexion(); } $json["nombre"] = $req["nombre"]; ?>