2016-05-08 10 views
0

データベースからデータをエコーし​​ようとしていますが、3つの変数がすべてあったとしても、次のエラーが発生しています。未定義の変数ですが、変数が定義/宣言されています

注意:未定義の変数:

  • Fran_phone
  • なじる
  • 次の行58

に/Applications/MAMP/htdocs/PhpProject2/testing.phpでfran_phone

  • Fb
  • 私は間違って行くんでした3210

    コード

    mysqli_report(MYSQLI_REPORT_INDEX); 
    $dbc = new mysqli("localhost", "root", "root", "One_Delivery"); 
    $dbc->set_charset("utf8mb4"); 
    if (isset($_GET['area'])) { 
    
        $franc_details = $_GET['area']; 
        $get_franc_dets = "SELECT * FROM Franc_dets WHERE Fran_City = '$franc_details'"; 
        $run_get_franc_dets = mysqli_query($dbc, $get_franc_dets); 
        mysqli_stmt_execute($run_get_franc_dets); 
    
    
        while ($row_get_franc_dets = mysqli_fetch_array($run_get_franc_dets)) { 
    
         $franc_phone = $row_get_franc_dets['Fran_Contact_Num']; 
         $twit = $row_get_franc_dets['Twitter']; 
         $fb = $row_get_franc_dets['Fb']; 
        } 
    } 
    ?> 
    
    <div id='franc_div' > 
    
        <table id='franchise_dets'> 
    
         <tr id='frnc_tbl'> 
          <td class='collapse'> 
           <img src='./Images/franc_dets_phone.png' height='50' width='50' alt='Call us'>  
          </td> 
    
          <td class='phn_dets'> 
           <p id='phn_title'>Problems ordering?</p> 
           <p id='phn_numb'><?php echo $franc_phone ?></p> 
          </td> 
    
          <td class='collapse'> 
           <img src='./Images/franc_dets_twitter.png' height='50' width='50' alt='Twitter logo'>  
          </td> 
    
    
          <td class='twitter_dets'> 
           <p id='sm_title'>Social media</p> 
           <a id='sm_twit' href='https://twitter.com/<?php echo $twit ?>'>@<?php echo $twit ?></a> 
          </td> 
    
          <td class='collapse'> 
           <img src='./Images/franc_dets_fb.png' height='50' width='50' alt='Facebook logo' >  
          </td> 
    
    
          <td class='fb_dets'> 
    
           <a id='sm_fb' href='https://www.facebook.com/<?php echo $fb; ?>'><?php echo $fb; ?></a> 
          </td> 
         </tr> 
    
        </table> 
    </div> 
    

    ?それを解決するために何ができるのですか?

    +0

    あなたのコードに 'fran_phone'はありません。私は '$ franc_phone'を見るが、' fran'!= 'franc' – Sean

    +0

    @Seanあなたは私を失ってすみませます。はい$ franc_phone – Monroe

    +1

    あなたはまだ変数を宣言していますif(isset($ _ GET ['area'])){'そう、ユーザがまだ何も入力していないときに初めてページに入ったときにはもちろん未確認です – RiggsFolly

    答えて

    1

    2つのことが間違っています。

    あなたは明らかに準備された声明に学び/切り替えようとしています。 mysqli_stmt_executeにはステートメントが必要ですが、これにはmysqli_resultオブジェクトを指定しています。

    mysqli_queryの代わりにmysqli_prepareを使用する必要があります。

    $sql = "SELECT * FROM Franc_dets WHERE Fran_City = ?;"; 
    if ($stmt = mysqli_prepare($dbc, $sql)) { 
        mysqli_stmt_bind_param($stmt, "s", $franc_details); 
        mysqli_stmt_execute($stmt); 
    
        // Check how many if any rows were returned. 
        $num_rows = mysqli_stmt_num_rows($stmt); 
    
        // Do what you were already doing, 
        // and loop through each returned row. 
    } 
    

    0行が返された場合、同じエラーが発生することに注意してください。それで、変数は定義されません。