Gå til innhold

Trenger hjelp til mySQL script


Anbefalte innlegg

Holder på å lage et script som lagrer input fra et skjema i en database, men har problemer med SQL queryen. For sikkerhets skyld har jeg erstattet passordet med et som ikke er gyldig.

 

Når jeg prøver scriptet får jeg følgende feil:

Parse error: parse error, unexpected T_STRING in C:Documents and SettingsHåkon StrandenesMy DocumentsMy WebsTech-NetTestinginput.php on line 6

 

Hva er galt?

 

Script:

 


<?php



$link=mysql_connect("localhost","Muffe","ikke_gyldig_pass") or die("Feil ved tilkopling til databasen");

$db=mysql_select_db("Medlemsregister") or die("Databasen finnes ikke");

$query = "CREATE TABLE {$_Medlemsnummer}" or die("En feil oppstod under opprettelsen av tabellen");

$query = "INSERT INTO {$_Medlemsnummer} (Navn, Adresse, Postnummer, Poststed, Fodselsdato, Medlemstype) VALUES( '{$_Navn}', '{$_Adresse}', '{$_Postnummer}', '{$_Poststed}', '{$_Fodselsdato}', '{$_Medlemstype}') or die("En feil oppstod under skriving til databasen");



echo 'Hei '; echo $_POST['Navn'];

echo 'Du er nå registrert i vår database'; 



?>

 

Jeg regner med at dere ser hva scriptet gjør. Det er et script som registerer medlemmer i en database. Jeg har også et par spørsmål jeg trenger svar på i forbindelse med dette: Hvis det finnes en tabell fra før med samme navn (medlemmet registrerer seg to ganger), vil jeg da få en errer, eller vil dataene bli overskrevet?

 

Må også legge til at dette er mitt aller første PHP-script noen gang, så hvis jeg har brutt mange grunnleggende regler er det ikke så rart...

Lenke til kommentar
Videoannonse
Annonse

nå er det mulig at jeg er helt på jordet da, men jeg har aldri sett noen skrive SQl-querier slik:

 

