セッション変数を使用してデータを php ページに渡す単純なフォームがあります。外部関数ページに 2 つの関数がありますが、特定の関数ごとに変数に名前を付けないと、各関数の変数をグローバルに機能させることができません。
これは、誰かが助けてくれることを願っている例です。
$dbName = $_SESSION['dataBaseName'];
$tableName = $_SESSION['tableName'];
$artistName = $_SESSION['artistName'];
$songName = $_SESSION['songName'];
function table_exists($tableName)
{
if(mysql_num_rows(mysql_query("SHOW TABLES LIKE '".$tableName."'"))==1)
{
echo "Table exists <br />";
}
else
{
$sql = "CREATE TABLE songList (songId int NOT NULL AUTO_INCREMENT PRIMARY KEY, artistName varchar(60), songName varchar(25))";
$result= mysql_query($sql) or die(mysql_error());
return $result;
}
}
私の OTHER 関数では、変数を関数の中に入れました。どのコンボを使用するかは問題ではないようです。変数は、使用する関数ごとに再宣言する必要があります。前に GLOBAL を使用してみましたが、エラーが発生します。他の関数は次のとおりです。
function tableWrite()
{
$dbName = $_SESSION['dataBaseName'];
$tableName = $_SESSION['tableName'];
$artist = $_SESSION['artist'];
$song = $_SESSION['song'];
if(!empty($_REQUEST['insert']))
{
$sql = "INSERT INTO $tableName (artistName, songName) values ('$artist', '$song')";
$result = mysql_query($sql) or die(mysql_error());
$showaresult = mysql_query("SELECT * from $tableName where artistName = '$artist' AND songName= '$song' ") or die("Invalid query: " . mysql_error());
echo ("New entry added");
$row = mysql_fetch_array($showaresult);
echo ("<br> Catalog Number = ". $row["songId"] . "<br> Artist Name = " . $row["artistName"] . "<br>");
echo("Song Name = " . $row["songName"] . "<br>");
echo ("<h1> Current Catalog </h1>");
$showresult = mysql_query("SELECT * from $tableName") or die("Invalid query: " . mysql_error());
while ($row = mysql_fetch_array($showresult))
{
echo ("<br> Catalog Number = ". $row["songId"] . "<br> Artist Name = " . $row["artistName"] . "<br>");
echo("Song Name = " . $row["songName"] . "<br>");
}
}
}