Daten übergeben per URL

Puh, schwer. Am einfachsten wäre es, wenn du hier eine Option mit der value "all" rein haust und dann einfach ne andere DB-Abfrage machst, im Script.

Wegen der Übersichtlichkeit:
PHP:
<select name="year" id="year"> 
   <?PHP
   $startjahr = 2011;
   $endjahr = 1960;
   for($i = $startjahr; $i > $endjahr; $i--)
   {
        echo("<option value=\"".$i."\">".$i."</option>");
   }
   ?>
</select>
 
PHP:
$sqlYear = '1'; 
if (isset($_GET['year']))  
{ 
    $sqlYear = 'year = ' . intval($_GET['year']); 
}
if($_GET['year'] == "alle")
{ 
    $query = "SELECT * FROM markers ORDER BY city";
} else {
    $query = "SELECT * FROM markers WHERE {$sqlYear} ORDER BY city";
}
$result = mysql_query($query); 
if (!$result)  
{ 
    die('Invalid query: ' . mysql_error()); 
}

Ich weiß nicht, was du mit dem sqlyear = 1 willst?^^
Du musst nur abfragen, ob $_GET['year'] den Wert "alle" hat, dann machst du einen Query ohne {$sqlyear}, sonst mit.

gruß
PS: Ich bin zwar noch Schüler, aber mittlerweile volljährig. Zudem habe ich mir praktisch alles selber beigebracht... In der Schule lernt man das einfach nicht ausführlich genug. Bisschen mit echo haben wir schon gespielt, aber dabei bleibts auch schon. :D
 
Da muss ich auch nochmal meinen Senf dazugeben.

Die kürzere Variante der Überprüfung:
PHP:
$where = '';
if (isset($_POST['year']) && $_POST['year'] != 'alle') {
    $where = "WHERE year = " . mysql_real_escape_string($_POST['year']);
}
$query = "SELECT * FROM markers $where ORDER BY city";
$result = mysql_query($query); 
if (!$result)  
{ 
    die('Invalid query: ' . mysql_error()); 
}

Gruß Kyoya Stefan
 
Kommt darauf an, ob dein Form wieder auf GET umgestellt hast...
Am besten du nimmst weder $_GET noch $_POST, nimm $_REQUEST, dann hast dahingehend ein Problem weniger. (Mal sehen wer jetzt was von Sicherheit faselt :D)
 
PHP:
$where = ''; 
if (isset($_POST['year']) && $_POST['year'] != 'alle') { 
    $where = "WHERE year = " . mysql_real_escape_string($_POST['year']);
}
if (isset($_POST['land']) && $_POST['land'] != 'alle') {
    if($where == '')
    {
         $where = "WHERE ";
    } else {
         $where .= " AND ";
    }
    $where .= "land='".mysql_real_escape_string($_POST['land'])."'";
}
$query = "SELECT * FROM markers $where ORDER BY city"; 
$result = mysql_query($query);  
if (!$result)   
{  
    die('Invalid query: ' . mysql_error());  
}

Ich hoffe das funktioniert so. Habe für Land auch mal die Auswahl "alle" reingetan!
 
Nicht ganz.
Wenn du beide Felder füllst, sind zwei Rufezeichen im Quelltext. Wenn bereits eines vorhanden ist, muss danach ein &-Zeichen kommen!

PHP:
$downloadUrl = "/map/Sources/GenXML.php"; 
if (isset($_POST['year'])) 
{ 
    $downloadUrl .= "?year=".urlencode($_POST['year']); 
} 

if (isset($_POST['country'])) 
{ 
    if(isset($_POST['year']))
    {
       $downloadUrl .= "&country=".urlencode($_POST['country']);
    } else {
       $downloadUrl .= "?country=".urlencode($_POST['country']);
    }
}

so müsste es klappen!
 
bisschen denken, dann wär das seeeehr einfach :D
PHP:
<?php 
$statistikUrl = $_SERVER["DOCUMENT_ROOT"]."/map/Sources/Statistik.php";
if (isset($_POST['year'])) 
{ 
    $statistikUrl .= "?year=".urlencode($_POST['year']); 
} 

if (isset($_POST['country'])) 
{ 
    if(isset($_POST['year'])) 
    { 
        $statistikUrl .= "&country=".urlencode($_POST['country']); 
    } 
    else 
    { 
        $statistikUrl .= "?country=".urlencode($_POST['country']); 
    } 
}

require($statistikUrl); 

$downloadUrl = "/map/Sources/GenXML.php";  
if (isset($_POST['year'])) 
{ 
    $downloadUrl .= "?year=".urlencode($_POST['year']); 
} 

if (isset($_POST['country'])) 
{ 
    if(isset($_POST['year'])) 
    { 
        $downloadUrl .= "&country=".urlencode($_POST['country']); 
    } 
    else 
    { 
        $downloadUrl .= "?country=".urlencode($_POST['country']); 
    } 
} 
?>
 
Dann geht es nicht!
Wie es aussieht, kannst du in einem require das nicht machen! Ist auch nicht nötig, mach einfach im Require $_POST['year'], oder mach statt require nen include wenns nicht geht.. bisschen probieren einfach! ;)
 
Zurück