Toon posts:

[php] wrong parametercount for mysql_fetch_array()

Pagina: 1
Acties:

Verwijderd

Topicstarter
Het is niet netjes.. want ik heb hier al een draadje over open staan, maar aangezien het onderwerp is veranderd, vind ik wel dat ik dit mag doen...
PHP:
1
2
3
4
5
6
7
8
9
10
<?
require_once("base/db.php");
$dbcon = new base_Db;
    
$dbcon->query("SELECT omschrijving FROM si_interesse");
while ($dbcon->query = mysql_fetch_array()) 
{
print ("<OPTION VALUE=\"$omschrijving[0]\"> $omschrijving[1]\n");
}
?>

Dan krijg ik de volgende foutmelding:
Wrong parameter count for mysql_fetch_array() on line 71.

Dat is de volgende regel:
PHP:
1
2
3
<?
while ($dbcon->query = mysql_fetch_array())
?>

  • [ti]
  • Registratie: Februari 2000
  • Niet online
misschien moet er tussen mysql_fetch_array() nog iets van $result oid?

dus

mysql_fetch_array($dbcon->result); ofzo.

Verwijderd

Waarom werk je dan met zo'n vage class? Gewoon de php-functies gebruiken, dat is in elk geval een stuk makkelijker...

Verwijderd

Topicstarter
Op dinsdag 04 december 2001 11:47 schreef sbesselsen het volgende:
Waarom werk je dan met zo'n vage class? Gewoon de php-functies gebruiken, dat is in elk geval een stuk makkelijker...
Ik heb geen keuze.. bedrijf heeft daarvoor gekozen...
Dus dan moet ik daar maar aan mee doen he??

  • [ti]
  • Registratie: Februari 2000
  • Niet online
Vraag die dude in het bedrijf dan hoe die class werkt ipv aan ons die die class niet kennen :P

(effe ervanuitgaande dat ie inhouse ontwikkeld is)

Verwijderd

Topicstarter
Op dinsdag 04 december 2001 12:03 schreef [ti] het volgende:
Vraag die dude in het bedrijf dan hoe die class werkt ipv aan ons die die class niet kennen :P

(effe ervanuitgaande dat ie inhouse ontwikkeld is)
OOH, ik zou willen dat het zo simpel lach.. Ik werk in een vrijwilligersorganisatie en natuurlijk heeft een vrijwilliger die niet beschikbaar is dit hele gedoetje opgezet.... dus... vandaar dat ik het aan jullie vraag...
Het lijkt alsof jullie voor het eerst ook met jullie handen in het haar zitten.... :o

Verwijderd

Op dinsdag 04 december 2001 12:35 schreef Beginner2001 het volgende:

[..]

OOH, ik zou willen dat het zo simpel lach.. Ik werk in een vrijwilligersorganisatie en natuurlijk heeft een vrijwilliger die niet beschikbaar is dit hele gedoetje opgezet.... dus... vandaar dat ik het aan jullie vraag...
Het lijkt alsof jullie voor het eerst ook met jullie handen in het haar zitten.... :o
Het is voor "ons" toch ook niet mogelijk om met een class te werken, waar wij helemaal niet van weten welke functies die class heeft en hoe die in elkaar zitten...

Geef dan de pre/post van die functies als je daar bij kan...

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

PHP:
1
2
3
4
<?
$dbcon->query("SELECT omschrijving FROM si_interesse");
while ($dbcon->query = mysql_fetch_array()) 
?>

Misschien heb ik het fout maar is $dbcon->query geen functie? En niet een variable?

Waarom geen DB Class gebruiken (of te wel een DB Abstraction Layer)?

* LuCarD gebruikt niet anders.

Voordelen:
- onafhankelijk van de DB werken.
- Error afhandeling
- Custom Functies

Nadelen:
- Hmmm... Je moet natuurlijk wel je eigen custom functies kennen.. :)
-
-

Programmer - an organism that turns coffee into software.


Verwijderd

