Gå til innhold

Diverse SQL spørsmål


Anbefalte innlegg

Skrevet

Heisann

 

Siden jeg ikke fant annet enn udugelige greier om sql i php velger jeg å fikse systemet selv .. Så! Hvordan legger jeg til i en SQL-database? Jeg vil jo sjekke om den faktisk er lagt til etterpå, kan jeg gjøre det i phpmyadmin?

 

Har flere spørsmål, men tar et om gangen.

 

Takker for hjelp!

 

Jonas

Videoannonse
Annonse
Skrevet (endret)

Legge til:

INSERT INTO tabell (kolonne1,kolonne2,kolonne3) 
VALUES ($variabel1,$variabel2,"en streng")

 

EDIT: Og ja, du kan sjekke innholdet i tabellen fra mysqladmin..

Endret av Loomy
Skrevet

Det der er altså "query'en"? Hvor skal passordet, brukernavn og "localhost" inn når jeg kobler til?

mysql_connect("","","");
@mysql_select_db("") or die( "Unable to select database"); 

$insertMySQL = "INSERT INTO tabell (kolonne1,kolonne2,kolonne3) 
VALUES ($variabel1,$variabel2,"en streng")";

mysql_query($insertMySQL);
mysql_close();

Skrevet

mysql_connect("localhost","brukernavn","passord");

 

PS! I de fleste tilfeller er det localhost som er "URL" til mysql, men det finnes unntak.. f.eks hvis du bruker freesql.org eller noe sånt..

Skrevet

Når du skal gjoere dette selv er det best å lese gjennom hele kapittelet om mysql funksjoner i PHP manualen. I det lange loep vil du spare tid på dette. Du kan finne den online her:

PHP: MySQL Functions - Manual

Du kan også laste ned en winhelp fil (*.chm) fra nettstedet slik at du lese offline.

Skrevet (endret)

Edit: Fikk det til!

 

Fikk error på linje 10 :dontgetit: (Der hvor "values" begynner)

<?php

if($_POST['Passord'] = $_POST['Bekreft'])
{

mysql_connect("localhost","karlsrudlan","*******");
@mysql_select_db("karlsrudlan") or die( "Unable to select database"); 

$insertMySQL = "insert into members (brukernavn, passord, navn, etternavn, mail, telefon, adresse, aktiv)
     values ($_POST['Brukernavn'], $_POST['Passord'], $_POST['Navn'], $_POST['Etternavn'], $_POST['Mail'], $_POST['Telefonnr'], $_POST['Adresse'], "nei")";
mysql_query($insertMySQL);
mysql_close();

}
else
{

echo "Skriv inn to like passord!";

}

?>

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /web/www/frac/users/karlsrudlan/registrer.php on line 10

Hva betyr det?

Endret av Jonas
Skrevet

Ok, nå har jeg klart den biten hvor man legger til en ny bruker i databasen, men den mangler to viktige ting: Man skal ikke kunne velge et brukernavn som allerede er tatt, og jeg må ha "bekreftelse-mail".

 

For å ikke registrere seg med samme navn tenkte jeg kunne gjøre noe sånt:

$i = 0;

while($i < 100) {

if($_POST['Brukernavn'] == brukernavn - rad($i)
{

echo "Allerede opptatt!";
exit;

}

$i = $i + 1

}

Her fortsetter koden med å registrere ...

Noen som vet koden for å hente brukernavn på rad $i ?

Skrevet (endret)

En grei måte å sjekke om brukernavn eksisterer:

$sql = "SELECT * FROM tabell WHERE brukernavn = '$brukernavn'";
$res = mysql_query($sql) or die("FEIL");
$hits = mysql_num_rows($res);
if($hits != 0) { // Fant en eller flere andre med oppgitt brukernavn
 Print "Brukernavn finnes fra før, velg et annet";
}
else {
 // Registrer ny bruker
}

Endret av kakkle
Skrevet

$sql = "SELECT * FROM members WHERE brukernavn = " . $_POST['Brukernavn'];
$res = mysql_query($sql) or die("FEIL");
$hits = mysql_num_rows($res);

Jeg får bare opp "FEIL" hele tiden. Hvordan kan jeg få se den ordentlige feilmeldingen?

Skrevet
Jeg får bare opp "FEIL" hele tiden. Hvordan kan jeg få se den ordentlige feilmeldingen?

Endre kodesnutten til:

$sql = "SELECT * FROM members WHERE brukernavn = " . $_POST['Brukernavn'];
$res = mysql_query($sql) or die("FEIL:" . mysql_error());
$hits = mysql_num_rows($res);

.. så får du se hva mysql har å si om saken :)

Skrevet (endret)

Unknown column 'Jonas' in 'where clause' :dontgetit:

 

Jeg har en greie som heter "members" og inni der er det "brukernavn" + flere. Hvofor får jeg den error'en da?

 

