简体   繁体   English

如何获得所有产品? MySQL,PHP

[英]How to get all the products? MySQL, PHP

How to get all the products? 如何获得所有产品? With the return, I get only one row... I would like to type a loop to get all the values of the MySQL table "listaprodotti"? 返回时,我只会得到一行...我想键入一个循环来获取MySQL表“ listaprodotti”的所有值吗?

     public function getProdottiByUsername($username)
{
    $stmt = $this->conn->prepare("SELECT username, id_prodotto, nome_prodotto, categoria, quantita  FROM listaprodotti WHERE username = ?");
    $stmt->bind_param("s", $username);
    $stmt->execute();
    $stmt->bind_result($username, $id_prodotto, $nome_prodotto, $categoria, $quantita);
    $stmt->fetch();
    $prodotti = array();


    $prodotti['username'] = $username;
    $prodotti['id_prodotto'] = $id_prodotto;
    $prodotti['nome_prodotto'] = $nome_prodotto;
    $prodotti['categoria'] = $categoria;
    $prodotti['quantita'] = $quantita;


    return $prodotti;

   }

   }

That's what I get 那就是我得到的

     "prodotti":
   {"username":"anto","id_prodotto":57,"nome_prodotto":"xxx",
       "categoria":"xxx","quantita":"2"}}

All this must be called with Swift 3 as an NSDictionary . 所有这些都必须以Swift 3作为NSDictionary来调用。

UPDATE 更新

How do I get the values as an NSDictionary in Swift 3 ? 如何在Swift 3中以NSDictionary获取值?

PHP CODE PHP代码

  public function getProdottiByUsername($username)
{
    $stmt = $this->conn->prepare("SELECT username, id_prodotto, nome_prodotto, categoria, quantita  FROM listaprodotti WHERE username = ?");
    $stmt->bind_param("s", $username);
    $stmt->execute();
    $result = $stmt->get_result();
    $i=0;
    $prodotti = array();
    while($row = $result->fetch_array(MYSQLI_ASSOC)){
        $prodotti[$i]['username'] = $row['username'];
        $prodotti[$i]['id_prodotto'] = $row['id_prodotto'];
        $prodotti[$i]['nome_prodotto'] = $row['nome_prodotto'];
        $prodotti[$i]['categoria'] = $row['categoria'];
        $prodotti[$i]['quantita'] = $row['quantita'];
        $i++;
    }
     return $prodotti;
    }

    }

