2016-07-20 2 views
-1

Ich weiß nicht, warum, aber die Folge Code funktioniert nicht, ich brauche eine _GET Variable zu erhalten und zu zeigen, aber es funktioniert einfach nichtPHP erhalten von HTML-Formular und Echo eine Variable als mysql, um von

$order_by = mysqli_real_escape_string($database,$_GET['order_method']); 
    $query = mysqli_query($database,"SELECT * FROM `products` 
order by `<?php if(empty($order_by)){echo "id";}else{echo "$order_by"; ?>` ASC"); 
+0

Was meinen Sie, wenn Sie den Code sagen, funktioniert nicht. Was passiert (oder passiert nicht) genau? – Ash

Antwort

1

Wenn Sie Variablen innerhalb einer Zeichenfolge verwenden, um einen formatierten Text zu erstellen, müssen Sie das Symbol "anstelle von" verwenden. Wenn Sie das Symbol '' verwenden, behandelt PHP das Wort als Text und extrahiert den Wert der Variablen nicht.

Falsch:

echo 'value=$test'; 

Rechts

echo "value=$test"; 

Probe

$test = isset($_GET["testing"]) 
    ? $_GET["testing"] 
    : "notset"; 
echo "the value is $test"; 

Try this

$order_by = mysqli_real_escape_string($database,$_GET['order_method']); 
$query = mysqli_query($database,"SELECT * FROM `products` order by `$order_by` ASC"); 
+0

bearbeitet die Frage zum besseren Verständnis – Kamikaza

+0

Bearbeitete die Antwort nach der neuen Frage –

+0

Was ist, wenn die order_by in der mysql-Abfrage empty ist? – Kamikaza