MyBB.de Forum
Datenbankquery - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Archiv (https://www.mybb.de/forum/forum-57.html)
+--- Forum: MyBB 1.2.x und älter (https://www.mybb.de/forum/forum-27.html)
+---- Forum: Allgemeiner Support (https://www.mybb.de/forum/forum-36.html)
+---- Thema: Datenbankquery (/thread-7635.html)

Seiten: Seiten: 1 2 3


RE: Datenbankquery - Garlant - 12.11.2007

Hallo Dave,

Was ist denn Privates? Ist das eine Funktion oder eine Variable?
Soll $count ein Array sein? Oder soll das Ergebniss lediglich in einer Variable gespeichert werden?


Mfg Garlant


RE: Datenbankquery - Dave - 12.11.2007

Privates ist ein String, der in der Datenbank gespeichert ist. Der String ist in der Spalte category in der mybb_threads gespeichert, dort kommen neben Privates auch die Strings Projekte, Schule und Anderes vor. In $count werden dann immer die Anzahl der Einträge in mybb_threads mit dem entsprechendem String gespeichert, darauf greife ich dann im Template zu.
Der Sinn des Ganzen ist es in meinem Blog anzuzeigen wie viele Einträge es in welcher Kategorie gibt.


RE: Datenbankquery - Garlant - 12.11.2007

Dann versuche es mal bitte hiermit:

PHP-Code:
$query3 mysql_query("SELECT tid FROM ".TABLE_PREFIX."threads WHERE category = '".mysql_escape_string($privates)."'");
    
$count mysql_num_rows($query3); 

Im Code, den du gepostet hattest, war $privates keine Variable und $count war ein Array und kein String..

Mfg Garlant


RE: Datenbankquery - Dave - 12.11.2007

Steht die Anzahl dann jetzt direkt in $count? Weil wenn ich versuche das auszugeben, kommt nichts.


RE: Datenbankquery - Mak - 12.11.2007

Ja, $count ist die Anzahl. Wenn das nichts ausgibt, wird es wohl auch keine Daten geben...


RE: Datenbankquery - Dave - 12.11.2007

Das Problem ist aber, dass es Daten gibt. Wenn ich das Query in der Datenbank ausführe, dann funktioniert es ja und ich bekomme auch eine Zeile zurückgegeben.


RE: Datenbankquery - Garlant - 12.11.2007

Hallo Dave,
leider können wir von hier aus schlecht (er)raten was falsch ist.
Den Query habe ich dir so korrigiert, das er ein Ergebnis zurück gibt, wenn den alle Faktoren stimmig sind.

Überprüfe die Variable $privates mal auf Inhalt, denn diese ist ein Faktor, den wir von hier aus nicht einsehen können.

Mfg Garlant


RE: Datenbankquery - Dave - 12.11.2007

Ich versuche nochmal ganz von vorne anzufangen. Dies ist der Codeblock, der die Information aus der DB holen soll:
PHP-Code:
$privat "Privates";
    
$query3 mysql_query("SELECT tid FROM ".TABLE_PREFIX."threads WHERE category = '".mysql_escape_string($privat)."'");
    
$countprivat mysql_num_rows($query3); 

Die Datenbank sieht so aus:
[Bild: http://davethemaniac.uttx.net/db1.jpg]
[Bild: http://davethemaniac.uttx.net/db2.jpg]

Im Template greife ich dann auf die Variable {$countprivat}.

// Edit Hmm, wieso klappt das mit den Bilder nicht?
http://davethemaniac.uttx.net/db1.jpg
http://davethemaniac.uttx.net/db2.jpg

//Edit 2 Ok, so scheint das auch nicht zu funktionieren, wieso bloß, die Bereichtigungen sind auf 777 gesetzt?

Also, es ist ja die Tablle mybb_threads, in der ich einfach die Spalte 'category' eingefügt habe.
Feld category
Typ varchar(120)
Kollation latin1_swedish_ci
Attribute
Null Nein
Standard
Extra

In dem Spalte steht dann z.B. Privates oder Projekte


RE: Datenbankquery - Garlant - 12.11.2007

Dann hat da aber mysql_escape_string nichts zu suchen, wenn du den Namen direkt in den Code schreibst.
Siehe hier.
Versuche dies, in $category kannst du den Namen der Kategorie schreiben.
PHP-Code:
// clean bad vars
$category "";
$category="Category Whatever";
$query3 mysql_query("SELECT tid FROM ".TABLE_PREFIX."threads WHERE category='".mysql_escpae_string($category)."'); 


Mfg Garlant


RE: Datenbankquery - Dave - 12.11.2007

Gut, jetzt funktioniert die ganze Datei wieder nicht.