Bräuchte Hilfe bei IF Schleife

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
xmanforever
Mitglied
Beiträge: 55
Registriert: 23.03.2005 18:21

Bräuchte Hilfe bei IF Schleife

Beitrag von xmanforever »

Hallo,
ich bin leider irgendwie zu doof es hinzubekommen:
Und zwar handelt es sich um einen Mod für die Metatags, das diese automatisch generiert werden. Ich möchte aber, das dies nicht geschieht, wenn man sich auf der Hauptseite befindet. Hier will ich manuell einen Text eingeben. Derzeit wird dort einfach gar nichts angezeigt.


Ich zeige euch mal den Ausschnitt des Mods in der functions.php
$min_word_length = 5;
$max_word_count = 5;
$topic_id = 0;
$forum_id = 0;
$meta_description = '';
$meta_keywords = '';

if (!isset ($_GET['mode']))
{
if (isset ($_GET['t']) && ((int) $_GET['t']>0))
{
$topic_id = (int) $_GET['t'];
}
elseif (isset ($_GET['f']) && ((int) $_GET['f']>0))
{
$forum_id = (int) $_GET['f'];
}
}



if ($topic_id)
{
$sql = "SELECT f2.forum_name AS parent_forum_name,
f.forum_name,
t.topic_title
FROM " . TOPICS_TABLE . " t,
" . FORUMS_TABLE . " f
LEFT JOIN " . FORUMS_TABLE . " f2 ON f2.forum_id = f.parent_id
WHERE f.forum_id = t.forum_id
AND t.topic_id = $topic_id";
$result = $db->sql_query ($sql);
$row = $db->sql_fetchrow ($result);
$db->sql_freeresult ($result);

if ($row['parent_forum_name'])
$meta_description = $row['parent_forum_name'] . ' :: ' . $row['forum_name'] . ' :: ' . $row['topic_title'];
else $meta_description = $row['forum_name'] . ' :: ' . $row['topic_title'];
$meta_description = '<meta name="description" content="' . $meta_description . '">';

$sql = "SELECT w.word_text
FROM " . TOPICS_TABLE . " t,
" . SEARCH_WORDMATCH_TABLE . " m,
" . SEARCH_WORDLIST_TABLE . " w
WHERE t.topic_first_post_id = m.post_id
AND m.word_id = w.word_id
AND t.topic_id = $topic_id
AND LENGTH(w.word_text)>=$min_word_length
ORDER BY LENGTH(w.word_text) DESC
LIMIT $max_word_count";
$result = $db->sql_query ($sql);

$meta_keywords = '';
while ($row = $db->sql_fetchrow ($result))
{
$meta_keywords .= (!$meta_keywords) ? $row['word_text'] : ',' . $row['word_text'];
}



$db->sql_freeresult ($result);
$meta_keywords = '<meta name="keywords" content="' . $meta_keywords . '">';
}





if ($forum_id)
{
$sql = "SELECT f.forum_name,
f.forum_desc
FROM " . FORUMS_TABLE . " f
WHERE f.forum_id = $forum_id";
$result = $db->sql_query ($sql);
$row = $db->sql_fetchrow ($result);
$db->sql_freeresult ($result);

$meta_keywords = '<meta name="keywords" content="' . str_replace (" ", ",", $row['forum_name']) . '">';
$meta_description = '<meta name="description" content="' . $row['forum_desc'] . '">';

}
Irgendwo müsste ja jetzt eine else Schleife hineinkommen die z.B. so aussieht:
else
{
$meta_description = '<meta name="description" content="Was auch immer für ein Text">';
$meta_keywords = '<meta name="keywords" content="Was auch immer für ein Text">';
}

Könnt ihr mir vielleicht weiterhelfen????
Alles zum Thema Car-Hifi gibts hier Car-Hifi Forum
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

Nimm nächstes mal bitte

Code: Alles auswählen

[code]
[/code] und nicht

Code: Alles auswählen

[quote][/quote]
dann sieht das hier schöner aus ;)

Ich kenne keine If-Schleife oder else Schleife, Schleifen werden wiederholt, solche Bedingungen aber nicht ;)

Sobald weder topic_id noch forum_id bekannt ist soll der Text erscheinen?

Code: Alles auswählen

if(!$topic_id && !$forum_id)
{
    //Metatags
}
Zur Erklärung:
Ein Ausrufezeichen kehrt true in false um und false in true, sogesehen ein NICHT (NOT)
&& ist eine UND(AND)-Verknüpfung

Also sobald keine Foren-id und keine topic_id angegeben ist wird die Bedingung erfüllt.
http://de.php.net/if
http://de.php.net/manual/de/language.operators.php
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Also evtl. so?
Mode ist bekannt, Topic ist nicht bekannt, Forum ist nicht bekannt ... default META Werte sollen gesetzt werden.

Code: Alles auswählen

if (!isset ($_GET['mode']))
{
	if (isset ($_GET['t']) && ((int) $_GET['t']>0))
	{
		$topic_id = (int) $_GET['t'];
	}
	elseif (isset ($_GET['f']) && ((int) $_GET['f']>0))
	{
		$forum_id = (int) $_GET['f'];
	}
	else
	{
		$meta_description = '<meta name="description" content="Was auch immer für ein Text">';
		$meta_keywords = '<meta name="keywords" content="Was auch immer für ein Text">';
	}
}

IF...ELSEIF...ELSE
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
xmanforever
Mitglied
Beiträge: 55
Registriert: 23.03.2005 18:21

Beitrag von xmanforever »

@Boecki91

Jo war ein versehen, dachte eigentlich ich habe auf Code geklickt und nicht auf Quote ;-)


Und danke vielmals an alle, funktioniert
Alles zum Thema Car-Hifi gibts hier Car-Hifi Forum
Antworten

Zurück zu „Coding & Technik“