2017-12-11 10 views
0

最初の部分に私のテーブルグループの主キー(group_id)を取得しようとしていました。エントリ私はそうのように作成した:私のpdoクエリーから正しい結果を得ることができませんでした。エンテリスが存在し、phpmyadminで正しい結果を得ています

try{ 
$create_group="INSERT INTO groups(group_name, group_text, dt, perm, 
group_pw) VALUES (?, ?, ?, ?, ?)"; 
$query=$link->prepare($create_group); 
$query->execute(array($group_name, $group_desc, $dt, $permission, 
$password)); 

$create_group="SELECT * FROM groups WHERE group_name = ? , group_text = ? 

, dt = ? , perm = ? , group_pw = ?"; 
       $query=$link->prepare($create_group); 
       $query->execute(array($group_name, $group_desc, $dt, $permission, $password)); 
       $gid=$query->fetchAll(); 
       if(count($gid)==0){ 
        $gid="error"; 
       }else{ 
        $gid=$gid['group_id']; 
       } 
       header("location: ../group.php?gid=".$gid); 

      } catch(PDOException $e) { 
       echo $e; 
      } 
    $create_group="INSERT INTO groups(group_name, group_text, dt, perm, 
    group_pw) VALUES (?, ?, ?, ?, ?)"; 
       $query=$link->prepare($create_group); 
       $query->execute(array($group_name, $group_desc, $dt, 
    $permission, $password)); 

       $create_group="SELECT * FROM groups WHERE group_name = ? , 
       group_text = ? , dt = ? , perm = ? , group_pw = ?"; 
       $query=$link->prepare($create_group); 
       $query->execute(array($group_name, $group_desc, $dt, 
       $permission, $password)); 
       $gid=$query->fetchAll(); 
       if(count($gid)==0){ 
        $gid="error"; 
       }else{ 
        $gid=$gid['group_id']; 
       } 
       header("location: ../group.php?gid=".$gid); 

      } catch(PDOException $e) { 
       echo $e; 
      } 

、その後、私はそうのような行全体を取得したい:

<?php 
    if(isset($_POST['gb'])){ 
    include ("./inc/woall.inc.php"); 
    }elseif(isset($_POST['gi'])){ 
     $create_group="SELECT * FROM groups WHERE group_id = ?"; 
     $query=$link->prepare($create_group); 
     $query->execute(array($_GET['gid'])); 
     $group_info=$query->fetchAll(); 
     if(count($group_info)==0){ 
      echo "<h2>group dosn't exist</h2>"; 
     }else{ 
    ?> 
      <div> 
       <?php echo $group_info['group_text']; ?> 
       <?php echo $gr<?php 
    if(isset($_POST['gb'])){ 
     include ("./inc/woall.inc.php"); 
    }elseif(isset($_POST['gi'])){ 
     $create_group="SELECT * FROM groups WHERE group_id = ?"; 
     $query=$link->prepare($create_group); 
     $query->execute(array($_GET['gid'])); 
     $group_info=$query->fetchAll(); 
     if(count($group_info)==0){ 
      echo "<h2>group dosn't exist</h2>"; 
     }else{ 
?> 
      <div> 
       <?php echo $group_info['group_text']; ?> 
       <?php echo $group_info['dt']; ?> 
       <?php echo $group_info['perm']; ?> 
      </div> 
<?php   
     }oup_info['dt']; ?> 
       <?php echo $group_info['perm']; ?> 
      </div> 
    <?php   
     } 

が、私は最初の選択に主キー(GROUP_ID)を取得していませんよ私はいつも$ gid = "エラーを取得して終了します。そして、2番目の部分では結果が出てきます。常に通知を得ることを最終的に:未定義のインデックス。 テーブル名や列名に問題がありますか?事前に

おかげで

+2

テーブルに自動インクリメントPKを追加し、 'PDO :: lastInsertId'を使用してください。http://php.net/manual/en /pdo.lastinsertid.php – bassxzero

+0

@GrumpyCroutonです。ありがとうございます – bassxzero

答えて

0

未定義のインデックスはあなたの変数が設定されていないことを意味します。

}elseif(isset($_POST['gi'])){

が、あなたのデータベースクエリは言う:

$query->execute(array($_GET['gid']));

はそれをgiまたはgidです。これは、条件が言うあなたの場合は、おそらく事実とは何かですか?私はあなたが両方を使うことができると思います。これは別の話です。POSTです。でも、GETです。

+0

その$ _POST ['gi']は両方のボタンを参照し、$ _GET ['gid']の値が設定されていて、メインエラーでエラーが発生する行はありません

+0

あなたの 'if/else'文はすべてfalseと評価されます。そのため、これらのコード行が実行されると、変数' $ group_info'は定義されません。技術的には、あなたが – miknik

+0

であれば驚くでしょうが、同じリクエストで 'POST'と' GET'変数を設定できますが、 'if(count($ group_info)== 0)をチェックして' if/else'ステートメントで評価しています。 ) 'これは配列に他の値が入っていない限り配列を使用しているelse文に来ているので、配列が値を保持しているかどうかをチェックすることです。私は今のところそれを排除するつもりだと思うでしょう。 はい、私は '$ _POST'と' $ _GET'をうまく使っています。 '$ _GET'は'?gid = variable'をアクションに追加するだけで手動で設定します。 –

関連する問題