ilch Forum » Allgemein » HTML, PHP, SQL,... » SQL Abfrage für Votes

Geschlossen
  1. #1
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.635
    Beitragswertungen
    1193 Beitragspunkte
    Eine Frage an die Coder hier:

    Ich möchte eine Abfage starten, welche mir die Anzahl ausgibt, an wievielen internen Umfragen der jeweilige Member teilgenommen hat.

    Gedacht hatte ich dieses, was leider nicht funktioniert!
    $polluser = @db_result(db_query('SELECT COUNT(poll_id) FROM prefix_poll WHERE recht ="2" AND in_array("'.$uid.'", explode("#",text))'),0);

    Ich vermute mal das Problem liegt am Array!

    Hat jemand einen Tip für mich?


    verwendete ilchClan Version: 1.1
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Domme_09 Mitglied
    Registriert seit
    08.07.2008
    Beiträge
    267
    Beitragswertungen
    0 Beitragspunkte
    also das "in_array" gibt's soweit ich weiß nicht, aber das kannst du doch auch ganz leicht testen indem du das Select-Statement einfach mal auf deine DB abfeuerst (am Besten und Einfachsten im phpmyadmin, dann siehst du direkt ob Fehler vorhanden sind)

    Also letztlich fragst du doch nur ab, ob die userid in der Spalte 'text' steht! Dafür gibt's doch das "IN"!

    SELECT * FROM prefix_poll AS poll WHERE $uid IN ($Wert1, $Wert2,...)

    oder

    SELECT * FROM prefix_poll AS poll WHERE $uid IN ($array)


    Um das so anzuwenden musst du natürlich das was in 'text' steht in ein Array umwandeln. Dazu baust du am Besten eine Schleife, in der der String immer nach dem '#' abgetrennt wird und dann diese ID in ein int-Array gepackt wird!
    www.bvbsupporters-ms.de
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.635
    Beitragswertungen
    1193 Beitragspunkte
    Danke für deine Hilfe!
    Ich habe es jetzt mal so gelöst!

    $polluser = 0;
    $polltext = db_query('SELECT text FROM prefix_poll WHERE recht ="2"');
    while ($pollRow = db_fetch_object($polltext)) {
    $textAr = explode('#',$pollRow->text);
    if ( in_array ( $uid , $textAr )) { $polluser++; };}


    $polluser gibt jetzt die Anzahl an teilgenommenen Umfragen von claninternen Umfragen aus!

    Ich wollte es einfacher lösen, ging aber nur so!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Naja es sollte doch noch einfacher sein, es muss ja die ID im Text stehen, also #ID# und danach sollte man filtern können, also

    SELECT COUNT(*) FROM prefix_poll WHERE recht = 2 AND text REGEXP '#USERID(#|$)'
    sollte funktionieren, kannst ja mal testen zwinker


    Zuletzt modifiziert von Mairu am 16.05.2009 - 11:31:05
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.635
    Beitragswertungen
    1193 Beitragspunkte
    Bin begeistert! So sieht es jetzt aus und funktioniert bestens!

    $polluser = @db_result(db_query('SELECT COUNT(*) FROM prefix_poll WHERE recht = "2" AND text REGEXP "#'.$uid.'(#|$)"'),0);


    Tja, diese Abfrage: REGEXP '#USERID(#|$)' kannte ich nicht!
    Vielen Dank, wieder was gelernt!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    OloX Hall Of Fame
    Registriert seit
    25.02.2006
    Beiträge
    990
    Beitragswertungen
    23 Beitragspunkte
    Besten dank auch von meinerseits zwinker REGEXP kannte ich auch noch nicht...
    MfG OloX
    PHP, JavaScript, CSS
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Domme_09 Mitglied
    Registriert seit
    08.07.2008
    Beiträge
    267
    Beitragswertungen
    0 Beitragspunkte
    Das ist ja ne coole Funktion lächeln
    War mir auch noch nicht bekannt! Wieder was gelernt - Danke!
    www.bvbsupporters-ms.de
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten