2016-05-08 12 views
0

Ich versuche, Daten aus einer Datenbank zu echo, aber ich bekomme die folgenden Fehler, obwohl alle 3 Variablen gewesen sind.undefinierte Variable, aber Variable ist definiert/deklariert

Hinweis: Nicht definierte Variable: fran_phone in /Applications/MAMP/htdocs/PhpProject2/testing.php auf Leitung 58

Für die folgende:

  • Fran_phone
  • Twit
  • Fb

-Code

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> 

wo habe ich falsch gemacht? was kann ich tun, um es zu lösen

+0

Ich sehe kein 'fran_phone' in Ihrem Code. Ich sehe '$ franc_phone', aber' fran'! = 'Franc' – Sean

+0

@Sean sorry du hast mich verloren. ja $ franc_phone – Monroe

+1

Sie deklarieren nur diese Variablen 'if (isset ($ _ GET ['area'])) {' so das erste Mal in die Seite, wenn der Benutzer noch nichts eingegeben hat, werden sie natürlich 0DEFINIERT sein – RiggsFolly

Antwort

1

So gibt es 2 Dinge falsch.

Sie versuchen eindeutig zu vorbereiteten Aussagen zu lernen/zu wechseln. mysqli_stmt_execute erfordert eine Aussage, aber Sie geben es ein mysqli_result Objekt.

Anstatt mysqli_query zu verwenden, müssen Sie mysqli_prepare verwenden.

$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. 
} 

Beachten Sie, dass, wenn 0 Zeilen zurückgegeben werden, Sie den gleichen Fehler (s) erhalten würden. Wie dann werden die Variablen nicht definiert.

Verwandte Themen