Blog

Frag mit mysql_num_rows() ab, wie viele Datensaetze es gibt, und reagiere entsprechend.

wieso setst du net einfach IN der while schleife eine variable auf true und fragst nachher mit if, ob sie nun true ist, oder net…

warum so:

$Monat = $_GET['Monat']; $MySQL = "SELECT * FROM mCMS_Blog WHERE Datum_Monat = '$Monat' ORDER BY Datum DESC"; $MySQL2 = mysql_query($MySQL);
wenns auch so geht:

$Monat = $_GET['Monat']; $MySQL = mysql_query("SELECT * FROM mCMS_Blog WHERE Datum_Monat = '$Monat' ORDER BY Datum DESC");
spart ne zeile :wink:

ahja zum thema…sollte sich das nicht mit ner if-abfrage lösen lassen??

Toll - und?

Zum Fehlersuchen ist die erste Version sehr viel geeigneter - da kannst du dir auch problemlos mal den Inhalt der Query ausgeben lassen, falls was schief geht.

Zu viele Anweisungen/Verarbeitungschritte in eine Zeile zu quetschen, macht Code selten besser - eher schwieriger nachzuvollziehen und zu warten.

So ein Quatsch!
Wenn man mysql_error ranhängt, wird einem schon der Fehler gezeigt und auch wo sich der Fehler befindet.

chrisb, du solltest dich mal ein bisschen zurück halten, auch wenn Du mehr erfahrungen hast, als einige Anfänger.
Jedes mal liest man nur Negatives von dir! :motz:

Mach es am besten, wie es bcg schon geschrieben hat.

[code]

Blog

<?php $Blogs = false; $Monat = $_GET['Monat']; $MySQL = "SELECT * FROM mCMS_Blog WHERE Datum_Monat = '$Monat' ORDER BY Datum DESC"; $MySQL2 = mysql_query($MySQL); while($MySQL3 = mysql_fetch_object($MySQL2)) { echo "
"; echo "

".$MySQL3->Datum_Monat."".$MySQL3->Datum_Tag."

"; echo "

".$MySQL3->Ueberschrift."

"; echo "

"; echo "  Tags: ".$MySQL3->Tags."   Gepostet von: $Config_Login_Benutzername   Direktlink"; echo "

"; echo "
"; echo "
"; echo "

"; echo $MySQL3->Text; echo "

"; echo "
"; echo "
"; echo "

"; echo $MySQL3->Datum; echo "

"; echo "
"; echo "
"; echo "
"; $Blogs = true; } if(!$Blogs) { echo "Es sind keine Einträge im Blog vorhanden."; } ?>[/code]

mfg

[quote=“wccw”]So ein Quatsch!
Wenn man mysql_error ranhängt, wird einem schon der Fehler gezeigt und auch wo sich der Fehler befindet.[/quote]
Du bekommst i.a.R. die Stelle angezeigt, ab der die Query syntaktisch fehlerhaft war.

Um den eigentlichen Grund erkennen zu koennen, ist es dann aber oft hilfreich, auch den Teil davor, bzw. gleich die vollstaendige Query zu betrachten.

Du dich auch, und meinen begruendeten Einwand nicht als Quatsch bezeichnen.

Nuja, du kleiner schlaumeier meinst ja eh immer alles besser, also lass Ich dich einfach in deinem Glauben sein, und gut ist. !haue

Ich soll mich zurück halten ? :slight_smile:
Ich schreib hier so selten und wenn, dann nur wo Ich eventuell helfen kann o.Ä.
Nicht wie Du, einfach irgendwo schreiben, hauptsache Ich bekomme meine Aufmerksamkeit. :wink:

Wie dem auch sei, thema sollte nun gelöst sein und ende.

Indem man einen Query schreibt, der mit LIKE eine Spalte durchsucht. :ps:

SELECT * FROM `TABELLE` WHERE `SPALTE` LIKE '%$STRING%'

MySQL sollte incasesensitive sein, d.h. sie achtet soweit ich weiß nicht auf Groß und Kleinschreibung, darauf verlassen würde ich mich aber nicht, ich meine bei utf-8 kodierten Tabellen macht MySQL das wiederum nicht… nicht sicher
das %-Zeichen steht für irgendwelche Zeichen, d.h. LIKE ‘%hans%’ würde alle Datensätze auslesen, die IRGENDWO “hans” ob groß oder klein in der angesprochenen Spalte stehen haben. Auf Rechtschreibfehler achtet der nicht.
Man kann diese Abfrage mit der PHP-Funktion stristr() vergleichen.

mfg Balmung

Generell sind die TEXT-Datentypen nicht case sensitive, was Vergleiche angeht, die BLOB-Typen schon.

Und dann kommt’s natuerlich auch noch auf die gewaehlte Collation an, welche Vergleichsregeln im speziellen gelten.
Bei UTF-8 ist bspw. utf8_general_ci der Default, und das ci am Ende steht fuer case insensitive.