2016-08-01 9 views
0

mit habe ich eine Tabelle mit Elementen aus der Datenbank mit verschiedenen Rubriken wie time, name, sender, stateState Count usw. durch absteigend time bestellt geholt. Ich möchte, dass der Client die Elemente dynamisch nach aufsteigender oder absteigender Reihenfolge sortiert, indem er beim Laden der Seite eine Option aus dem Dropdown-Menü und eine Standardoption auswählt.Wie Elemente in PHP-Tabelle sortieren geholt aus der Datenbank Dropdown-Menü

Time | Name | State | State Count | District | District Count 
    -----|------|-------|---------------------------------------- 
    Val1 | Val2 | Val3 | Val4  | Val5  | Val6  
    -----|------|-------|-------------|----------|-------------- 
    Val7 | Val8 | Val9 | Val10  | Val11 | Val12  

Wenn ich dies versuchte, gibt es keine korrekten Ergebnisse. Liegt es am Platz im Wert der Option? Ich will nicht Ajax, jQuery verwenden, und ich bin

Das ist mein bearbeitet Code php -

$sql="SELECT s.time,s.code,p.name,p.state,p.district,p.assembly from Table1 
AS s INNER JOIN Table2 AS p ON s.sender=p.sender"; 

$result = mysqli_query($con,$sql); 

while($row = mysqli_fetch_array($result)) 
{ 

$opcodey1= ($row['state']); 
$opcodey2= ($row['district']); 

$sql01="SELECT state from Table2 AS r INNER JOIN Table1 AS s ON 
s.sender=r.sender and r.state='$opcodey1'"; 

$result01 = mysqli_query($con,$sql01); 
$num01=mysqli_num_rows($result01); 

$sql02="SELECT state from Table2 AS r INNER JOIN Table1 AS s ON 
s.sender=r.sender and r.district='$opcodey2'"; 

$result02 = mysqli_query($con,$sql02); 
$num02=mysqli_num_rows($result02); 
} 

echo '<form action="" method="post">'; 
echo '<select id="category" name="category">'; 
echo '<option value="s.time desc">-S.TIME DESC-</option>'; 

echo '<option value="s.time asc">-S.TIME asc-</option>'; 
echo '<option value="r.state asc">-State asc-</option>'; 
echo '<option value="$num01 asc">-State Count ASC-</option>'; 
echo '<option value="r.district asc">-District asc-</option>'; 
echo '<option value="$num02 asc">-District Count ASC-</option>'; 
echo '<br>'; 
echo '</select>'; 

echo '<input type="submit" name="submit" value="submit" >'; 
echo '<input type="button" value="Reset"  
onClick="window.location.href=window.location.href">'; 

echo '</form>'; 
echo '<br>'; 
if(isset($_POST['category'])) 
{ 
    $issue_opn=$_POST['category']; 
} 
echo "<table> 
<tr> 
<th>Time</th> 
<th>Name</th> 
<th>State</th> 
<th>State Count</th> 
<th>District</th> 
<th>District Count</th> 
</tr>"; 
    $sqla="SELECT s.time,p.name,p.state,p.district  
      from Table1 AS s 
      INNER JOIN Table2 AS p ON s.sender=p.sender 
      order by '.$issue_opn.'"; 
    $resulta = mysqli_query($con,$sqla); 

while($row = mysqli_fetch_array($resulta)) 
{ 
echo "<tr>"; 
echo "<td>" . $row['time'] . "</td>"; 
echo "<td>" . $row['name'] . "</td>"; 
echo "<td>" . $row['state'] . "</td>"; 
echo '<td>.$num01."</td>"; 
echo "<td>" . $row['district'] . " </td>"; 
echo '<td>.$num02."</td>"; 
echo "</tr>"; 
} 
echo "</table>"; 
+0

Erste Ausgabe 'order by "; 'sollte von $ issue_opn sein' Ordnung",' Sie nicht einen Spaltennamen in Apostrophe – RiggsFolly

+1

Für die Zukunft wickeln würden '$ issue_opn..': ** ** DEBUGGEN echo die Abfrage und versuchen Sie es über phpMyAdmin oder ähnliche Werkzeug ausführen. Überprüfen Sie alternativ den Fehlerstatus aller Ihrer Aufrufe an die Datenbank-API. Ich hoffe, Sie verwenden mysqli_ oder PDO und nicht die mysql_ API – RiggsFolly

+0

Danke für die Antwort. Bitte versuchen Sie eine Antwort zu geben @RiggsFolly – user20152015

Antwort

0

Sie müssen wie unten Ajax verwenden. Versuchen Sie wie unten beschrieben.

<select id="category" name="category" onChange="showUser(this.value)"> 
<script> 
function showUser(str) 
{ 
    if (str=="") 
    { 
    document.getElementById("txtHint").innerHTML=""; 
    return; 
    } 

if (window.XMLHttpRequest) 
{ 
    xmlhttp=new XMLHttpRequest(); 
} 
else 
{ 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 

xmlhttp.onreadystatechange = function() 
{ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
    } 
} 
    xmlhttp.open("GET","get_data.php?q="+str,true); 
    xmlhttp.send(); 
} 
</script> 

//get_data.php 
<?php 
include('conection.php'); 
$q=$_GET["q"]; 
$sql="SELECT s.time,p.name,p.state,p.district  
      from Table1 AS s 
      INNER JOIN Table2 AS p ON s.sender=p.sender 
      order by '.$q.'"; 

$result = mysql_query($sql); 

echo "Your data <select>"; 
while($row = mysql_fetch_array($result)) 
{ 
    echo '<option value="s.time asc">-S.TIME asc-</option>'; 
} 
echo "</select>"; 
?> 
+0

Haben Sie dieses Bit der Frage nicht gelesen _Ich möchte nicht Ajax, jquery verwenden und ich bin neu bei php_ – RiggsFolly