[PHP] string omzetten in var

Pagina: 1
Acties:

  • Brabrabra
  • Registratie: Januari 2002
  • Laatst online: 17:22

Brabrabra

Chaoss ahv

Topicstarter
Ik wil dat PHP aan de hand van een string, een variabele met dezelfde naam gaat aanspreken.

Ik geef hem bijvoorbeeld de string 'ID' en dan moet hij de waarde van $ID gaan uitlezen. Of een string 'naam' en dan de var $naam.

Weet iemand hoe ik dit kan doen? :?

Supergrover heeft een vogeltje gered. Dat vogeltje zat heel hoog in een boom en durfde niet naar beneden te klimmen!


  • tomato
  • Registratie: November 1999
  • Niet online
${$string}

  • ThaEagle
  • Registratie: November 2001
  • Laatst online: 29-10-2024

ThaEagle

Debian GNU/Linux

gewoon een switch case bouwen? :)
code:
1
2
3
4
5
6
7
8
switch($var)
{
case 'id':
     printf($id);
case 'bla':
     enzovoorts...

}

Suc6 :-)

Epox 8KRA2+ AMD Athlon 2400+ 768 Mb DDR Club3D Nvidia Geforce 5900 XT Asus 50x CD-rom AOpen 4x CD-R Maxtor 60 GB UDMA 133 Seagate 160 GB UDMA100 HP M700 WinXP


  • Brabrabra
  • Registratie: Januari 2002
  • Laatst online: 17:22

Brabrabra

Chaoss ahv

Topicstarter
Op woensdag 10 april 2002 19:19 schreef ThaEagle het volgende:
gewoon een switch case bouwen? :)
Dat wilde ik nou juist NIET doen :) Maar ik zal dat van tomato ff proberen.

Supergrover heeft een vogeltje gered. Dat vogeltje zat heel hoog in een boom en durfde niet naar beneden te klimmen!


Verwijderd

Houd er rekening mee dat na het compileren de variabele namen verdwijnen.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 10 april 2002 19:23 schreef Brabrabra het volgende:
Dat wilde ik nou juist NIET doen :) Maar ik zal dat van tomato ff proberen.
tomato vermeldt alleen niet dat het over het algemeen netter is om een array te gebruiken.

Komt de leesbaarheid van je code iig flink te goede.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 10 april 2002 19:25 schreef KingLois het volgende:
Houd er rekening mee dat na het compileren de variabele namen verdwijnen.
compileren :?

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 09-09 11:02
Op woensdag 10 april 2002 19:33 schreef ACM het volgende:
compileren :?
In het Nederlands 'samenvoegen' of 'verzamelen' of iets dergelijks, maar in computerterminologie meestal 'vertalen naar machinetaal'. En ja, zelfs PHP doet dat.

(Het is alleen niet waar dat je daarbij je variabelenamen kwijtraakt.)

  • Brabrabra
  • Registratie: Januari 2002
  • Laatst online: 17:22

Brabrabra

Chaoss ahv

Topicstarter
Op woensdag 10 april 2002 19:27 schreef ACM het volgende:

[..]

tomato vermeldt alleen niet dat het over het algemeen netter is om een array te gebruiken.

Komt de leesbaarheid van je code iig flink te goede.
Kgebruik eigenlijk ook niet echt een array. Ik zal et ff uitleggen.
Ik heb nou dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
for ($k=1; $k<$aantalkolommen; $k++)
  {
  $vartje=mysql_field_name($result, $k);
  $v2=${$vartje};
  echo "v2: ";echo $v2;
  
  if ($v2!='')
    {
    $qzoek=$qzoek.' $v2=\''.$v2.'\'';
    }
  
  echo $qzoek;
  }

Hij leest dus een kolomnaam uit een table. In die kolom wil ik de waarde van de overeenkomstige variabele hebben. Die var komt van de vorige pagina waarop een form staat.

Snapezvous?

Maar dat $v2=${$vartje}; werkt niet... :'(

