variable indefinida, pero la variable está definida / declarada

Estoy tratando de hacer eco de los datos de una base de datos, sin embargo, recibo los siguientes errores, a pesar de que las 3 variables han sido.

Aviso: Variable no definida: fran_phone en / Applications /MAMP/htdocs/PhpProject2/testing.php en la línea 58

Para el siguiente:

  • Fran_phone
  • Estafermo
  • Pensión completa

Código

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']; } } ?> 
Call us

Problems ordering?

Twitter logo Facebook logo <a id='sm_fb' href='https://www.facebook.com/'>

¿Qué hice mal? ¿Qué puedo hacer para resolverlo?

Entonces hay 2 cosas mal.

Claramente está tratando de aprender / cambiar a las declaraciones preparadas. mysqli_stmt_execute requiere una statement, pero le estás dando un objeto mysqli_result .

En lugar de usar mysqli_query necesitas usar 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. } 

Tenga en cuenta que si se devuelven 0 filas, entonces obtendrá el mismo error (s). Como entonces las variables no serán definidas.