muffe Skrevet 8. april 2003 Del Skrevet 8. april 2003 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
Chiclins Skrevet 8. april 2003 Del Skrevet 8. april 2003 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
Stonescream Skrevet 8. april 2003 Del Skrevet 8. april 2003 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
muffe Skrevet 9. april 2003 Forfatter Del Skrevet 9. april 2003 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
Neo Skrevet 9. april 2003 Del Skrevet 9. april 2003 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
Stonescream Skrevet 9. april 2003 Del Skrevet 9. april 2003 du bør lese litt på mysql sin egen side... men veldig greit program å holde p å lage tabeller og slikt er phpMyadmin. Da kan du se sql setningene etter at du har laga tabellene med hjelp av programmet. Lenke til kommentar
muffe Skrevet 10. april 2003 Forfatter Del Skrevet 10. april 2003 Har testet phpMyAdmin. Det var det som laget SQL spørringene for meg. Lenke til kommentar
Stonescream Skrevet 10. april 2003 Del Skrevet 10. april 2003 men lagde du tabellene og ikke minst selve databasen først? Create table blablabla osv? Lenke til kommentar
muffe Skrevet 10. april 2003 Forfatter Del Skrevet 10. april 2003 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
laaknor Skrevet 11. april 2003 Del Skrevet 11. april 2003 <?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
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å