SWIFT CODE SWIFT代码

   import Alamofire
   import UIKit
    import AVFoundation

   class LoginController1: UIViewController {

//The login script url make sure to write the ip instead of localhost
//you can get the ip using ifconfig command in terminal
let URL_USER_LOGIN = "http://.............../login.php"

//the defaultvalues to store user data
let defaultValues = UserDefaults.standard

//the connected views
//don't copy instead connect the views using assistant editor
@IBOutlet weak var labelMessage: UILabel!
@IBOutlet weak var username: UITextField!

@IBOutlet weak var password: UITextField!

//the button action function
@IBAction func buttonLogin(_ sender: UIButton) {

    //getting the username and password
    let parameters: Parameters=[
        "username":username.text!,
        "password":password.text!
    ]

    //making a post request
    Alamofire.request(URL_USER_LOGIN, method: .post, parameters: parameters).responseJSON
        {
            response in
            //printing response
            print(response)

            //getting the json value from the server
            if let result = response.result.value {
                let jsonData = result as! NSDictionary

                //if there is no error
                if(!(jsonData.value(forKey: "error") as! Bool)){

                    //getting the user from response
                    let user = jsonData.value(forKey: "user") as! NSDictionary


                    //getting user values
                    let userId = user.value(forKey: "id") as! Int
                    let userName = user.value(forKey: "username") as! String
                    let userEmail = user.value(forKey: "email") as! String
                    let userNome = user.value(forKey: "nome") as! String
                    let userCognome = user.value(forKey: "cognome") as! String
                    let userTelefono = user.value(forKey: "telefono") as! String



                    //saving user values to defaults
                    self.defaultValues.set(userId, forKey: "userid")
                    self.defaultValues.set(userName, forKey: "username")
                    self.defaultValues.set(userEmail, forKey: "useremail")
                    self.defaultValues.set(userNome, forKey: "usernome")
                    self.defaultValues.set(userCognome, forKey: "usercognome")
                    self.defaultValues.set(userTelefono, forKey: "usertelefono")


                    ///prende i valori dei prodotti dalla cella legata a quel username
                    let prodotti = jsonData.value(forKey: "row") as! NSDictionary 



                    let prodottiNome_prodotto = prodotti.value(forKey: "nome_prodotto") as! String
                    let prodottiCategoria = prodotti.value(forKey: "categoria") as! String
                    let prodottiQuantita = prodotti.value(forKey: "quantita") as! String



                    //saving i valori di questo username


                    self.defaultValues.set(prodottiNome_prodotto, forKey: "nome_prodotto")
                    self.defaultValues.set(prodottiCategoria, forKey: "categoria")
                    self.defaultValues.set(prodottiQuantita, forKey: "quantita")



                    //Go to the HomeViewController if the login is sucessful
                    let ProfiloController = self.storyboard?.instantiateViewController(withIdentifier: "Profilo") as! ProfiloController
                    self.navigationController?.pushViewController(ProfiloController, animated: true)

                    self.dismiss(animated: false, completion: nil)

                    }else{
                                            //error message in case of invalid credential
                    let alertController = UIAlertController(title: "Error", message: "Username e password sbagliati", preferredStyle: .alert)
                    let defaultAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)
                    alertController.addAction(defaultAction)

                    self.present(alertController, animated: true, completion: nil)
                    }
            }
                }
}






override func viewDidLoad() {
    super.viewDidLoad()
    if defaultValues.string(forKey: "username") != nil{
        let ProfiloController = self.storyboard?.instantiateViewController(withIdentifier: "Profilo") as! ProfiloController
        self.navigationController?.pushViewController(ProfiloController, animated: true)

    }
}


    var player: AVPlayer?
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)





    let tap = UITapGestureRecognizer(target: self, action: #selector(LoginController1.dismissKeyboard))
    view.addGestureRecognizer(tap)
    let path = Bundle.main.path(forResource: "introoiphone 7 plus", ofType: "mp4")
    player = AVPlayer(url: URL(fileURLWithPath: path!))
    player!.actionAtItemEnd = AVPlayerActionAtItemEnd.none;
    let playerLayer = AVPlayerLayer(player: player)
    playerLayer.frame = self.view.frame
    playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
    self.view.layer.insertSublayer(playerLayer, at: 0)
    NotificationCenter.default.addObserver(self, selector: #selector(LoginController1.playerItemDidReachEnd), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: player!.currentItem)
    player!.seek(to: kCMTimeZero)
    player!.play()

}

func playerItemDidReachEnd() {
    player!.seek(to: kCMTimeZero)
}



func dismissKeyboard(tap: UITapGestureRecognizer) {
    print("Keyboard Dismiss Again")
    view.endEditing(true)
}
override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
 }

  }

You need to use fetchAll instead of fetch. 您需要使用fetchAll而不是fetch。

http://php.net/manual/en/pdostatement.fetchall.php http://php.net/manual/zh/pdostatement.fetchall.php

$stmt->fetchAll();

You can call your result in a loop, otherwise it just takes the first row: 您可以在循环中调用结果,否则仅需要第一行:

$result = $stmt->get_result();
$i=0;
while($row = $result->fetch_array(MYSQLI_ASSOC)){
    $prodotti[$i]['username'] = $row['username'];
    $prodotti[$i]['id_prodotto'] = $row['id_prodotto'];
    $prodotti[$i]['nome_prodotto'] = $row['nome_prodotto'];
    $prodotti[$i]['categoria'] = $row['categoria'];
    $prodotti[$i]['quantita'] = $row['quantita'];
    $i++;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM