Just nu i M3-nätverket
Gå till innehåll

"Insert info" med formulär


Aktuellspeedway.se

Rekommendera Poster

Aktuellspeedway.se

Försöker göra ett formulär för att infoga text i en databas.

 

När jag lägger in info så lägger det till en rad i databasen men infon saknas, någon som vet vad som är felet?

 

Koden ser ut såhär

 

 

<html><head></head><body>
<form name="form" method="post" action="input.php">
<input type=text name=id> ID<BR>
<input type=text name=lag> Lag<BR>
<input type=text name=mat> Matcher<BR>
<input type=text name=vin> Vinster<BR>
<input type=text name=oav> Oavgjorda<BR>
<input type=text name=för> Förluster<BR>
<input type=text name=fpp> Förarpoäng+<BR>
<input type=text name=fpn> Förarpoäng-<BR>
<input type=text name=fps> Poängskillnad<BR>
<input type=text name=poa> Poäng<BR>
<input type="submit" value="Lägg till!">
</form>
</body></html>

 

input.php

<?php
$db = mysql_connect("localhost","anvnämn","lösenord") or die("Cannot connect
to server");
mysql_select_db("aktuellspeedway",$db) or die("Cannot find database");
$sql = mysql_query("INSERT INTO trophynorra (id, lag, matcher, vinster, oavgjorda, förluster, fpp, fpn, d, p) VALUES('$id','$lag','$mat','$vin','$oav','$för','$fpp','$fpn','$fps','$poa')") or die
(mysql_error());

?>

 

[inlägget ändrat 2009-03-22 02:49:05 av Aktuellspeedway.se]

Länk till kommentar
Dela på andra webbplatser

Förmodligen är din PHP korrekt konfiguread (fast din kod ser ut att vara skriven med ett 10 år gammalt exempel som mall, sådan kod fungerar inte längre).

 

För att du i så fall ska komma åt informationen som postas ska du inte använda variabler med samma namn utan items i $_POST.

 

Ett väldigt förenklat exempel skulle alltså kunna se ut så här:

 

$id = mysql_escape_string($_POST['id']);
$lag = mysql_escape_string($_POST['lag']);
$sql = mysql_query("INSERT INTO trophynorra (id, lag) VALUES('$id','$lag'") or die;

Dvs, värdena plockar du ur $_POST och skickar dem sen till mysql_escape_string() för att tvättas så att ditt script inte blir vidöppet för SQL Injections eller för all del genererar fel om någon skriver något ogiltigt tecken.

Resultatet lagrar du i variabler som du sen använder i din SQL-sats.

 

Notera också att om det ens går så är det en rätt usel idé att ha ett variabelnamn som heter $för.

[inlägget ändrat 2009-03-22 10:14:59 av fhe]

Länk till kommentar
Dela på andra webbplatser

Aktuellspeedway.se

Tackar!

 

Jag gjorde inte riktigt som du sa, men jag fick det att funka, med ett väldigt likt sätt.

 

Har en annan fundering som du kanske kan svara på. jag har ett script där jag uppdaterar bla förarstatistik, men jag måste räkna ihop och uppdatera med den totala siffran tex om en förare tidigare kört 5 matcher och sen kör en sjätte måste jag uppdatera med 6. då undrar jag om det finns något kommande så man kan lägga till? tex om man då har 5 matcher och bara lägger in 1 så plusas det ihop och blir 6.

 

Väldigt ludigt förklarat, men du kanske förstår ändå.

 

 

 

Länk till kommentar
Dela på andra webbplatser

hejsan

 

 

Din mysql fråga är fel och du få använda $_POST['namn på de fält i Formulär ']

 

Syntax


<?php
$con = mysql_connect("localhost","peter","abc123");

if (!$con)
 {
 die('Could not connect: ' . mysql_error());
 }

mysql_select_db("my_db", $con);

mysql_query("INSERT INTO Persons (Lag,FirstName, LastName, Age) 
VALUES ('$_POST['lag']','Peter', 'Griffin', '35')");

mysql_close($con);
?>


 

[inlägget ändrat 2009-03-25 01:31:16 av mac3]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...