Supergrover heeft een vogeltje gered. Dat vogeltje zat heel hoog in een boom en durfde niet naar beneden te klimmen!


  • tomato
  • Registratie: November 1999
  • Niet online
ACM: tomato vermeldt alleen niet dat het over het algemeen netter is om een array te gebruiken.

Komt de leesbaarheid van je code iig flink te goede.
Variable variabele zijn inderdaad erg smerig. Ik heb nog nooit een situatie gezien (in een PHP project that is) waar je dat nodig zou hebben en kan er ook maar zeer weinig bedenken.

Maar hij vroeg en ik geef :7

  • Brabrabra
  • Registratie: Januari 2002
  • Laatst online: 17:22

Brabrabra

Chaoss ahv

Topicstarter
Op woensdag 10 april 2002 19:40 schreef tomato het volgende:
Maar hij vroeg en ik geef :7
Hij?!? :Z ;) Ik is een meisje!

Supergrover heeft een vogeltje gered. Dat vogeltje zat heel hoog in een boom en durfde niet naar beneden te klimmen!


  • tomato
  • Registratie: November 1999
  • Niet online
Brabrabra: Hij?!? :Z ;)
Mijn welgemeende excuses :o ;)

  • Brabrabra
  • Registratie: Januari 2002
  • Laatst online: 17:22

Brabrabra

Chaoss ahv

Topicstarter
Op woensdag 10 april 2002 19:42 schreef tomato het volgende:

[..]

Mijn welgemeende excuses :o ;)
Nou vooruit, ik vergeef het je *D :* ;)

Maar nou nog een werkende oplossing voor dit probleem!!

Supergrover heeft een vogeltje gered. Dat vogeltje zat heel hoog in een boom en durfde niet naar beneden te klimmen!


  • nhimf
  • Registratie: September 2000
  • Laatst online: 31-08 19:16

nhimf

Lekker belangrijk allemaal

Ik heb vaak met variable variablen gewerkt en het werkt errug lekker, mits je ermee kan omgaan.

Ik stink niet, ik ruik gewoon anders


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 10 april 2002 19:37 schreef Brabrabra het volgende:
Hij leest dus een kolomnaam uit een table. In die kolom wil ik de waarde van de overeenkomstige variabele hebben. Die var komt van de vorige pagina waarop een form staat.

Snapezvous?
Jahoor, maar je kan die vars toch ook in dat form al in array's zetten? Gewoon namen aan je input's geven ala "array[varname]" en je krijgt ze bij php binnen als $array['varname'] (ok, eigenlijk als $_POST/GET['array']['varname'] )
Maar dat $v2=${$vartje}; werkt niet... :'(
Mja, het zou moeten werken. Let wel op hoofdletters enzo he? :)

En nog even ter verduidelijking:
$vartje = "var";
$v2 = ${$vartje} <==> $v2 = ${"var"} <==> $v2 = $var
Op woensdag 10 april 2002 19:36 schreef Soultaker het volgende:
In het Nederlands 'samenvoegen' of 'verzamelen' of iets dergelijks, maar in computerterminologie meestal 'vertalen naar machinetaal'. En ja, zelfs PHP doet dat.

(Het is alleen niet waar dat je daarbij je variabelenamen kwijtraakt.)
Ik weet dat je compileert in php en zelfs wat het is... Maar de opmerking sloeg imho niet echt ergens op, omdat je nooit expliciet te maken hebt met de compiler in php.

  • Brabrabra
  • Registratie: Januari 2002
  • Laatst online: 17:22

Brabrabra

Chaoss ahv

