[mysql] fout in php query aanvraag

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hallo. dit heb ik in php staan, het laatste punt geeft de verkeerde uitkomst


$profile = mysql_fetch_array( $result );

$profile['total_votes'] = mysql_num_rows( query_result( 'SELECT id FROM '.$table['rates'].' WHERE des_id ="'.$userid.'"' ) );

$profile['total_messages'] = mysql_num_rows( query_result( 'SELECT id FROM '.$table['messages'].' WHERE to_id ="'.$userid.'" AND type="0"' ) );

$profile['total_rate'] = mysql_num_rows ( query_result( 'SELECT sum(`rate`) FROM `scoot_rates` WHERE `des_id`="'.$userid.'"' ) );


de laatste geeft als uitkomst 1 aan.. dit klopt wel omdat hij de rijen teld. maar dat wil ik helemaal niet (zie " sum('rate') "), hij moet dus de nummer in de records optellen,

hoe krijg ik dat voor elkaar.. want onderstaand werkt ook niet?

$profile['total_rate'] = query_result( 'SELECT sum(`rate`) FROM `scoot_rates` WHERE `des_id`="'.$userid.'"' );

ik zit al een uur te zoeken, om kwam van alles tegen met mysql_fetch maar daar kom ik geen wijs uit

wie kan me helpen?? :|

Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Als je mysql_num_rows doet krijg je idd het aantal rijen terug dat mysql je stuurt. Maar als je een grouping functie gebruikt zoals SUM() krijg je dus maar een enkele rij terug.

Als je dat antwoord wilt moet je dus gewoon de normale manier gebruiken om data uit je database op te vragen. Ik gebruik meestal mysql_fetch_object() maar 't werkt ook met de andere mysql_fetch_*() functies.

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
CyBeR schreef op zondag 21 januari 2007 @ 19:27:
Als je mysql_num_rows doet krijg je idd het aantal rijen terug dat mysql je stuurt. Maar als je een grouping functie gebruikt zoals SUM() krijg je dus maar een enkele rij terug.

Als je dat antwoord wilt moet je dus gewoon de normale manier gebruiken om data uit je database op te vragen. Ik gebruik meestal mysql_fetch_object() maar 't werkt ook met de andere mysql_fetch_*() functies.
hoi bedankt voor je antwoord!

maar bij mysql_fetch_object geeft hij als resultaat: "object"
bij mysql_fetch_* als resultaat: "0"

;(

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Verwijderd schreef op zondag 21 januari 2007 @ 19:44:
[...]


bij mysql_fetch_* als resultaat: "0"

;(
offtopic:
Psst, * betekent: vul hier iets in. object, array, assoc, field, lengths, object, row; het kan allemaal. Voor meer info: php.net/mysql ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mithras schreef op zondag 21 januari 2007 @ 19:47:
[...]
offtopic:
Psst, * betekent: vul hier iets in. object, array, assoc, field, lengths, object, row; het kan allemaal. Voor meer info: php.net/mysql ;)
ja dat had ik ook net in de gaten! thanx in ieder geval..

maar hij werkt nog niet, wat ik ook invul :S

op die ene site heb ik ook al gekeken

Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Weet je zeker dat je query klopt?

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
CyBeR schreef op zondag 21 januari 2007 @ 20:05:
Weet je zeker dat je query klopt?
jeps.. ten eerste is hij heel simpel, en ten tweede heb ik hem in phpMyAdmin al met succes handmatig uitgevoerd

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
iemand nog??? 8)7

k vindt het echt raar gewoon..

mysql_fetch_* geeft ie gewoon als result het woord array, of object,

heb iedere fetch mogelijkheid geprobeerd

Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 19:49

thomaske

» » » » » »

met print_r() of var_dump() kan je de inhoud van een array of object weergeven..

[ Voor 31% gewijzigd door thomaske op 21-01-2007 20:40 ]

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Verwijderd schreef op zondag 21 januari 2007 @ 20:36:
iemand nog??? 8)7

k vindt het echt raar gewoon..

mysql_fetch_* geeft ie gewoon als result het woord array, of object,

heb iedere fetch mogelijkheid geprobeerd
Je moet ook de eerste index van die array pakken:

PHP:
1
2
3
$foo = mysql_fetch_array($res);

echo $foo[0];

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
CyBeR schreef op zondag 21 januari 2007 @ 20:50:
[...]


Je moet ook de eerste index van die array pakken:

PHP:
1
2
3
$foo = mysql_fetch_array($res);

echo $foo[0];
zou je dat kunnen toelichten? O+ ik snap niet wat ik ermee moet..


thomaske, sorry dat werkt ook niet bij mij, vrees dat het niet aan de aanroep ligt

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Verwijderd schreef op zondag 21 januari 2007 @ 21:00:
[...]


zou je dat kunnen toelichten? O+ ik snap niet wat ik ermee moet..
doe dan
PHP:
1
print_r($foo)
en je ziet wat de uitkomst is van mysql_fetch_array().
Dan begrijp je ook waarom je met [0] alleen het eerste resultaat pakt :)

Acties:
  • 0 Henk 'm!

  • ibmos2warp
  • Registratie: Januari 2007
  • Laatst online: 20-11-2023

ibmos2warp

Eval is Evil

Verwijderd schreef op zondag 21 januari 2007 @ 20:09:
[...]


jeps.. ten eerste is hij heel simpel, en ten tweede heb ik hem in phpMyAdmin al met succes handmatig uitgevoerd
Ik heb wel eens gehad dat een simpele query, wel deed in phpmyadmin, maar niet in de php. Had toch wat fout staan :+

Ik weet alles van niks
Vind Excel ongelovelijk irritant.


Acties:
  • 0 Henk 'm!

Verwijderd

$profile['total_votes'] = mysql_num_rows( query_result( 'SELECT id FROM '.$table['rates'].' WHERE des_id ="'.$userid.'"' ) );
query_result is geen mySQL functie van de website van PHP.

edit:
(Ik ga er nog even niet van uit, dat je zelf een class hebt gemaakt met die functie erin)

Ik zou eens beginnen in het opdelen van de PHP in stukken.

(ik heb m'n code even tussen [ php ] en [ /php ] gezet (zonder spaties bij de blokhaken natuurlijk))

Bijvoorbeeld
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
error_reporting(E_ALL);

$q_selectrates = 'SELECT id FROM '.$table['rates'].' WHERE des_id ="'.$userid.'"';
$r_selectrates = mysql_query($q_selectrates);
if(!$r_selectrates )
{
  echo "er is iets fout met deze query <pre>".$q_selectrates."</pre> ".mysql_error();
}
else
{
  $profile = mysql_fetch_array( $r_selectrates );
}


Daarna kun je de array $profile aanroepen.
Zelfde geldt voor de andere queries.

[ Voor 6% gewijzigd door Verwijderd op 23-01-2007 15:31 ]

Pagina: 1