Problem bei der Übergabe von variablen

spikaner

Quereinsteiger @ php
Also habe folgendes Problem habe mir ein IF schleife gebaut für eine Sortierung und übergebe die Variablen "direkt" Problem ist das die Sortierung nur absteigend funktioniert obwahl die richtige variable übergeben wird wo steckt der fehler

If schleife
PHP:
if (isset($_GET['sortierung']))
	{
	$sortierung = htmlspecialchars($_GET['sortierung']);
	IF ($sortierung = "absteigend")
		{
		$sortierung = "DESC";
		}
	else IF ($sortierung = "aufsteigend")
		{
		$sortierung = "ASC";
		}
	}
	else
	{
	$sortierung = "ASC";
	}

// Ist sortierung angehängt mach es mir wieder "frisch"

$url = getenv("HTTP_HOST") . getenv("REQUEST_URI");
echo "$url </ br>";
$url = preg_replace("#(.*)&.*$#", "$1", $url);
echo "$url";
Sql abfrage
PHP:
$sql_query_string = "SELECT * FROM mp3files WHERE interpret LIKE '".$variable."' ORDER BY interpret ".$sortierung."";
Der Link zum Aufrufen
PHP:
echo '<tr><td colspan="8">'.'Interpret <a href="http://'.$url.'&sortierung=absteigend">absteigend</a>  <a href="http://'.$url.'&sortierung=aufsteigend">aufsteigend</a>'.'</td>'.'<td colspan="11">'."Album".'</td>'.'<td colspan="3">'."Länge".'</td>'.'<td colspan="6">'."Uploader".'</td>';

Ich habe keine Ahnung wo der Fehler steckt, würde mich über Hife freuen

mfg Spikaner
 
Deine Festlegung der Sortierung finde ich recht umständlich, zumal sie falsch ist...
Du weist zu und vergleichst nicht in deinen If-Statements.
PHP:
if ($sortierung = "absteigend") {} // falsch
if ($sortierung == "absteigend") {} // korrekt
if ($sortierung === "absteigend") {} // korrekt

Leichter geht's in einer Zeile (sofern du die Umbrüche entfernst):

PHP:
<?php
$sortierung = (!empty($_GET['sortierung']) AND strtolower($_GET['sortierung']) == 'desc')
            ? 'DESC'
            : 'ASC';
 
Auf den ersten blick würde ich sagen Du sprichst deine IF Abfrage falsch an.

PHP:
if (isset($_GET['sortierung']))
{
	$sortierung = htmlspecialchars($_GET['sortierung']);
	IF ($sortierung == "absteigend")
	{
        $sortierung = "DESC";
    }
    else IF ($sortierung == "aufsteigend")
    {
        $sortierung = "ASC";
    }
}
else
{
    $sortierung = "ASC";
}

Du hast ein = brauchst aber bei einer abfrage == ;-)

Edit: oh zuspät :-(
 
Die Bedingungsausdrücke sind Zuweisungen („=“) und keine Vergleiche („==“ beziehungsweise „===“).

Ein kleiner Verbesserungsvorschlag:
PHP:
if( isset($_GET['sortierung']) && $_GET['sortierung'] == "absteigend" ) {
	$sortierung = "DESC";
} else {
	$sortierung = "ASC";
}
 

Neue Beiträge

Zurück