Ik heb een WHERE clausule, die alle votes op een poll op haalt, gebaseerd op poll en vote id.
Dit is de hele query:
"SELECT * FROM poll_votes WHERE poll_id = ".$voted_ids[$i]." AND vote_number = ".$poll_choices['id'];
De 2 variabeles zijn dus de poll_id en de id van de keuze waarop was gestemt.
Deze clausule geeft geen foutmelding terug, maar ook al zijn er meerdere mensen die op dezelfde keuze van dezelfde poll hebben gevote, toch zegt mysql_num_rows() dat er maar 1 record betrokken was bij de query.
Als ik deze query (met getallen natuurlijk) invul in het SQL deel van phpMyAdmin, geeft hij gewoon alle records terug.
Heb ik hier iets over het hoofd gezien?
Zoja, laat het mij snel weten alstjeblieft
Alvast bedankt voor de hulp!
EDIT: ik was nog vergeten een probleempje erbij te zetten.
eerst voerde ik de query uit op de 'traditionele' manier: if($query = mysql_query($sql_get_voted)) maar als ik dan mysql_num_rows($query) aanriep, kreeg ik een foutmelding dat $query geen geldige result resource is.
als ik daarintegen mysql_num_rows(mysql_query($sql_get_voted)) uitvoer, doet hij het wel, maar geeft hij dus maar 1 record terug
Echo de query en controleer of de query ook resultaten heeft opgeleverd. mysql_num_rows() is je beste vriend.
Voer je de query overigens wel uit, controleer je wel of de query is gelukt en fetch je het resultaat wel? Daar is in jouw topic niks van terug te vinden.
Ik zie een heel groot gat:
- Jij voert de query niet uit
- Jij controleert niet of de query is gelukt
- Jij controleert niet of de query resultaten heeft opgeleverd
- Jij fetcht het resultaat niet
- Jij echoot de query niet en hebt dus geen idee wat daar nu daadwerkelijk in staat
Geen van deze punten komen terug in jouw topic of reactie, we mogen dus aannemen dat deze onderdelen ontbreken. Een groot gapend gat in je code dus.
$rv = mysql_connect($Inst_HOST, $Inst_USER, $Inst_PASS) or die ("<font color='red'>Kon geen verbinding met de database maken, controleer uw database instellingen</font>");
$rv = mysql_select_db($Inst_DB) or die ("<font color='red'>Kon de database niet selecteren, controleer uw database instellingen</font>");
$result = mysql_query("SELECT * FROM tbl_poll WHERE id='1' AND keuze='A'")
or die(mysql_error());
$A1 = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM tbl_poll WHERE id='1' AND keuze='B'")
or die(mysql_error());
$B1 = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM tbl_poll WHERE id='1' AND keuze='C'")
or die(mysql_error());
$C1 = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM tbl_poll WHERE id='2' AND keuze='A'")
or die(mysql_error());
$A2 = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM tbl_poll WHERE id='2' AND keuze='B'")
or die(mysql_error());
$B2 = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM tbl_poll WHERE id='2' AND keuze='C'")
or die(mysql_error());
$C2 = mysql_num_rows($result);
$SQL ="SELECT * FROM poll_votes WHERE poll_id ='$voted' AND vote_number= '$poll'";
Dat moet je nou net niet doen, jij zet de VARS binnen quotes TS deed dat nou net goed.
Ik verwacht dat het probleem in het JOIN type zit, wat jij waarschijnlijk een LEFT JOIN nodig en geen INNER JOIN ( wat een WHERE clausule is)
Zoek maar eens op de mysql site naar JOIN