[php] slim omgaan met aantal argumenten van printf

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • BobDay
  • Registratie: December 2001
  • Laatst online: 11-08 21:02
voor de printf funtie moet het aantal specificaties gelijk zijn aan het aantal argumenten:
manual: string sprintf(string specificaties [, mixed argumenten...])

Nu wil ik graag op basis van een keuze $mysql_query, $format en $list voorbereiden,
zodat verderop in het script zonder problemen de while loop kan doorlopen.
ik krijg het alleen niet werkende :(

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
switch( $keuze )
{
    case '1':
        $mysql_query = 'SELECT year,month,day FROM tabel WHERE ...';
        $format = "%04d-%02d-%02d";
        $list = '$sql_result[year],$sql_result[month],$sql_result[day]';
    break;
    case '2':
        $mysql_query = 'SELECT year,month,day,uur,minuut,seconden FROM tabel WHERE ...';
        $format = "%04d-%02d-%02d @ %02d:%02d:%02d";
        $list = '$sql_result[year],$sql_result[month],$sql_result[day],$sql_result[uur],$sql_result[minuut],$sql_result[seconden]';
    break;
}

$result = mysql_query($mysql_query);
while($sql_result = mysql_fetch_array($result))
{
    printf( $format,eval("$list;") );
}


Ik weet dat ik met mysql in de juiste format kan maken, maar het gaat om het concept

//oops helemaal verkeerde forum :/

[ Voor 14% gewijzigd door BobDay op 07-10-2004 17:48 . Reden: list is idd geen lijst, maar om de eval gaat het niet goed ]

43% of all statistics are worthless


Acties:
  • 0 Henk 'm!

Verwijderd

Ehm,

$list != $lijst?

Acties:
  • 0 Henk 'm!

Verwijderd

Volgens mij heb je geen flauw idee van wat je nu eigenlijk aan het doen bent.

Je kunt beter eens kijken naar call_user_func (en eventueel func_num_args en func_get_args)

Acties:
  • 0 Henk 'm!

  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 29-05 01:29
eh, als je andere date-time-formats wil hebben........ kan je beter iets doen met het omvormen van je mysql timestamp naar een unixtimestamp ofzo en daar de date() functie van php op los laten.


iig als ik dat baseer op je voorbeeld php code.

verder, variabel aantal argumenten:

mijn variabelen dump functie (om te zien of ik de juiste data krijg uit m'n queries e.d. of om te zien of uberhaupt wat variabelen gevuld worden):
PHP:
1
2
3
4
5
6
7
8
9
10
function test()
{
  $args = func_get_args();
  echonl("<pre>");
  foreach($args as $key=>$val)
    {
      var_dump($val);
    }
  echonl("</pre>");
}

Acties:
  • 0 Henk 'm!

  • BobDay
  • Registratie: December 2001
  • Laatst online: 11-08 21:02
Het gaat mij niet om een datum in een juiste format te krijgen, dit is alleen maar een concept code.

de error die ik krijg: Warning: printf(): Too few arguments in D:\Mijn webserver\test.php on line 18

43% of all statistics are worthless


Acties:
  • 0 Henk 'm!

  • Shedman
  • Registratie: November 2000
  • Laatst online: 05-07 15:38

Shedman

Met het hart op de goede plek

Die ';' na $list in
code:
1
printf( $format,eval("$list;") );

Komt een beetje vreemd op mij over.

En misschien kun je dit soort topics beter de volgende keer in P&W openen.

[ Voor 11% gewijzigd door Shedman op 07-10-2004 18:07 ]

Hier stonden al heel lang linkjes naar sites die het allang niet meer deden ...


Acties:
  • 0 Henk 'm!

  • BobDay
  • Registratie: December 2001
  • Laatst online: 11-08 21:02
die ';' ben ik niet helemaal zeker van, maar denk wel dat het moet.
Ik denk dat het niet lukt, omdat printf maar 1 argument ziet, eigenlijk zou ie iets verder moeten kijken en moeten zien dat in $list zelf wel voldoende argumenten zitten

Het was ook de bedoeling dat ie in P&W zou komen, het was een ongelukje.

43% of all statistics are worthless


Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Hmm. Moet dat niet eerder zijn:
PHP:
1
eval("printf($format, $list);");


Of iets soortgelijks?

[ Voor 18% gewijzigd door CyBeR op 07-10-2004 18:26 ]

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


Acties:
  • 0 Henk 'm!

  • BobDay
  • Registratie: December 2001
  • Laatst online: 11-08 21:02
ik heb het werkende met een ander stukje concept code:
PHP:
1
2
3
4
5
6
7
8
9
10
$format = "\"%02d - %s - %s - %s\"";
$lijst = '\"$i\",\"$title\",\"$ago\",\"$postusername\"';

$i = 2;
$title = 'grote boze wolf';
$ago = '00:23:12';
$postusername = 'BobDay';

eval ("\$list = \"$lijst\";");
eval("printf($format,$list);");

[ Voor 25% gewijzigd door BobDay op 07-10-2004 18:28 ]

43% of all statistics are worthless


Acties:
  • 0 Henk 'm!

  • Korakal
  • Registratie: Oktober 2001
  • Laatst online: 17-09 08:10

Korakal

Up up up!

Devschuurrrrrrrrrrrrrrrr vang!!
Pagina: 1