Gå til innhold

Diverse SQL spørsmål


Anbefalte innlegg

når jeg ber deg skrive ut queryet, så vil jeg ikke se koden, jeg vil se resultatet av det i php :)

 

da kan man lettere vurdere hvor feilen ligger.

 

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

 

et eller annet sted i skriptet så ser du hva resultatet blir av det du setter sammen!

Lenke til kommentar
Videoannonse
Annonse

Er litt nuub når det kommer til php ser det nok ut som :blush:

 

Error'en er borte, men jeg kan fortsatt registrere meg med samme brukernavn to ganger.

$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 {

Og querien printet ut:

SELECT * FROM members WHERE brukernavn = 'Jonas'

Lenke til kommentar

okay, det med queryet var ikke så farlig lenger i og med at det sannsynligvis ble fikset. men kjektå få fram poenget.

 

å skrive ut ting og tang er et meget nyttig debughjelpemiddel, idet det viser hva du faktisk har i de vairablene du har i din applikasjon. så forhåpentligvis tok du det poenget :)

 

har du drevet med programmering før? det virker som det du sliter med er mere generell programmingstankgegang enn phpsyntaks.

Lenke til kommentar

Hvorfor virker det som det? Jeg vet hva jeg skal gjøre, men vet bare ikke hvordan.

 

Ja, jeg programmerer VB.

 

Vet du hvorfor koden ikke virker? $hits er, og blir 0 uansett om jeg skriver samme brukernavn flere ganger.

Endret av Jonas
Lenke til kommentar

Jepp, det kan jeg!

 

PHP koden: (registrer.php)

<?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 {
 
 $brukernavn = $_POST['Brukernavn'];
 $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, $passord, $navn, $etternavn, $mail, $telefonnr, $adresse, 'nei')";
 mysql_query($insertMySQL);
 mysql_close();
 
 echo "Du er registrert!";

}

}
else
{

echo "Skriv inn to like passord!";

}

?>

 

Formen:

<form action="registrer.php" method="post">

	<P>E-post adressen må være gyldig! Du må bekrefte registreringen ved å trykke på en link som blir sendt.</P>

	<TABLE BORDER="0">

		<TR>

			<TD><P>Brukernavn:</P></TD>
			<TD><input name="Brukernavn" size="20"/></TD>

		</TR>

		<TR>

			<TD><P>Passord:</P></TD>
			<TD><input name="Passord" size="20"/></TD>

		</TR

		><TR>

			<TD><P>Bekreft passord:</P></TD>
			<TD><input name="Bekreft" size="20"/></TD>

		</TR>

		<TR>

			<TD><P>Navn:</P></TD>
			<TD><input name="Navn" size="20"/></TD>

		</TR>

		<TR>

			<TD><P>Etternavn:</P></TD>
			<TD><input name="Etternavn" size="20"/></TD>

		</TR>

		<TR>

			<TD><P>E-Mail:</P></TD>
			<TD><input name="Mail" size="20"/></TD>

		</TR>

		<TR>

			<TD><P>Adresse:</P></TD>
			<TD><input name="Adresse" size="20"/></TD>

		</TR>

		<TR>

			<TD><P>Telefonnr:</P></TD>
			<TD><input name="Telefonnr" size="20"/></TD>

		</TR>

	</TABLE>

	<input type="submit" value="Meld meg på!"/>

	</form>

Endret av Jonas
Lenke til kommentar

uhm,

 

du trenger ikke lage en ny variabel for hvert "punkt" her:

$brukernavn = $_POST['Brukernavn'];
$passord = $_POST['Passord'];
$navn = $_POST['Navn'];
$etternavn = $_POST['Etternavn'];
$mail = $_POST['Mail'];
$telefonnr = $_POST['Telefonnr'];
$adresse = $_POST['Adresse'];

 

$_POST[] kan brukes i queryen ;)

Lenke til kommentar
du sjekker aldri for feil i din siste insert som faktisk setter inn brukernavn.

 

ta en titt på koden her:

www.nt.ntnu.no/~lindahl/php/jonas.php.html

echo $brukernavn;
echo "<BR>Du er registrert!";

Da for jeg jo opp det jeg skrev som brukernavn.

 

Hva er det du vil frem til? Er vannskelig å se på koden og bli klokere, når jeg ikke vet hva jeg ser etter!

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