Hov. Du er ikke logget ind.
DU SKAL VÆRE LOGGET IND, FOR AT INTERAGERE PÅ DENNE SIDE

hjælp til PHP/MySQL form søges

Side 1 ud af 1 (7 indlæg)
  • 1
Tilmeldt 15. Nov 11
Indlæg ialt: 7
Skrevet kl. 22:43
Hvor mange stjerner giver du? :

Godaften kære Amino'er. :-)

Jeg står lidt med et "problem" med hensyn til at indsætte data i min database, via en form. Problemet er at når jeg har 3 input felter, så fungerer formen fin og der bliver indsat data i min database. Men når jeg har 4 input felter, så får jeg en error, når jeg sender data.
Jeg synes umiddelbart at det virker meget underligt, men det kan være at der er noget jeg har overset jo?  

Indsæt formen ser sådan her ud

<form action="insert.php" method="post">
Kunstner: <input type="text" name="Kunstner" />
Genre: <input type="text" name="Genre" />
Afholder: <input type="text" name="Afholder" />
By: <input type="text" name="By" />
<input type="submit" />
</form>


Insert.php filen ser sådan her ud, efter $con-delen
mysql_select_db("databasenavn", $con);

$sql="INSERT INTO Events (Kunstner, Genre, Afholder, By)
VALUES
('$_POST[Kunstner]','$_POST[Genre]','$_POST[Afholder]','$_POST[By]')";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con)



Og sidst men ikke mindst - den error jeg modtager, ser sådan her ud 
Error: You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version
 for the right syntax to use near 'By) 
VALUES ('KIDD','HipHop','Skråen','Aalborg')' at line 1

På forhånd, tak for hjælpen!
Hilsen en fortabt, ihærdig og forhåbenligt kommende, programmør :-)
Fra Nykøbing Falster
Tilmeldt 17. Jul 08
Indlæg ialt: 5907
Fra  Casper Schneidereit A/S Skrevet kl. 22:46
Hvor mange stjerner giver du? :

Aldrig bruge 'by'! Ændre det til 'byen'.

Fra Nykøbing Falster
Tilmeldt 17. Jul 08
Indlæg ialt: 5907
Fra  Casper Schneidereit A/S Skrevet kl. 22:47
Hvor mange stjerner giver du? :
Fra Søborg
Tilmeldt 13. Dec 10
Indlæg ialt: 274
Skrevet kl. 22:50
Hvor mange stjerner giver du? :

Hej

Har du en kolonde der hedder "By".

Så vidt jeg husker plejer den fejl at hentyde til at databasen ikke kan genkende det første ord der er beskrevet i dette tilfælde "By"

MVH

Asger

Prøv en gratis personlighedstest på coreprofile.com

Fra DK- Struer
Tilmeldt 26. Dec 06
Indlæg ialt: 2831
Fra  Ifindu.dk Skrevet kl. 22:50
Hvor mange stjerner giver du? :

Få hjælp til at det tekniske omkring Web og Grafisk -  https://icode.dk

Tilmeldt 15. Nov 11
Indlæg ialt: 7
Skrevet kl. 22:54
Hvor mange stjerner giver du? :

Jeg takker mange gange for hjælpen, det var der fejlen 'gemte' sig! Big Smile

Forsat god aften!

Tilmeldt 20. Apr 07
Indlæg ialt: 16014
30% af profil udfyldt
Skrevet kl. 23:13
Hvor mange stjerner giver du? :

Du kan sagtens bruge ordet by som et attributnavn. Du skal bare huske at smide et par quotes omkring det når du bruger det som attributnavnet, ellers tror MySQL at den skal bruge det som keywordet i "GROUP BY". Altså din query skal se ud som følger:

$sql="INSERT INTO Events (Kunstner, Genre, Afholder, `By`)
VALUES
('$_POST[Kunstner]','$_POST[Genre]','$_POST[Afholder]','$_POST[By]')";

Derudover skal du altid huske at validere brugerinput!!!!!!! Din side er MEGET udsat for hackerangreb som det ser ud nu. Gør brug af mysql_real_escape_string(). Så kommer det til at se sådan her ud:

$sql="INSERT INTO Events (Kunstner, Genre, Afholder, `By`) 
VALUES
('$_POST[Kunstner]','$_POST[Genre]','$_POST[Afholder]','$_POST[By]')";

$sql = sprintf('INSERT INTO Events (Kunstner, Genre, Afholder, `By`) VALUES ("%s","%s","%s","%s")'),
    mysql_real_escape_string($_POST[Kunstner]),
    mysql_real_escape_string($_POST[Genre]),
    mysql_real_escape_string($_POST[Afholder]),
    mysql_real_escape_string($_POST[By]));

Side 1 ud af 1 (7 indlæg)