Toon posts:

[perl] Select lus

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een bestaande database en wil daar een mogelijkheid in maken zodat je verschillende records kan selecteren.

Doormiddel van een selectboxje heb ik het volgende html gedeelte.

code:
1
<input type=\"checkbox\" name=\"select[]\" value=\"$oid\">


Bij php werkte dit op deze manier en kon ik via een sql query de geselecteerde records bijv. verwijderen. Maar op welke manier moet ik hier in cgi een sql query maken?

code:
1
$sql = "DELETE FROM berichten WHERE id IN ( " . join(', ', $HTTP_POST_VARS['array']) . ")";

  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

CGI is geen taal. Elke taal die gebruik maakt van stdio en toegang heeft/geeft tot omgevingsvariablen, kan je gebruiken voor een cgi-script. Dit zijn onder meer Perl, PHP, Ruby en Python, maar ook gewoon Bash. Zelfs C(++) is mogelijk en onder DOS kun je ook Batch scripts als cgi-scripts gebruiken (maar dat ligt ook aan de mogelijkheden van je webserver, maargoed). Ik heb ooit eens in PowerBASIC een Hello World cgi-programmaatje geschreven, dat was wel lachen.

CGI is niet meer dan een protocol over hoe webserver en programma gegevens uitwisselen (omgevingsvariablen, stdio).

Nu ken ik verder geen SQL dus ik kan je niet echt verder helpen, maar probeer in elk geval even te verduidelijken:
- Welke taal?
- Wat heeft jou verwijzing naar PHP hier mee te maken? Als het in PHP op die manier kon, waarom kan het in de taal die je nu gebruikt dan niet?
- Heb je dit stukje SQL-code (mag je dat zo noemen?) al geprobeerd? En, werkte dat? Zo niet, welke foutmelding kreeg je? Wat heb je al over die foutmelding gevonden?

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea


Verwijderd

Topicstarter
Zal wat duidelijker zijn, het script waar het ingebouwd moet worden is een perl script. Ik heb hier verder weinig verstand van.

Het script wat ik in php had gebouwd was voor een member systeempje en dit gaat heel ergens anders over, maar ik dacht ik gebruik dezelfde functie. Waar ik nu mee bezig ben kan ik geen php in gebruiken.
Ik heb het al geprobeerd dezelfde functie te gebruiken maar dit werkt helaas niet, ik denk dat je op een andere manier zo'n form uit moet lezen maar weet niet hoe.

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 21-02 23:50
perl zal denk ik geen $HTTP_POST_VARS begrijpen nee. (Overigens is dat ook alweer verouderd, je hoort als decent php-klopper tegenwoordig het $_POST super-global array te gebruiken.)

Ik zou zeggen, google even op hoe perl posts en gets afhandelt..

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

Functie? Welke functie?
Het enige wat ik zie is een stukje HTML met escaped quotes en iets dat wel eens een variable zou kunnen zijn.

Inderdaad zou je Google eens moeten bekijken. Koop een boek over Perl en CGI, lees de Perl man pages. Goed, het kost even wat werk maar je wordt ook geen olympisch kampioen hardlopen als je nooit leert om te lopen.

En dat is waar jij nu eerst aan toe bent. Dat klinkt lulliger dan het is bedoeld, maar je moet nu eerst leren lopen in Perl. Uiteindelijk kun je misschien state of the art scripts neerzetten maar ik denk dat het nu toch wat hooggegrepen is.

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea


  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

Goed, het gaat dus duidelijk om Perl.

En je wilt een omgevingsvariable benaderen, waar de waarde in zou moeten staan van de checkbox genaamd "select[]".

Ik zou zeggen, bekijk de manpage van je CGI module, daar kom je in elk geval een heel stuk verder mee. Waar het om gaat is de "param" subroutine (of methode, dat ligt er aan of je OO of functioneel gaat).

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea


Verwijderd

Topicstarter
Ik snap dat het tegenwoordig met superglobals werkt, zo script ik tegenwoordig ook in php. Dat voorbeeld was ook een oud script, die heb ik nog wel meerdere maar ga ik niet allemaal aanpassen. (te veel werk en zo werkt het ook). Kom niet aanzetten met dat superglobals veiliger zijn etc. want dat weet ik allemaal wel.

Een boek kopen voor al1 die kleine functie die ik in wil gaan bouwen vindt ik een beetje overdreven. Ik hoopte dat iemand mij een hiermee kan helpen. Geef dan goede help pagina's en kom niet aan met google daar heb ik al te lang naar gezocht. Misschien zoek ik wel op de verkeerde manier maar leg dan uit hoe je het beste kan zoeken naar deze functie.

Verwijderd

Topicstarter
Ik heb zojuist wat veranderd aan m'n script. Ik krijg nu de waarde uit het select vakje, echter pakt hij alleen de eerste waarde en de rest laat hij zitten.

Ik denk dat ik een bepaalde lus moet maken maar zou echt niet weten hoe, heeft iemand hier wat meer info over?

Alvast bedankt

  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

Van alle selectievakjes?
Uhh... nja, doe eens een poging om het in het Nederlands op te schrijven wat je wil bereiken.

En bekijk die helppagina's.
De manpage van de CGI-module is een goede start. Leer hoe param() werkt.

Een lus? Mogelijkheden zat. for, while, until...

En lees wat er geschreven wordt.
Lees documentatie (vriendelijke variant van RTFM). Lees tutorials op internet (dit ook). Lees voor mijn part de bijbel, maar LEES!
quote: MUBA
Ik zou zeggen, bekijk de manpage van je CGI module, daar kom je in elk geval een heel stuk verder mee. Waar het om gaat is de "param" subroutine (of methode, dat ligt er aan of je OO of functioneel gaat).
quote: joinme2
Geef dan goede help pagina's en kom niet aan met google daar heb ik al te lang naar gezocht.
Daar is echt genoeg uit te halen hoor. Verwacht niet dat we hier met een kant-en-klare oplossing komen.
Wat mij betreft is dit mijn laatste post in deze threat. Wat nou "geef dan goede help pagina's"? Ik zeg je welke je hebben moet, en zelfs bij welke functie je moet kijken. Ga toch fietsen man.

[ Voor 77% gewijzigd door muba op 27-10-2004 13:39 ]

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea


Verwijderd

Als je dit onderaan je script zet krijg je een mooi overzicht van alle params (formvelden) en hun waardes.

code:
1
2
3
4
5
print "####### PARAMS #######<br>\n";
    my @params=param();
    foreach(@params){
    print "$_ => ".param($_)."<br>";
    }
Pagina: 1