$sql = "SELECT * FROM members WHERE brukernavn = " . $_POST['Brukernavn'];
$res = mysql_query($sql) or die("FEIL:" . mysql_error());
$hits = mysql_num_rows($res);

Endret av Jonas
Skrevet
$brukernavn = $_POST['Brukernavn']; // sikker på det skal være stor B her?
$sql = "SELECT * FROM members WHERE brukernavn = $brukernavn;
$res = mysql_query($sql) or die("FEIL:" . mysql_error());
$hits = mysql_num_rows($res);

Skrevet (endret)

queryet? Mener du strukturen i databasen, eller koden? Poster begge jeg:

<?php

mysql_connect("localhost","karlsrudlan","******");
@mysql_select_db("karlsrudlan") or die( "Unable to select database"); 

if($_POST['Passord'] == $_POST['Bekreft'])
{

$sql = "SELECT * FROM `members` WHERE `brukernavn` = " . $_POST['Brukernavn'];
$res = mysql_query($sql) or die("FEIL:" . mysql_error());
$hits = mysql_num_rows($res);

if($hits != 0) { // Fant en eller flere andre med oppgitt brukernavn

 echo "Brukernavn finnes fra før, velg et annet";
 mysql_close();
 
}
else {
 
 $insertMySQL = "insert into members (brukernavn, passord, navn, etternavn, mail, telefon, adresse, aktiv)
      values (" . $_POST['Brukernavn'] . ", " . $_POST['Passord'] . ", " . $_POST['Navn'] . ", " . $_POST['Etternavn'] . ", " . $_POST['Mail'] . ", " . $_POST['Telefonnr'] . ", " . $_POST['Adresse'] . ", nei)";
 mysql_query($insertMySQL);
 mysql_close();
 
 echo "Du er registrert!";

}

}
else
{

echo "Skriv inn to like passord!";

}

?>

 

Edit:

sikker på det skal være stor B her?

Det jeg skriver kommer jo opp i SQL-erroren så stor B er riktig.

post-30-1096459785_thumb.jpg

Endret av Jonas
Skrevet

et "query" er det som du i php har mellom parentesene i mysql_query()

 

det er den strengen som sendes til databaseserveren for prosessering som SQL

 

så du kan f.eks gjøre noe sånt som:

 

$query="select blabla $variable bla bla"; #sett inn det du før hadde i mysql_query();

 

echo "nå kjører jeg følgende query: $query<br/>\n";

mysql_query($query);

Skrevet

Endre:

$sql = "SELECT * FROM members WHERE brukernavn = " . $_POST['Brukernavn'];

 

til:

$sql = "SELECT * FROM members WHERE brukernavn = '" . $_POST['Brukernavn'] ."'";

 

brukernavnet er en verdi og verdien "Jonas" eksisterer ikke som kolonne. Sørg derfor for å innkapsle verdiene med slike : '

Skrevet (endret)

Skjønner. Queryen er, som man ser over:

"SELECT * FROM `members` WHERE `brukernavn` = " . $_POST['Brukernavn'];

Skjønner ikke hvorfor den akkurat vil finne raden med navnet som postes i POST. Selv om jeg bytter plass på radnavn og POST får jeg error.

 

Edit: Jeg tror jammen det funka, betabagel!

Endret av Jonas
Skrevet (endret)

Prøv denne:

<?php

mysql_connect("localhost","karlsrudlan","******");
@mysql_select_db("karlsrudlan") or die( "Unable to select database");

if($_POST['Passord'] == $_POST['Bekreft']) {
$brukernavn = $_POST['Brukernavn'];
$sql = "SELECT * FROM `members` WHERE `brukernavn` = $brukernavn";
$res = mysql_query($sql) or die("FEIL: " . mysql_error());
$hits = mysql_num_rows($res);

if($hits != 0) { // Fant en eller flere andre med oppgitt brukernavn

echo "Brukernavn finnes fra før, velg et annet";
mysql_close();

}
else {
 $passord = $_POST['Passord'];
 $navn = $_POST['Navn'];
 $etternavn = $_POST['Etternavn'];
 $mail = $_POST['Mail'];
 $telefonnr = $_POST['Telefonnr'];
 $adresse = $_POST['Adresse'];
 
 $insertMySQL = "insert into members (brukernavn, passord, navn, etternavn, mail, telefon, adresse, aktiv)
 values ($brukernavn, $navn, $etternavn, $mail, $telefonnr, $adresse, 'nei')";
 mysql_query($insertMySQL);
 mysql_close();

 echo "Du er registrert!";

}

}
else
{

echo "Skriv inn to like passord!";

}

?>

 

Har byttet ut alt det der post-greiene i spørringen med vanlige variabler, og fikset litt her og der..

Endret av Loomy
Skrevet

Betabagel har rett. Må ha ' rundt verdien på det du spør etter. SLik er det også i den lille kodesnutten jeg postet lengre opp:

brukernavn = '$brukernavn'

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...