INSERT INTO {$_Medlemsnummer} (Navn, Adresse, Postnummer, Poststed, Fodselsdato, Medlemstype) VALUES( '{$_Navn}', '{$_Adresse}', '{$_Postnummer}', '{$_Poststed}', '{$_Fodselsdato}', '{$_Medlemstype}

 

jag ville ha skrevet den slik:

 

INSERT INTO $_Medlemsnummer (Navn, Adresse, Postnummer, Poststed, Fodselsdato, Medlemstype) VALUES( '$_Navn', '$_Adresse', '$_Postnummer', '$_Poststed', '$_Fodselsdato', '$_Medlemstype');

 

dessuten så for å kjøre mysql querier må du skrive slik

 

mysql_query("SELECT | INSERT | REPLACE | UPDATE | CREATE | el .... ");

 

"INSERT INTO {$_Medlemsnummer} (Navn, Adresse, Postnummer, Poststed, Fodselsdato, Medlemstype) VALUES( '{$_Navn}', '{$_Adresse}', '{$_Postnummer}', '{$_Poststed}', '{$_Fodselsdato}', '{$_Medlemstype}') or die("En feil oppstod under skriving til databasen");

 

er langt ifra en gyldig linje php, jeg foreslår at du prøver å lære deg litt om hvodan kopple opp mot databaser og bruke de,

http://dev.devnull.no jeg tror de har en tutorial på det.

 

lykke til

Lenke til kommentar

I første omgang ville jeg sett på sql setningene. tror nok det er med på å lage trøbbel. Limer inn noen sql setninger som funker med meg så kan du gå over og sjekke i forhold til dine:

// Connect to the database

          $sConn = mysql_connect($config["server"], $config["username"], $config["password"])

                   or die("Could not connect to database server");

          $dConn = mysql_select_db($config["databasename"], $sConn)

                   or die("Could not connect to database");



          // Select the available galleries from the gallery table, newest first

          $dbQuery = "SELECT Beskr, GalleriID FROM Galleri ORDER BY Dato DESC";

          $result = mysql_query($dbQuery);



          // Drop down menu

          echo '<select name="galleri">';



          // Add the galleries to the drop down menu

          while($row = mysql_fetch_array($result))

          {

            $besk = $row['Beskr'];

            $id = $row['GalleriID'];

            echo '<option value="' .$id .'">'. $besk;

          }

Denne saken henter utvalg fra en db inn i en option boks. Er starten på en større form. Har i tillegg en sortering slik at nyeste kommer først. (ORDER BY dato DESC) DESC viser innholdet motsatt vei av normalt. Praktisk når en vil ha siste innlegg vist først feks.

Lenke til kommentar

Har nå endret litt poå scriptet, men får fremdeles masse rare feilmeldinger:

 

<?php



$link=mysql_connect("localhost","muffe","hs2988") or die("Feil ved tilkopling til databasen");

$db=mysql_select_db("Medlemsregister") or die("Databasen finnes ikke");

$query = "INSERT INTO `Medlemmer` ( `Medlemsnummer` , `Navn` , `Adresse` , `Postnummer` , `Poststed` , `Fødselsdato` , `Medlemstype` ) VALUES (ASCII( $_POST['Medlemsnummer']  ) , ASCII( $_POST['Navn']  ) , ASCII( $_POST['Adresse'] ) , ASCII( $_POST['Postnummer'] ) , ASCII( '$_POST['Poststed']' ) , $_POST['Fodselsdato'], ASCII( $_POST['Medlemstype'] ) )";





echo 'Hei '; echo $_POST['Navn'];

echo 'Du er nå registrert i vår database'; 



?>

 

Dette scriptet oppretter ikke lengere en tabell, men putter data inn i en ferdiglaget tabell.

 

Hva kan være feil i dette scriptet?

Lenke til kommentar

Selfølgelig lager ikke dette scriptet en tabell! Man lager tabeller vha kommandoen: "Create table navnpåtabell...". "Insert into..." setter jo bare inn i tabellen. Dette er jo innlysende pga frasen insert into? Eller kanskje ikke? Foreslår at du kanskje kjøper deg en mysql-bok og setter deg litt inn i saker og ting.

Lenke til kommentar

Ja, først lagde jeg tabellen manuelt. Dette skal ikke scriptet gjøre lengere. Det har jeg gått bort fra. Se oppdatert script over. Så laget jeg alle kolonene, og satte inn overskrifter, definerte typer osv. Så puttet jeg data inn i tabellen, og kopierte SQL spørringen inn i scriptet, og erstattet de aktuelle dataene med de aktuelle variablene. Alt dette ble gjort i phpMyAdmin (bortsett fra redigering av script).

Lenke til kommentar

<?php



$link=mysql_connect("localhost","muffe","hs2988") or die("Feil ved tilkopling til databasen");

$db=mysql_select_db("Medlemsregister") or die("Databasen finnes ikke");

$query = "INSERT INTO `Medlemmer` ( `Medlemsnummer` , `Navn` , `Adresse` , `Postnummer` , `Poststed` , `Fødselsdato` , `Medlemstype` ) VALUES (ASCII( $_POST['Medlemsnummer']  ) , ASCII( $_POST['Navn']  ) , ASCII( $_POST['Adresse'] ) , ASCII( $_POST['Postnummer'] ) , ASCII( '$_POST['Poststed']' ) , $_POST['Fodselsdato'], ASCII( $_POST['Medlemstype'] ) )";





echo 'Hei '; echo $_POST['Navn'];

echo 'Du er nå registrert i vår database'; 



?>

 

 

Forsøkt å legge til $result = mysql_query($query) or die(mysql_error()); ?

 

Rens litt opp i koden din; kan være en fordel å lage og renske opp i variablene før du gjør selve query'en....

 


$adresse = $_POST[adresse];

$navn = $_POST[navn];



$query = "INSERT INTO tabell SET

adresse = '$adresse',

navn = '$navn',

mail = '$mail'

";



$result = mysql_query($query);

 

Akkurat sånn jeg har skrevet opp $query syns jeg er veldig oversiktlig, da ikke alt kommer på en lang linje.....[/b]

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...