webForumDet fria alternativet

vad är fel??

Databaser & SQL

5 svar · 262 visningar · startad av rittfeldt

Medlem sedan jan. 200355 inlägg
Frågan#1

får det inte riktigt att fungera som jag vill. :( Jag har bara hunnit bekanta mig med mysql i nja... något halvt dygn eller så, så det har väl inte hunnit bli så avancerad kod än. Ja, ja så här har jag skrivit iaf:

<html>
<head>
</head>
<body >
<?

function storedata(){
  global $temp;
  $conn = mysql_connect() or die("could not connect to database");
  $database = mysql_select_db("forum");
  $sql = "INSERT INTO user('name') VALUES ('$temp')";
  mysql_query("$sql");
  mysql_close($conn);
}

function wievdata(){
  $conn = @mysql_connect() or die("could not connect to database");
  $database = mysql_select_db("forum");
  $sql = "SELECT * FROM user";
  $result = mysql_query("$sql");
  while($row = mysql_fetch_array($result)){
    echo "name: ".$row['name']."<br>";
	
  }
  mysql_close($conn);
}

if(!empty($temp)){
  storedata();
}

?>
<form method="post" action="<?=$PHP_SELF?>">
  Enter new name to store: <input type="text" name="temp"> <input type="submit">
</form>  
<? wievdata(); ?>
</body>
</html>

sedan får jag ett (för de flesta) välkänt felmeddelande: sidan kan inte visas (den vita sidan som ibland kan komma upp när man är ute o surfar) och i adressfältet står det: http://localhost/php/\<br%20/><b>Notice</b>:%20%20Undefined%20variable:%20%20PHP_SELF%20in%20<b>c:/inetpub/wwwroot/php/index.php</b>%20on%20line%20<b>33</b><br%20/>

vore tacksam för någon lösning på problemet.

Medlem sedan aug. 20021 752 inlägg
#2

Variablen PHP_SELF finns inte om du inte har globals on i din php.ini. Antagligen har du inte det (den är satt till off på nya versioner), byt ut PHP_SELF mot $_SERVER['PHP_SELF'] .

/Viktor

Medlem sedan dec. 200012 464 inlägg
#3
$sql = "INSERT INTO user(name) VALUES ('$temp')";
Medlem sedan jan. 200355 inlägg
#4

fungerar ändå inte riktigt..

har nu ändrat som tipsat (tagit bort fnuttarna och ändrat i php.ini-filen). Inga felmeddelanden men inga nya namn läggs till i databasen. Är det något ytterligare fel?

<?
function storedata(){
  global $temp;
  $conn = mysql_connect() or die("could not connect to database");
  $database = mysql_select_db("forum");
  $sql = "INSERT INTO user(name) VALUES ('$temp')";
  mysql_query("$sql");
  mysql_close($conn);
}

function wievdata(){
  $conn = @mysql_connect() or die("could not connect to database");
  $database = mysql_select_db("forum");
  $sql = "SELECT * FROM user";
  $result = mysql_query("$sql");
  while($row = mysql_fetch_array($result)){
    echo "name: ".$row["name"]."<br>";
  }
  mysql_close($conn);
}

if(!empty($temp)){
  storedata();
}

?>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>">
  Enter new name to store: 
  <input type="text" name="temp"> <input type="submit" value="Submit">
</form>  
<? wievdata(); ?>

namnet som skrivs i formuläret lagras iaf i variabeln temp, det kollade jag, men den lagras som sagt inte i databasen.

Medlem sedan dec. 200012 464 inlägg
#5
$sql = "INSERT INTO user (name) VALUES ('$temp')" or die(mysql_error());

Jag har för mig att Mysql hanterar user speciellt, det är i vanliga fall en funktion men för att den ska förstå att det är ett tabellnamn så får man lägga in en blank innan parentesen. (Korkat av Mysql? Jo.) Det bästa är nog att byta namn på tabellen.

Medlem sedan jan. 200355 inlägg
#6

tackar LarsG :)
tänk så stor skillnad ett mellanslag kan göra ibland...
Jo, ja bytte namn på tabellen också

251 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)