Sinds gisteravond denk ik dat ik gek word. Niemand kan me vertellen waar de fout zit en zelf zie ik het ook niet meer. De situatie is als volgt:
Na het posten van een form, worden gebruikersnaam en wachtwoord gecontroleerd. Indien deze kloppen, moet een stukje code uitgevoerd worden. Dit stukje code ziet er als volgt uit:
Een redelijk standaard stukje code naar mijn idee. Als ik de query echo en daarna in phpMyAdmin uitvoer, krijg ik netjes als resultaat een lijstje met members zoals ik die ook wil hebben. De query in PHP echter, returned alleen de eerste waarde (dus maar 1 member).
Als ik er bij zet "AND member='Kaastosti'", krijg ik wel netjes m'n eigen nickname terug als resultaat, dus de record bestaat wel gewoon. Dit om uit te sluiten dat er ergens iets met cache fout is gegaan. Ik heb allerlei dingen geprobeerd; variabelen anders noemen, overal echo's tussen, anderen laten kijken naar de code, maar alles zou gewoon moeten werken naar ieders mening
Dit is een groter stuk code om te zien in welke context het gebruikt wordt.. misschien dat ik daar ergens fout zit... kortom wheelp
Die print_r($row) geeft dus ten alle tijde alleen de member naam van het eerste resultaat, terwijl dat een lijstje zou moeten zijn.
Na het posten van een form, worden gebruikersnaam en wachtwoord gecontroleerd. Indien deze kloppen, moet een stukje code uitgevoerd worden. Dit stukje code ziet er als volgt uit:
PHP:
1
2
3
| $query = "SELECT member FROM memberfee WHERE corp='".strtoupper($corp)."'"; $result = mysql_query($query); $row = mysql_fetch_assoc($result); |
Een redelijk standaard stukje code naar mijn idee. Als ik de query echo en daarna in phpMyAdmin uitvoer, krijg ik netjes als resultaat een lijstje met members zoals ik die ook wil hebben. De query in PHP echter, returned alleen de eerste waarde (dus maar 1 member).
Als ik er bij zet "AND member='Kaastosti'", krijg ik wel netjes m'n eigen nickname terug als resultaat, dus de record bestaat wel gewoon. Dit om uit te sluiten dat er ergens iets met cache fout is gegaan. Ik heb allerlei dingen geprobeerd; variabelen anders noemen, overal echo's tussen, anderen laten kijken naar de code, maar alles zou gewoon moeten werken naar ieders mening
Dit is een groter stuk code om te zien in welke context het gebruikt wordt.. misschien dat ik daar ergens fout zit... kortom wheelp
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| if(isset($_POST['submit'])) { $corp = $_POST['corp']; $username = $_POST['username']; $password = $_POST['password']; if($corp == 'corp1'){ $valid_id = "(1,2)"; } elseif($corp == 'corp2'){ $valid_id = "(3,4)"; } else{ $valid_id = ""; } $result = mysql_query("SELECT user_password FROM phpbb_users WHERE username='".$username."' AND user_id IN ".$valid_id); $row = mysql_fetch_assoc($result); if(md5($password) == $row['user_password']) { $result = mysql_query("SELECT member FROM memberfee WHERE corp='".strtoupper($corp)."'"); $row = mysql_fetch_assoc($result); print_r($row); } } |
Die print_r($row) geeft dus ten alle tijde alleen de member naam van het eerste resultaat, terwijl dat een lijstje zou moeten zijn.
Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.