Topicstarter
Op woensdag 10 april 2002 19:49 schreef ACM het volgende:
Jahoor, maar je kan die vars toch ook in dat form al in array's zetten? Gewoon namen aan je input's geven ala "array[varname]" en je krijgt ze bij php binnen als $array['varname'] (ok, eigenlijk als $_POST/GET['array']['varname'] )
pliciet te maken hebt met de compiler in php.
Tis geweldig! Nooit aan gedacht |:(
Maar nu werktie!

Dit stukje code maakt een query:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$qzoek='';

$sql="select * from links";
$result=mysql_query($sql);
$aantalkolommen=mysql_num_fields($result);

for ($k=0; $k<$aantalkolommen; $k++)
  {
  $kolomnaam=mysql_field_name($result, $k);
  $inhoud=$erree[$kolomnaam];
  
  if ($inhoud!='')
    {
    if ($qzoek=='')
    $qzoek=$qzoek." ".$kolomnaam."='".$inhoud."'";
    else
    $qzoek=$qzoek." and ".$kolomnaam."='".$inhoud."'";
    }
  
  }
  
if ($qzoek!='')
  $qzoek='select * from links where'.$qzoek;
else
  $qzoek='select * from links';

Heel erg bedankt allemaal en vooral ACM :)

Supergrover heeft een vogeltje gered. Dat vogeltje zat heel hoog in een boom en durfde niet naar beneden te klimmen!


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 10 april 2002 20:24 schreef Brabrabra het volgende:
Heel erg bedankt allemaal en vooral ACM :)
Geen dank hoor :)

Btw, vergeet je mysql_escape_string/addslashes/escapeing van '/whatever niet ;)

  • Brabrabra
  • Registratie: Januari 2002
  • Laatst online: 17:22

Brabrabra

Chaoss ahv

Topicstarter
Op woensdag 10 april 2002 22:31 schreef ACM het volgende:
Btw, vergeet je mysql_escape_string/addslashes/escapeing van '/whatever niet ;)
Ik neem aan dat je het in de zin
code:
1
$qzoek=$qzoek." ".$kolomnaam."='".$inhoud."'";

bedoelt?
Daar hoeft et volgens mij niet, want als je voor de string "" gebruikt kan je wel ' zonder \ gebruiken IN de string. Bij mij werkt et wel tenminste :)

Supergrover heeft een vogeltje gered. Dat vogeltje zat heel hoog in een boom en durfde niet naar beneden te klimmen!


  • Mafioso
  • Registratie: November 2000
  • Laatst online: 14:38
Als ik mij niet vergis is dat om er voor te zorgen dat niet iemand (dmv de browser, of een form) $qzoek verandert in een query, waardoor je hele database bloot kan komen te liggen

euh .. toch? (ik weet het niet zeker)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 10 april 2002 22:36 schreef Brabrabra het volgende:
Ik neem aan dat je het in de zin
code:
1
$qzoek=$qzoek." ".$kolomnaam."='".$inhoud."'";

bedoelt?
Daar hoeft et volgens mij niet, want als je voor de string "" gebruikt kan je wel ' zonder \ gebruiken IN de string. Bij mij werkt et wel tenminste :)
Mja, php hapt het prima... Maar of je database een query ala:
" select * from tabel where kolom = 'auto's' "
zo fijn vindt... :)

  • Chaoss
  • Registratie: December 2000
  • Laatst online: 16:09

Chaoss

Moderator Spielerij

Professioneel boekemantsje

Ho, dit is het verkeerde account! |:(
Sorrie Johan :P

Brabrabra

PSN: Wanderer200 | Switch: Wanderer


  • Brabrabra
  • Registratie: Januari 2002
  • Laatst online: 17:22

Brabrabra

Chaoss ahv

Topicstarter
Op donderdag 11 april 2002 09:42 schreef ACM het volgende:
Mja, php hapt het prima... Maar of je database een query ala:
" select * from tabel where kolom = 'auto's' "
zo fijn vindt... :)
Ik zou noooooooooit in een kolomnaam een ' gebruiken! :) Alleen maar letters en _ en hoogstens 2 ints op et eind.

Supergrover heeft een vogeltje gered. Dat vogeltje zat heel hoog in een boom en durfde niet naar beneden te klimmen!

Pagina: 1