Gå til innhold

Diverse SQL spørsmål


Anbefalte innlegg

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

Lenke til kommentar
Videoannonse
Annonse

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();

Lenke til kommentar

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
Lenke til kommentar

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 ?

Lenke til kommentar

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
Lenke til kommentar
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 :)

Lenke til kommentar

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
Lenke til kommentar

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
Lenke til kommentar

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);

Lenke til kommentar

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
Lenke til kommentar

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
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å
×
×
  • Opprett ny...