人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP & MySQLでの質問です。

データベース「member」のテーブル「list」は
「name」と「pw」と「work」と言う3つのフィールドから成り立っております。
listには現在下記4つのデータが入っております。

name---pw---work(以下データ)
斉藤---1212---不動産業
山田---5854---八百屋
山田---8758---作家
金子--7451---教師

※name=山田は2つありますがpwが異なります。

上記データベースからブラウザ上で
nameとpwを入力して両方とも一致した場合に「work」を表示させたいのですが
どのようにすればよろしいでしょうか?
下記のスクリプトの●●●のところで教えてください。

<?php

$link = mysql_connect('localhost', '0000', '2222');

●●●●

$close_flag = mysql_close($link);

?>

●質問者: t_yasu
●カテゴリ:ウェブ制作
✍キーワード:LINK localhost MySQL name PHP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● studioes
●0ポイント

$rslt = mysql_query("SELECT work FROM member WHERE name='$name' AND pw='$pw'", $link);

if($row = mysql_fetch_array($rslt)){

echo($row['work']);

}

◎質問者からの返答

Parse error: syntax error, unexpected $end in…と表示されてしまいます。


2 ● Mook
●70ポイント

本来なら名前ではなく、全体でユニークな ID を使用するほうが良いとは思いますが、とりあえずご希望のコードだと下記のようでしょうか。


関数にしてみましたが、ベタに書くなら変数 $name と $pwを設定して、関数の中だけを書けばそれでもできます。

<?
// データベース情報
define( "db_Server", "localhost" );
define( "db_User", "foo" );
define( "db_Password", "bar" );
define( "db_Name", "testdb" );

getWork( 'YAMADA', '1234' ); // 呼出サンプル
// getWork( $_POST['name'], $_POST['pw'] ); // POST ならこんな感じ?


//-------------------------------------------
function getWork( $name, $pw ) {
//-------------------------------------------
 $conn = mysql_connect( db_Server, db_User, db_Password ) or die("接続エラー");
 mysql_select_db(db_Name) or die("DATABASE 選択エラー:".$dbName );
 $sql = "SELECT * FROM list;";
 $res = mysql_query( $sql, $conn ) or die("データ抽出エラー\n".$sql);
 mysql_close( $conn );

 while ( $row = mysql_fetch_array( $res, MYSQL_ASSOC ) ) {
 if ( ( $name == $row['name'] ) && ( $pw == $row['pw'] ) ) {
 printf( "[%s] さんのお仕事は[%s]です。\n", $name, $row['work'] );
 return;
 }
 }
 printf( "一致する登録がありません。\n" );
}
?>
◎質問者からの返答

できました!ありがとうございます。

コピーペーストするだけで私の思っていた通りになりました。素晴らしい!!!

本番ではご指摘のとおり「本名」は使いませんのでご心配なく!。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