Problem mig Funktion
Heinz
- php
Guten Tag,
warum gibt mir die Funktion immer nur "false" aus.
Ich habe die db getestet und die funktioniert. Das sql Statement ist auch in Ordnung.
Habe ich einen Denkfehler gemacht?
Danke
function showHeadlines()
{
global $db;
if ($this->showold == "true")
{
$db->select("*", "news", "(d_kategorie = 'de_termin')", "d_datum ASC", "", "", "");
$entry_events = array();
while($row = $db->fetch_array());
{
$entry_events = $row;
}
echo "<pre>";
var_export($entry_events);
echo "</pre>";
$this->assignVars('termineAus', $this->aTrans['termineAus']);
$this->assignVars('entry_events', $entry_events);
}
Hallo,
if ($this->showold == "true")
Das sieht schon mal, nicht gut aus. true oder false sind boolsche Werte und entsprechen 0 und 1. Darum reicht es völlig wenn du schreibst:
$foo = true;
if($foo){
//aktion
}
Du kannst auch if($foo == true) schreiben, aber das ist völlig unnötig.
Als nächstes solltest du auch noch einmal deine Klammernsetzung überprüfen, es gehen drei auf aber nur zwei zu. Wenn du dir damit schwer tust, dann setz die Klammern gleich am Anfang. Zum Beispiel:
if(){
}
dann weiter:
if($foo){
//aktion
}
Und du solltest deine Klammern auch schön verschachteln:
if($foo){
while(true){
//aktion
}
}
Solltest du dennoch Probleme haben, kannst du auch immer Kommentare dazu schreiben:
if($foo){
while(true){
//aktionen
}//ende while Schleife
}//ende if Bedingung
Solltest du weiter Probleme haben, dann frag einfach nach.
gruß,
Severin
Hi Severin,
Danke dür die Antwort.
if ($this->showold == "true")
Das sieht schon mal, nicht gut aus. true oder false sind boolsche Werte und entsprechen 0 und 1. Darum reicht es völlig wenn du schreibst:
$foo = true;
if($foo){
//aktion
}
Aber wie ist das wenn ich in einem Link per url übergeben will?
z.B.
news.php?set=true
Kann man das dann auch wie oben abfragen?
Vor der Zeile if ($this->showold == "true")
steht nämlich:
$this->showold = $_REQUEST['showold'];
Danke
Hallo,
Aber wie ist das wenn ich in einem Link per url übergeben will?
z.B.news.php?set=true
Also ich habe mir darüber seltsamer Weise noch nie Gedanken gemacht, da ich immer z.B. test.php?foo=0 oder test.php?foo=1 übergebe. Wie auch immer ich habs jetzt getestet und $_GET['foo'] ist immer true, außer wenn man test.php?foo=0 übergibt:
<?php
if($_GET['foo']){
echo "true";
}else{
echo "false";
}
?>
Der Grund wird wohl sein, dass GET Variablen als Strings interpretiert werden, wenn die keine Zahlen sind....
gruß,
Severin