#javascript #php #mysql
#javascript #php #mysql
Вопрос:
В PHP-файле я создаю полную таблицу на основе строк, полученных с помощью SQL-запроса, но она возвращает только одну строку, и это также неверно. Если кто-то может дать основную идею, это было бы очень полезно. Мой HTML-код:
<span class="caption-subject bold uppercase font-green"> Select Month Year:</span>
<select id="mnth" class="bs-select form-control input-small" data-style="btn-success" onchange="frmmnth=this.value">
<option value="all"> All </option>
<option value="01-03">1st Quarter</option>
<option value="04-06">2nd Quarter</option>
<option value="07-09">3rd Quarter</option>
<option value="10-12">4th Quarter</option>
<option value="01">January</option>
<option value="02">February</option>
<option value="03">March</option>
<option value="04">April</option>
<option value="05">May</option>
<option value="06">June</option>
<option value="07">July</option>
<option value="08">August</option>
<option value="09">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<select id="yearr" class="bs-select form-control input-small" data-style="btn-success" onchange="yr=this.value, datepick();">
<option value=""> </option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
</select>
<div id="ttable"> </div>
Я вызываю функцию datepick() в javascript.
Вот код Javascript:
function datepick(){
if (frmmnth.length > 2 amp;amp; yr.length > 0){
frmdt = "01" "-" frmmnth.substring(0,2) "-" yr;
todt= "30" "-" frmmnth.substring(3,5) "-" yr;
} else if (frmmnth.length === 2 amp;amp; yr.length > 0){
frmdt = "01" "-" frmmnth "-" yr;
todt= "30" "-" frmmnth "-" yr;
} else if (frmmnth.length === 0 amp;amp; yr.length > 0){
frmdt = "01" "-" "01" "-" yr;
todt= "31" "-" "12" "-" yr;
} else if (frmmnth.length === 0 amp;amp; yr.length === 0){
alert("Year Selection is mandatory.");
return "Select Year";
} else {
alert("Year Selection is mandatory.");
return "Select Year";
}
$.ajax({url: "tw_tablenew.php?tw_level=topamp;tw_frmdt=" frmdt "amp;tw_todt=" todt , success: function(result){
$("#ttable").html(result);
}});
}
Вот мой PHP-код:
<?php
$tw_level = $_GET['tw_level'];
$tw_frmdt = $_GET['tw_frmdt'];
$tw_todt = $_GET['tw_todt'];
if($tw_level =='top'){
$sqlex = "SELECT
b.cr,
SUM(g.Population) pop,
round(SUM(g.Population) * 0.45) gog,
round(SUM(g.Population) * 0.33 / 12) exgog,
round(SUM(g.Population) * 0.12) exmom
FROM
gtable g
INNER JOIN
btable b ON b.bcode = g.gcode
WHERE g.gcode IN (SELECT gid FROM totable tw where dt between '" . $tw_frmdt . "' and '" . $tw_todt . "')
GROUP BY b.cr ORDER BY b.cr ASC";
$sqlidn = "SELECT
b.cr,
SUM(t.Population) tpop,
round(SUM(t.Population) * 0.45) tgog,
round(SUM(t.Population) * 0.33 / 12) idngog,
round(SUM(t.Population) * 0.12) idnmom
FROM
ttable t
INNER JOIN
btable b ON b.bcode = t.tcode
WHERE t.tcode IN (SELECT gid FROM totable tw where dt between '" . $tw_frmdt . "' and '" . $tw_todt . "')
GROUP BY b.cr ORDER BY b.cr ASC";
$resultex = mysqli_query($con,$sqlex);
$resultidn = mysqli_query($con,$sqlidn);
echo "<table>
<thead style='background: lightblue;'>
<tr>
<th width='10%'> Population </th>
<th> Govn Population </th>
<th> Expected G Population </th>
<th> Expected Mother </th>
<th> Identified Govn Population</th>
<th> Identified T Population</th>
<th> Identified Mother</th>
</tr>
</thead> <tbody>";
while($rowidn = mysqli_fetch_array($resultidn) and $rowex = mysqli_fetch_array($resultex)){
$posts [] = array('pop'=> $rowex[1], 'gog'=> $rowex[2], 'tgog'=> $rowidn[2], 'exgog'=> $rowex[3], 'idngog'=> $rowidn[3], 'exp_mother'=> $rowex[4], 'idn_mother'=> $rowidn[4]);
$max = sizeof($posts);
for ($i=0; $i<$max; $i )
{
echo "<tr>";
echo "<td>" . $posts[$i]['pop'] . "</td>";
echo "<td class='numeric'>" . $posts[$i]['gog'] . "</td>";
echo "<td class='numeric'>" . $posts[$i]['tgog'] . "</td>";
echo "<td class='numeric'>" . $posts[$i]['exgog'] . "</td>";
echo "<td class='numeric'>" . $posts[$i]['idngog'] . "</td>";
echo "<td class='numeric'>" . $posts[$i]['exp_mother'] . "</td>";
echo "<td class='numeric'>" . $posts[$i]['idn_mother'] . "</td>";
echo "</tr>";
}
echo "</tbody> </table>";
}
?>
Любая помощь будет высоко оценена. Спасибо
Комментарии:
1. Предоставьте некоторый код, что вы пробовали
2. можете ли вы поделиться кодом php
3. Я добавил свой код. Спасибо
4. получаете ли вы какой-либо результат или нет
5. ДА. В тот момент, когда я исправил свою дату, приходят результаты!
Ответ №1:
Пожалуйста, предоставьте некоторый код, который вы пробовали, чтобы мы могли решить ваш запрос
, используя приведенный ниже метод для создания таблицы.
function createTable()
{
var num_ports = document.getElementById('field1').value;
var num_super = document.getElementById('field2').value;
var num_rows = document.getElementById('field3').value;
var num_cols = document.getElementById('field4').value;
var tbody = '';
var colStart = num_cols / num_super;
for( var i=0; i<num_super; i ){
var theader = '<div><table border="1">n';
for($u=1; $u<=num_rows; $u ){
tbody = '<tr>';
for( var j=0; j<colStart; j )
{
tbody = '<td>';
tbody = 'Cell ' i ',' j;
tbody = '</td>'
}
tbody = '</tr>n';
}
var tfooter = '</table></div>';
document.getElementById('wrapper').innerHTML = theader tbody tfooter;
}
}
Комментарии:
1. Спасибо за вашу помощь. Но я хочу получить данные из PHP. Пожалуйста, проверьте мой код.
Ответ №2:
Я нашел решение. На самом деле я принимал даты в формате дд-мм-гггг, тогда как я должен был принять его как гггг-мм-дд. Я исправил часть даты в коде Javascript:
lastday = new Date(yr, monthh, 0);
frmdt = yr "-" frmmnth.substring(0,2) "-01";
todt= yr "-" monthh "-" lastday.getDate();
Спасибо всем за ответ.