sql-problem count liefert immer 1

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
TW1920
Mitglied
Beiträge: 746
Registriert: 02.06.2007 16:31
Wohnort: Ismaning
Kontaktdaten:

sql-problem count liefert immer 1

Beitrag von TW1920 »

Hallo, ich habe folgendes Problem: Um in der Bewertungsmod nur eine Bewertung je nutzer zu erlauben, speichere ich in einer tabelle alle bewertungen mit er userid und der topicid und habe als primärchöüssel r_id

das speichern funktioniert problemlos. nun zum problem:
Ich habe folgende abfrage, in der ich zähle, wie viele einträge existiren, wo u_id und t_id der aktuellen anfrage übereinstimmen. wenn keine vorhanden sind, hat der user nch nicht das topic bewertet -> 0 und ich würde die bewertung speichern.

allerdings kommt immer 1 dabei raus, egal wie viele zutreffende einträge einträge kommt immer 1 als wert raus.

Code: Alles auswählen

$topic = $_GET['t'];
$u_id = $user->data['user_id'];


if (isset($_GET['star'])) {



  $sql = "SELECT COUNT(*) AS anzahl
          FROM de_twc_star_rating
          WHERE T_ID = $topic AND U_ID = $u_id"; 

$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) {

$many = $row['anzahl'];



}

if ($many = 1) {

// Output page
Vieleicht habe ich nur einen kleinen fehler. Würde mich über eine hilfe freuen...
Mfg T. Wolf
-Mods gesucht? Ne weitere Community gesucht?
-Mods gesucht? Mod-Übersetzungen gesucht?:->hier klicken
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: sql-problem count liefert immer 1

Beitrag von Pyramide »

KB:knigge
Benutzeravatar
TW1920
Mitglied
Beiträge: 746
Registriert: 02.06.2007 16:31
Wohnort: Ismaning
Kontaktdaten:

Re: sql-problem count liefert immer 1

Beitrag von TW1920 »

das hilft mir jezt auch nicht weiter. die abfragen funktionieren. das sichern der der sql befehle, sowie anpassung für dynamische zwecke werde ich noch machen.

ich müsste zuerst das problem mit der ausgabe lösen.
Mfg T. Wolf
-Mods gesucht? Ne weitere Community gesucht?
-Mods gesucht? Mod-Übersetzungen gesucht?:->hier klicken
Benutzeravatar
Frank1604
Ehemaliges Teammitglied
Beiträge: 2106
Registriert: 07.11.2007 09:25
Wohnort: Einhausen
Kontaktdaten:

Re: sql-problem count liefert immer 1

Beitrag von Frank1604 »

Ich würde an der Stelle eher fetchfield bevorzugen, also etwa so:
TW1920 hat geschrieben:

Code: Alles auswählen

    $topic = request_var('t', 0);
    $u_id = $user->data['user_id'];
    $star = request_var('star', 0);

    if ($star)
    {
        $sql = "SELECT COUNT(*) AS anzahl
              FROM de_twc_star_rating
              WHERE T_ID = $topic AND U_ID = $u_id";

        $result = $db->sql_query($sql);
        $many = (int) $db->sql_fetchfield('anzahl');
        $db->sql_freeresult($result);

        if ($many == 1)
        {
            // Output page
 
Dann soltest du prüfen ob die Variablen auch wirklich ankommen, lass sie dir einfach vorher mit einem Echo ausgeben.

Der Fehler liegt aber wahrscheinlich hier:

Code: Alles auswählen

if ($many = 1) 
Du vergleichst nicht, du weist eine 1 zu! (siehe "=" und "==")
Gruß, Frank
Meine Meinung steht fest. Bitte verwirrt mich nicht mit Tatsachen!
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“