[PHP] Query haalt maar 1 record uit db ipv meerdere

Pagina: 1
Acties:
  • 32 views sinds 30-01-2008

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 06-05 09:01

Kaastosti

Vrolijkheid alom!

Topicstarter
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:

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.


  • Obliterator
  • Registratie: November 2000
  • Laatst online: 30-04 16:09
fetch_assoc haalt maar een rij op, dus die zul je echt meerdere keren aanmoeten roepen.
Probeer eens een mysql_numrows()

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 08-05 18:23
Je moet ook loopen door je resultset...
PHP:
1
2
3
4
5
6
7
8
9
if (mysql_num_rows($result) > 0)
{
  while ($row = mysql_fetch_assoc($result))
  {
    print_r($row);
  }
} else {
  echo 'geen records voldoen aan query';
}

[ Voor 81% gewijzigd door T-MOB op 16-04-2005 13:30 ]

Regeren is vooruitschuiven


  • Andre-85
  • Registratie: April 2003
  • Niet online

Andre-85

Sid

PHP:
1
2
3
4
while ($row = mysql_fetch_assoc($result))
  {
  print_r($row);
  }


edit:
Wat T-MOB zegt dus.

[ Voor 18% gewijzigd door Andre-85 op 16-04-2005 13:33 ]

Lorem
Whenever we feel the need to comment something, we write a method instead. - Martin Fowler
People who think they know everything really annoy those of us who know we don't - Bjarne Stroustrup


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 06-05 09:01

Kaastosti

Vrolijkheid alom!

Topicstarter
:|

Je hebt echt geen idee hoe stom ik me nu voel

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


Verwijderd

Kaastosti schreef op zaterdag 16 april 2005 @ 13:39:
:|

Je hebt echt geen idee hoe stom ik me nu voel
Relax! Iedere programmeur weet precies hoe stom jij je voelt.

Als ik een duizendje had voor iedere if die een while had moeten zijn zat ik nu allang op de Bahama's...

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 06-05 09:01

Kaastosti

Vrolijkheid alom!

Topicstarter
Maar toch blijft het frustrerend :)

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • spone
  • Registratie: Mei 2002
  • Niet online
Hehehe same here O-)

Game: i5-14600K, 32GB DDR5-6000, RTX 5070 Ti; Laptop: MacBook Pro M1 Pro 14" 16/512; Server: R9-7950X, 96GB DDR5-5600; Woonkamer: Mac Mini M4 16/256


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Gewoon de documentatie goed doorlezen dus. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.