質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

2回答

812閲覧

php入門者 phpMyAdminから一致するデータがあった時を判定したい。

退会済みユーザー

退会済みユーザー

総合スコア0

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/10/01 14:11

提示コードの下部の///コメント部のコードですがforeach文が回るとaccount要素が定義されるのでそれを使って後のif(isset()) 文で判定しているのですが。foreach文ではなくてif文で一致するかどうかを判定したいです。

※このコードは会員の登録画面ですでに一致するID、パスワードだった時に既にアカウントが存在するかどうか?という判定をしたいです。

参考サイト: https://www.php.net/manual/ja/class.pdostatement.php

<!DOCTYPE html> <html> <head> <title> 新規作成完了 </title> <link rel="stylesheet" href="Style.css"> <meta charset="UTF-8"> </head> <body> <?php session_start(); ini_set( 'display_errors', 1 ); ini_set( 'error_reporting', E_ALL ); ?> 文字数の関係で省略 //すべて正しいとき if($register == true) { $pdo = new PDO('mysql:host=localhost;dbname=Bulletin_Board;charset=utf8','root','〇〇◯'); $sql = $pdo->prepare('select * from Bulletin_Board where id=? password=?'); if($sql->execute([$id,$password]) == true) ///////////////////////////////////////////////////////////////////////////////////////////////////// { foreach($sql->fetch_All() as $row) { $_SESSION['account']= [ 'id'=>$row['id'], 'password'=>$row['password'] ]; } ///////////////////////////////////////////////////////////////////////////////////////////////////// //アカウントがある時 if(isset($_SESSION['account']) == true) { echo "<h1> アカウントが既に存在します。ログインしてください。 </h1>"; echo "</br>"; echo '<p> ID </p>'.$id; echo "</br>"; echo '<p>  名前 </p>'.$name; echo '<form action="Top.php" method="post"> <button type="submit" name="add">トップページ</button> </form>'; echo '</center>'; } else { //アカウントがない時 if(file_exists($id) == false) { if ( mkdir($id) == false) { echo 'ディレクトリ作成失敗。'; } } $imagePath = $id.'/'.basename($_FILES['icon']['name']); list($width,$height) = getimagesize($_FILES['icon']['tmp_name']); $newWidth = 48; $newHeight = 48; $newImage = imagecreatetruecolor($newWidth,$newHeight); $image = imagecreatefromjpeg($_FILES['icon']['tmp_name']); imagecopyresampled($newImage,$image,0,0,0,0,$newWidth,$newHeight,$width,$height); imagejpeg($newImage,$imagePath); rename($imagePath,$id."/icon.".$imageExtension); $pdo = new PDO('mysql:host=localhost;dbname=Bulletin_Board;charset=utf8','root','〇〇◯'); $sql = $pdo->prepare('insert into Account values(?,?,null,?)'); if($sql->execute([$id,$password,$name]) == true) { echo '<center>'; echo "<h1> アカウント作成 </h1>"; echo '<p><img src="' , $id."/icon.".$imageExtension , '"></p>'; echo "</br>"; echo '<p> ID </p>'.$id; echo "</br>"; echo '<p>  名前 </p>'.$name; echo "</br>"; echo '<p> パスワード暗号化 </p>'.$password; echo '<form action="Top.php" method="post"> <button type="submit" name="add">トップページ</button> </form>'; echo '</center>'; } } } } } else { echo '<center>'; if(empty($_FILES['icon']['tmp_name']) == true) { echo '<p>アイコンがアップロードされていません。</p>'; } if(empty($password) == false) { echo '<p> パスワードが入力されていません。 </p>'; } if(empty($id) == false) { echo '<p> IDが入力されていません。 </p>'; } if(empty($name) == false) { echo '<p> 名前が入力されていません。 </p>'; } echo '<input type="button" onclick="history.back()" value="戻る" style="background-color:red; size:15;width:150px;height:30px">'; echo '</center>'; } ?> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AbeTakashi

2021/10/01 15:25

phpMyAdminの話はどこにあるのでしょうか? タイトルもタグも正しくないと思いますので、修正をお願いいたします。
m.ts10806

2021/10/01 23:35

「phpMyAdminから」データを取得するなら phpMyAdminの機能を使うことになります。 あくまでMySQLを扱うためのツールです。 つまり本件とは無関係。
guest

回答2

0

そもそも<center>のように既に廃止されているタグを使っている参考書なら全く利用価値はありません。
エラーハンドリングもなし、遠回りなロジック(ifのネスト深すぎ)、不要なループ
どれをとっても覚えて害にしかなりません。

PHPマニュアルをきちんと読んで自分で考えた方が100倍マシです。
簡易チュートリアルくらいは通した方が良いでしょう。
ネットの記事を参考にするなら評価が高いもの、なるべく1年以内のもの、PHPマニュアルと整合性を確認するのは必須

※自分で考えて書いたなら「書きながら考えるな」と指摘します

投稿2021/10/01 23:38

編集2021/10/01 23:43
m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

そもそもなんですが、色々と・・・
1.検索するsqlが間違っている
2.アカウントの存在確認を行う場合はパスワードはいらない

動きとしては登録画面にきたら
・idでユーザーを検索し、存在したらログインしろ
・存在しない場合はid、パスワードで登録
もちろん必要な情報がただしいかチェック

投稿2021/10/01 15:05

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問