Hej.
Jag har lagt upp en filmlista i en databas, för att lära mig använda MySQL.
Jag lade även till en sorterings funktion för att ordna tabellen efter Film, År, Regissör osv.
Detta presenteras på en hemsida i tabellform.
Allting fungerade perfekt.
Helt plötsligt fungerade inte sorteringen, och vad jag vet har jag inte ändrat koden, eller??
/red
Kolla även med isset() om $_GET['select'] är satt, om inte ge den ett standardvärde att sortera efter.
Och varför har du enctype="multipart/form-data" i formuläret? Det behövs inte.
<?php
mysql_select_db($database_MySQL, $MySQL);
$order_by=$_GET['select'];
if(is_numeric($order_by)){
$order_by=$order_by.' DESC';
}
$query_Film_Alla = "SELECT * FROM movie ORDER BY '$order_by'";
$Film_Alla = mysql_query($query_Film_Alla, $MySQL) or die(mysql_error());
$row_Film_Alla = mysql_fetch_assoc($Film_Alla);
$totalRows_Film_Alla = mysql_num_rows($Film_Alla);
?>
Jag tog även bort "enctype"
Sen körde jag nedanstående:
<?php
if (isset($_GET)) {
echo "Detta Funkar.";
}
?>
och det resulterade i: Detta Funkar.
Jag körde även:
<?php
if (isset($_GET['select'])) {
echo "Detta Funkar.";
}
?>
Detta resulterade inte i "Detta Funkar".
Och om det är
"$_GET['select']"
som inte är satt så behöver jag hjälp med hela den koden, så att jag får den rätt.
Kan något på phpmyadmin orsaka att det inte fungerar, för den kolumn jag väljer att ordnar tabellen efter i phpmyadmin, är den kolumnen som det ordnas efter på hemsidan?
Såg nu att du kollade värdet med is_numeric() vilket kollar om värdet är numeriskt. Men värdet du har i din select är ju strängar, så den kodbiten måste du ta bort.
Jag skulle göra nåt sånt här:
<?php
require_once('Connections/MySQL.php');
mysql_select_db($database_MySQL, $MySQL);
if(isset($_GET['select'])) {
$order_by=$_GET['select'];
} else {
$order_by='Film_id'; // ändra till det fält du vill ha som standard om inget är valt i din select
}
$query_Film_Alla = "SELECT * FROM movie ORDER BY $order_by DESC";
$Film_Alla = mysql_query($query_Film_Alla, $MySQL) or die(mysql_error());
$row_Film_Alla = mysql_fetch_assoc($Film_Alla);
$totalRows_Film_Alla = mysql_num_rows($Film_Alla);
?>
<body>
<form action="minafilmer.php" method="GET" name="form1">
<select name="select">
<option value="Film_id">Film_id</option>
<option value="Film">Film</option>
<option value="Year">År</option>
<option value="Actor">Skådespelare</option>
<option value="Genre">Genre</option>
<option value="WritingCredits">Manus</option>
<option value="Director">Regisör</option>
</select>
<input type="submit" value="Ordna">
</form>
<?php do { ?>
<tr>
<td><?php echo $row_Film_Alla['Film_id']; ?></td>
<td><?php echo $row_Film_Alla['Film']; ?></td>
<td><?php echo $row_Film_Alla['Year']; ?></td>
<td><?php echo $row_Film_Alla['Actor']; ?></td>
<td><?php echo $row_Film_Alla['Genre']; ?></td>
<td><?php echo $row_Film_Alla['WritingCredits']; ?></td>
<td><?php echo $row_Film_Alla['Director']; ?></td>
</tr>
<tr>
<td colspan="2" scope="col">Handling >>></td>
<td colspan="5"><?php echo $row_Film_Alla['Handling']; ?></td>
</tr>
<tr>
<td height="20px" colspan="7"> </td>
</tr>
<?php } while ($row_Film_Alla = mysql_fetch_assoc($Film_Alla)); ?>
</body>
</html>
<?php
mysql_free_result($Film_Alla);
mysql_free_result($RecordsetFilm);
?>