Je moet die dbcon (dat is de result) volgens mij gebruiken om je fetch_array iets daadwerkelijk uit de db te halen.
Dus zoiets als:
PHP:
1
2
3
4
5
6
<?
while($tool = mysql_fetch_array($dbcon)) 
{

}
?>

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Op dinsdag 04 december 2001 15:30 schreef daniel_hoenderdos het volgende:
Je moet die dbcon (dat is de result) volgens mij gebruiken om je fetch_array iets daadwerkelijk uit de db te halen.
Dus zoiets als:
PHP:
1
2
3
4
5
6
<?
while($tool = mysql_fetch_array($dbcon)) 
{

}
?>
Nope...

$dbcon is een object!

Programmer - an organism that turns coffee into software.


Verwijderd

Topicstarter
Juiste Code voor een meervoudige keuzelijst is:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
    require_once("base/db.php");
    $dbcon = new base_Db;
    
    $dbcon->query("SELECT omschrijving FROM si_interesse");
    
    print("<select name=omschrijving multiple size=10>");
    while ($dbcon->next_record()) 
    {
        print("<option>");
        print($dbcon->f("omschrijving"));
        print("</option>");
    }
    print("</select>");
    
?>

TADA!!!!! Helemaal alleen gedaan!!

  • Orphix
  • Registratie: Februari 2000
  • Niet online
achja natuurlijk ... next_record ... dat hadden we moeten weten! :+

  • [ti]
  • Registratie: Februari 2000
  • Niet online
Als je nou ook nog even de code voor het object geeft ;)

Maaruh. Mis je zo niet het 1e record van je result? Misschien dat er in het object rekening mee gehouden is maar zou:
PHP:
1
2
3
4
5
6
<?
do
{
 // ...
} while ($dbcon->next_record());
?>

niet beter zijn?

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op donderdag 06 december 2001 11:30 schreef [ti] het volgende:
maar zou [...] niet beter zijn?
Dingen als next_record geven na de eerste aanroep doorgaans het eerste record terug. Dus ik denk niet dat dit beter is. :)

  • [ti]
  • Registratie: Februari 2000
  • Niet online
Onno: eh?

Normaal gesproken onder bv. C++ Builder doe ik

Query1->Open();

while (!Query->Eof)
{
Query1->doezooiermee();
Query1->Next();
}

Als je met Next naar het volgende record gaat, impliceert dat imho dat je al een record in je object hebt staan. Dus zou je eerst het record moeten lezen, en dan naar de volgende gaan.

Natuurlijk weet niemand hoe dat object van Beginner2001 werkt, en wil ie toch hulp van ons, maar goed dat even terzijde ;)

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op donderdag 06 december 2001 11:37 schreef [ti] het volgende:
Onno: eh?

Normaal gesproken onder bv. C++ Builder doe ik
Hmm.. lelijk. Heb je twee dingen nodig, Eof én Next. Naja, ik zal wel te veel aan JDBC gewend zijn ofzo. :)
Als je met Next naar het volgende record gaat, impliceert dat imho dat je al een record in je object hebt staan.
Waarom? Het is toch niet zo gek dat je cursor direct nadat je een query hebt uitgevoerd *voor* het eerste result staat?

  • Orphix
  • Registratie: Februari 2000
  • Niet online
die DB functie werkt net als bv mysql_fetch_array();
Deze functies gebruiken hetzelfde ontwerp als bv i++ (geef eerst waarde terug en dan 1 optellen)

  • [ti]
  • Registratie: Februari 2000
  • Niet online
kweenie. Ik vind 't eigenlijk wel logisch dat je next(_record) als laatste doet om naar het volgende record te gaan. Ligt er maar net aan waar je aan gewend bent waarschijnlijk.

edit:

Onno: stiekem snel je post editen terwijl ik bezig was met replyen he! ;)

Opzich is het inderdaad niet gek dat je cursor voor een record staat, maar dan krijg je dus NULL references als je die gelijk aanspreekt. Stel dat je maar 1 result verwacht moet je dus eerst next_record aanroepen. (denk ik aan bv. 'n count( * ) query)
Pagina: 1