2016-11-07 2 views
0

Я пытался получить строку из базы данных mysql без успеха. строка, которую я извлекал, является только одной. Вот мой код ниже:получить строку mysql с php

<?php 

$email = $_POST["email"]; 
$usrname = $_POST["username"]; 
$pass = $_POST["password"]; 
$code = $_POST["code"]; 
$status = $_POST["status"]; 
$userinfo = $_POST["user_info_id"]; 
$firstname = $_POST["fname"]; 
$middlename = $_POST["mname"]; 
$lastname = $_POST["lname"]; 
$img = $_POST["image"]; 

require "init.php"; 


$query = "select * from user where email like '".$email."';"; 
$result = mysqli_query($con,$query); 

if (mysqli_num_rows($result)>0) 
{ 
    $response = array(); 
    $code = "reg_false"; 
    $message = "User already exist"; 
    array_push($response,array("code"=>$code,"message"=>$message)); 
    echo json_encode(array("server_response"=>$response)); 
} 
else 
{ 
    $query = "insert into user (email,username,password,code,status,user_info_id) values('".$email."','".$usrname."','".$pass."','".$code."','".$status."','".$userinfo."');"; 
    //$query2 = "insert into userinfo (fname,mname,lname) values('".$firstname."','".$middlename."','".$lastname."');"; 
    $result = mysqli_query($con,$query); 

    if(!$result) 
    { 
    $response = array(); 
    $code = "reg_false"; 
    $message = "Error try again"; 
    array_push($response,array("code"=>$code,"message"=>$message)); 
    echo json_encode(array("server_response"=>$response)); 
    } 
    else 
    { 
    $query = "select user_info_id from user group by user_info_id DESC limit 1"; 
    $result = mysqli_query($con, $query); 
    if ($mysqli_num_rows($result)>0){ 

     while($row = mysqli_fetch_assoc($result)) { 
     echo "id: " . $row["user_info_id"]. " - Name: " . $row["fname"]. " " . $row["lname"]. $row["mname"] . "<br>"; } 


    } 
    $query1 = "insert into userinfo (user_info_id,fname,mname,lname) values('".$result."','".$firstname."','".$middlename."','".$lastname."','".$img."');"; 
    $result = mysqli_query($con,$query1); 

    $response = array(); 
    $code = "reg_false"; 
    $message = "Success"; 
    array_push($response,array("code"=>$code,"message"=>$message)); 
    echo json_encode(array("server_response"=>$response)); 
    } 
} 

mysqli_close($con); 





?> 

Ошибки я получаю была:

 Notice: Undefined variable: mysqli_num_rows in  C:\xampp\htdocs\loginapp\register.php on line 46 

Fatal error: Uncaught Error: Function name must be a string in C:\xampp\htdocs\loginapp\register.php:46 Stack trace: #0 {main} thrown in C:\xampp\htdocs\loginapp\register.php on line 46 

Я довольно новым для PHP и MySQL.

+0

$ mysqli_num_rows функция не является переменной – devpro

+0

ваш код открыт для SQL инъекций. У вас не может быть ';' как часть строки quer (если вы это делаете, вы должны использовать mysqli_multi_query) – e4c5

+0

Подготовьтесь к проблеме и сделайте ее двойной, если вы не избежите этих входных значений. – Phiter

ответ

0

Используйте этот запрос, чтобы получить число строк.

$query = "select * from user where email like '".$email."';"; 
$result = mysqli_query($con,$query); 
$row_count = mysqli_num_rows($result); 

Затем используйте ваши условия, если нравится эта

if ($row_count>0) 
{ 
    $response = array(); 
    $code = "reg_false"; 
    $message = "User already exist"; 
    array_push($response,array("code"=>$code,"message"=>$message)); 
    echo json_encode(array("server_response"=>$response)); 
} 
else 
{ 
.......