webForumDet fria alternativet

Databasproblem

16 svar · 362 visningar · startad av bionic

bionicMedlem sedan sep. 200347 inlägg
#1

Hej!
Har gjort en sida där man kan registrera sig som ny medlem, men nånting har gått snett. Jag får inget felmeddelande eller nåt, utan allt ser ut som det ska. Uppgifterna vägrar dock att hamna i databasen av nån anledning :( Nån som ser vad som är fel?

<? }
function check() {
	global $uname, $pass, $fname, $lname, $bday, $email, $icq, $msn;
	$länk = mysql_connect ("localhost", "","");
	$sql="SELECT * FROM user WHERE uname='$uname'";
	$result = mysql_db_query("users","$sql");

	if(!($rad=mysql_fetch_array($result))) {
		$sql="INSERT INTO user(uname,fname,lname,email,pass,birthday,icq,msn) VALUES('$uname','$fname','$lname','$email','$pass','$bday','$icq','$msn')";
		mysql_db_query("users","$sql");
		echo "<span class='text'>Du är nu registrerad $uname<br>";
		echo "<a href='index.php'>Logga in</a></span>";
			}
		else {
			echo "Ditt användarnamn var upptaget. Välj ett annat.";
			form();
		}
	mysql_close ($länk);
	}
?>
jazzilMedlem sedan maj 2003151 inlägg
#2

jag ska väll inte säga att jag är något proffs och jag har inte lätt att se det problem efter som jag hade löst det anolunda ..

men första varför kör du samma sql sats två gånger?
och visar den texten att du har laggts till bla bla bla eller den visar inget..

QimenMedlem sedan juni 20015 009 inlägg
#3

Han kör inte två likdana, i ena hämtar han och i andra lägger han till. :)

bionicMedlem sedan sep. 200347 inlägg
#4

Japp den visar att det har lagts till osv....allt ser ut att funka men inget hamnar i databasen som sagt.

jazzilMedlem sedan maj 2003151 inlägg
#5

jo jag så det nu..

du kan få se hur min kod for medlemmar på mitt foum ser ut ...det funkar helt fel fritt...

	  if (isset($_GET["pa"])=="yes"):
      $open = mysql_connect("localhost", "root", "");
      $namef = $_POST['name'];
	  $name = ereg_replace(" ", "_", $namef);
      $koll = mysql_db_query("theforum", "SELECT COUNT(*) FROM hmm WHERE name='$name'");
      if (mysql_result($koll, 0) == 0) {

		 if ($_POST['password1'] == $_POST['password2']){
         $status = "medlem";
	     $password = $_POST['password1'];
	     $dbinfo = mysql_db_query("theforum", "INSERT hmm (name,status, password) VALUES ('$name','$status', '$password')");
	    
		 }
	   }else{$nameex = ":: Det är upptaget";}
	 
	mysql_close($open);
endif;
bionicMedlem sedan sep. 200347 inlägg
#6

Ingen som ser nåt fel med min kod?

PeddaMedlem sedan juni 20006 032 inlägg
#7

Kolla igenom dina sql satser, på en del ställen står det user och på andra users

bionicMedlem sedan sep. 200347 inlägg
#8

Databasen heter users, tabellen user. det är nog därför.

PeddaMedlem sedan juni 20006 032 inlägg
#9

Ok, det borde jag ju har förstått. Är nog för trött för att hitta något fel.
Kanske något i formuläret? Hur ser det ut?

bionicMedlem sedan sep. 200347 inlägg
#10

har lagt till or die(mysql_error()); nu, och får följande felmeddelande:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'user(uname,fname,lname,email,pass,birthday,icq,msn) VALUES('Par

Kan dock inte hitta nåt fel där.

Nexus86Medlem sedan okt. 20023 030 inlägg
#11

Det är säkert inte det som är fel men,

INSERT INTO user(uname,fname,lname,email,pass,birthday,icq,msn)  VALUES('$uname','$fname','$lname','$email','$pass','$bday','
$icq','$msn')

För det första, varför två mellanslag mellan "...icq,msn)" och "VALUES"?

För det andra, (detta är helt säkert inte felet men kan alltid vara bra att ta bort) varför har du ny rad direkt före '$icq'? För jag antar att du inte vill ha radbrytning precis före icq-numret? :q

bionicMedlem sedan sep. 200347 inlägg
#12

Inget av dom sakerna är där i vanliga fall, blev bara här i forumet, så det är tyvärr nåt annat :/

closecutMedlem sedan sep. 200310 inlägg
#13

Re: Databasproblem

det är möjligtvis inte så att du försöker stoppa in ett felaktigt värde nånstans?

hur ser tabellen ut och vilka typer är kolumnerna? har du testat att köra

INSERT INTO user VALUES() dvs. utan kolumn-namnen med?

vilken php/mysql-version kör du?

rent allmänt brukar man ju också rekommendera att du kör mysql_select_db() och mysql_query() istället för mysql_db_query().

ändra
or die(mysql_error());
till
or die(mysql_errno()." : ".mysql_error());

och berätta vilken felkod du får.

MatteMedlem sedan aug. 20002 975 inlägg
#14

När mysql_error rapporterar felmeddelande brukar det ta med SQL-frågan med början där felet ligger.
I det här fallet bör du titta närmare på user.

Jag varit med om att några har varit tvungna att ha ett mellanslag mellan user och parentesen.

Jag kan inte hitta user i reserverade ord, men det är ändå ett kolumnnamn jag känner mig tveksam till. Lägg bakåtfnuttar runt det, för att säkra upp det. Alltså `user`.

NiklassonMedlem sedan nov. 2000857 inlägg
#15

Tråden flyttas från PHP...

LarsGMedlem sedan dec. 200012 464 inlägg
#16

User är inget bra tabellnamn i SQL eftersom det är ett reserverat ord. Alternativ:

a) Döp om tabellen
b) använd `user`
c) Lägg in space mellan user och parentesen. Annars så tolkas det som ett funktionsanrop i Mysql.

bionicMedlem sedan sep. 200347 inlägg
#17

Tack för alla tips, det funkar nu! Var namnet som var problemet.

142 ms totalt · 3 externa anrop · v20260731065814-full.30151723
139 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)