torms Skrevet 24. februar 2004 Del Skrevet 24. februar 2004 Jeg har en form som sender over en mengde variabler til en database. I og for seg grei nok. Men det jeg ikke får til å funke er: Det skal i formen velges hvilken tabell det skal gjøres endringer på, lag i SQL-setningen. Hvordan få lagt inn i det lag som jeg vil ha den? La oss si at jeg har 10 tabeller, de heter lag1, lag2.......lag10. Det jeg får over fra formen er en variabel $lag som inneholder 1 til 10. Forsøk noen varianter over emne streng-modifisering men har sikkert ikke funnet riktig variant. <?php include ("dbcon.php"); $query1 = "UPDATE lag SET Navn = '$Navn', For = '$For', Klasse = '$Klasse' WHERE Skive = '$Skive' "; mysql_query($query1)or die("Update table Error: ".mysql_error());; ?> Lenke til kommentar
Torbjørn Skrevet 24. februar 2004 Del Skrevet 24. februar 2004 UPDATE lag$lag ... kanskje? Lenke til kommentar
torms Skrevet 25. februar 2004 Forfatter Del Skrevet 25. februar 2004 Helt riktig! Takker! Hadde forsøkt det samme før da med formen på samme php-side Fant ut at formen måtte få data før jeg kunne sende den over til UPDATE pga UPDATE sjekke på variabelen $lag med en gang siden ble lastet. Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 25. februar 2004 Del Skrevet 25. februar 2004 (endret) Hvorfor gjør du heller ikke litt om på tabellstrukturen din? Du trenger absolutt ikke 10 tabeller, kun en. Legg til et ID felt, så slipper du lag$lag. F.eks noe slikt: CREATE TABLE lag( id INT NOT NULL, Navn VARCHAR(255), For VARCHAR(255), Klasse VARCHAR(255), Skive VARCHAR(255), PRIMARY KEY (id) ); Bytt ut VARCHAR(255) med det du hadde fra før. $query1 = "UPDATE lag SET Navn = '$Navn', For = '$For', Klasse = '$Klasse', Skive = '$Skive' WHERE id = '$lag'"; Endret 25. februar 2004 av Slettet-rXRozPkg Lenke til kommentar
torms Skrevet 25. februar 2004 Forfatter Del Skrevet 25. februar 2004 Jeg liker strukturen jeg har Det jeg skal oppnå er: adm skal sette opp et antall lag, hvert lag har et antall skiver nummerert fra 1-x, hvert lag har en dato og tid, det er en bestemt tid mellom hvert lag. Det eneste som vises i tabellen etter den innledende oppsettet er altså "skive". En bruker skal kunne skrive seg inn der det ikke er lagt inn navn fra før, uansett lag og tid. Dette gjør han ved å trykke en link i tabellen, skal komme til en form hvor han kan skrive inn navn, lag ,klasse. Derfor tror jeg det er mest praktisk å sette opp alle tabellen fra start. Ny nøtt: Vil bare først presisere at jeg er fersk når det gjelder php, så bær over med meg. Det er heller ikke meningen at jeg skal ha alt servert på et sølvfat... Jeg har heller ikke rukket å sette meg inn i argumentoverføring, referanser ol om det i det hele tatt eksisterer.. <?php include("dbcon.php"); include ("globalevars.php"); $i=1; for($i;$i<$antallLagSen;$i++){ $query = "SELECT * FROM lag$i ORDER BY Skive"; $result = mysql_query($query) or die("DB feil".mysql_error()); while ($Objekt = mysql_fetch_object($result)) { if($Objekt->Navn==""){//Kun de radene som ikke inneholder navn fra før skal skrives ut: print (" <a href=\"meldinnny.php?Skive=$Objekt->Skive&Lag=$i\">$Objekt->Skive, $Objekt->Navn</a><br> "); } else { print("$Objekt->Skive, $Objekt->Navn, $Objekt->Sklag, $Objekt->Klasse<br>"); } } mysql_free_result($result); if($query ==""){ echo("Ingen ordrer i databasen."); } } ?> Denne snutten lager altså en utskrift av alle lag og lager en link for de plassene som er ledige. Disse dataene skal jeg så sende over meldinnny.php som består av følgende: <form name ="skytterForm" action="settInnSkytter.php" method="post"> <INPUT TYPE=HIDDEN NAME="test" VALUE="send-epost"> <td> <input type=HIDDEN NAME ="Lag" VALUE= "$_GET[Lag]"></td> <td> <input type=HIDDEN NAME ="Skive" VALUE="$_GET[skive]"></td> <td> <input type="text" name="Navn"></td> <td> <input type="text" name="Sklag"></td> <td> <input type="text" name="Klasse"></td> <input type="submit" name="Submit" value="Meld på!"> </form> Så endelig til spørsmålet: Kan jeg gjøre det slik jeg har gjort i formen? Tydligvis ikke, for det er i det minste en syntaks feil. Det jeg er ute etter er å få tak i følgende: <a href=\"meldinnny.php?Skive=$Objekt->Skive&Lag=$i Jeg skal ha tak i verdienen til Skive og Lag NAME ="Lag" VALUE= "$_GET[Lag]" NAME ="Skive" VALUE="$_GET[skive]" Etter at formen er utfylt skal den sendes videre til update.php som tar seg av oppdateringen av tabellen samt ny utskrift etter at endrigene er gjort. Den har jeg klar sånn at det er å fikse formen som nå står for tur. Alle innspill av interesse Lenke til kommentar
Torbjørn Skrevet 25. februar 2004 Del Skrevet 25. februar 2004 et kort innspill uten at jeg har lest alt: har du varierende antall lag? *ikke* lag og drop tabeller for hvert lag du har! Lenke til kommentar
torms Skrevet 26. februar 2004 Forfatter Del Skrevet 26. februar 2004 Ja jeg fikk sovet på det i natt og da fant jeg vel ut at den måten jeg gjorde det på ikke er særlig fornuftig. Jeg får heller finne en måte å ta vare på indexene i tabellen og derfra dele opp utskriften. Men så var det dettte med GET da: Kan jeg bruke GET til å hente inn verdier til en form(ref mitt forrige innlegg)? Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 26. februar 2004 Del Skrevet 26. februar 2004 Ja, du kan bruke GET, hvis du har en url som inneholder de variablene du trenger, så for å få dette til å virke: <input type=HIDDEN NAME ="Lag" VALUE= "$_GET[Lag]"> <input type=HIDDEN NAME ="Skive" VALUE="$_GET[skive]"> Da må du ha en URL som er noe slikt: index.php?Lag=foo&Skive=bar Lenke til kommentar
torms Skrevet 26. februar 2004 Forfatter Del Skrevet 26. februar 2004 Ja jeg har denne urlen som sendes over til formen: fil.php?Lag=foo&Skive=bar problemet er at jeg ikke får tak i variablene. Det var i grunnen det jeg lurte på, altså syntaksen for å gjøre det i formen. Lenke til kommentar
diskvask Skrevet 26. februar 2004 Del Skrevet 26. februar 2004 Se på alt som er sendt via get; print_r($_GET); Se på f.eks. "Lag"; echo $_GET['Lag']; Lenke til kommentar
Torbjørn Skrevet 26. februar 2004 Del Skrevet 26. februar 2004 Ja jeg har denne urlen som sendes over til formen:fil.php?Lag=foo&Skive=bar problemet er at jeg ikke får tak i variablene. Det var i grunnen det jeg lurte på, altså syntaksen for å gjøre det i formen. du mener det kanskje rett... men vanligvis er det omvendt: "en form sendes til en url". Lenke til kommentar
torms Skrevet 26. februar 2004 Forfatter Del Skrevet 26. februar 2004 Ja jeg mener å sende data til en form. Finnes sikkert andre måter å gjøre det på.. I formen skal det kun kompleteres opplysninger, som jeg nevnte før er det en link fra en tabell eller rad i en tabell. For at jeg skal kunne oppdatere riktig felt etter at brukeren har lagt inn data må jeg huske lag og skive. Det jeg får ut i formen med de to utskriftene er: Se på alt som er sendt via get; print_r($_GET); Array ( [skive] => 12 [Lag] => 2 ) 2' // Her trykket jeg få skive 12 i lag 2 Se på f.eks. "Lag"; echo $_GET['Lag']; ' // kun en snutt Som dere ser får jeg sendt over data til formen men jeg klarer ikke å hente de ut. Lenke til kommentar
Torbjørn Skrevet 26. februar 2004 Del Skrevet 26. februar 2004 hvorfor fungerer ikke løsningen foreslått av Lumted da? Lenke til kommentar
torms Skrevet 26. februar 2004 Forfatter Del Skrevet 26. februar 2004 Vel, løsnigen hadde jeg skissert i eget innlegg så hvorfor det ikke virker vet jeg sannerlig ikke. Lenke til kommentar
diskvask Skrevet 26. februar 2004 Del Skrevet 26. februar 2004 Siden Lag faktisk er i $_GET-arrayet, så vil jeg tro du har en eller annen feil i koden din når $_GET['Lag'] ikke viser rett verdi. Lenke til kommentar
torms Skrevet 26. februar 2004 Forfatter Del Skrevet 26. februar 2004 Ja enig i det. Takker for alle innspill, må ta en pause nå, fylle på litt mat og drikke. Lenke til kommentar
torms Skrevet 26. februar 2004 Forfatter Del Skrevet 26. februar 2004 Fant det ut etter "litt" knot: input type="text"NAME ="Lag" VALUE= "<?php echo $_GET[Lag] ?>" input type="text" NAME ="Skive" VALUE="<?php echo $_GET[skive] ?>" Formen ville altså ha en echo for å ta med seg verdiene. Jeg er stolt over meg selv i dette øyeblikk! En stor takk til dere alle som hjalp en venn i kampens hete Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 27. februar 2004 Del Skrevet 27. februar 2004 (endret) Dette ville også ha fungert: echo "<input type=HIDDEN NAME =\"Lag\" VALUE= \"$_GET[Lag]\">"; echo "<input type=HIDDEN NAME =\"Skive\" VALUE=\"$_GET[skive]\">"; Det var i grunn denne måten jeg tenkte du kunne gjøre det på når jeg postet tidligere, men måten du fant er også god. BTW: "Litt" knot = mye lært Endret 27. februar 2004 av Slettet-rXRozPkg Lenke til kommentar
???????? Skrevet 27. februar 2004 Del Skrevet 27. februar 2004 Fant det ut etter "litt" knot:input type="text"NAME ="Lag" VALUE= "<?php echo $_GET[Lag] ?>" input type="text" NAME ="Skive" VALUE="<?php echo $_GET[skive] ?>" Formen ville altså ha en echo for å ta med seg verdiene. Jeg er stolt over meg selv i dette øyeblikk! En stor takk til dere alle som hjalp en venn i kampens hete <?php echo $_GET[Lag] ?> kan forkortes til <?= $_GET[Lag] ?> <?= er <? php echo Lenke til kommentar
torms Skrevet 1. mars 2004 Forfatter Del Skrevet 1. mars 2004 Fant det ut etter "litt" knot:input type="text"NAME ="Lag" VALUE= "<?php echo $_GET[Lag] ?>" input type="text" NAME ="Skive" VALUE="<?php echo $_GET[skive] ?>" Formen ville altså ha en echo for å ta med seg verdiene. Jeg er stolt over meg selv i dette øyeblikk! En stor takk til dere alle som hjalp en venn i kampens hete <?php echo $_GET[Lag] ?> kan forkortes til <?= $_GET[Lag] ?> <?= er <? php echo Kan du forklare littnærmere? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå