Autor Zpráva
PavV
Profil
Ahoj, lze sloučit do jednoho dotazu insert a select? Konkréntně:
$sql = "INSERT INTO users VALUES(0,'".$this->data["jmeno"]."','".$this->data["user"]."',SHA1('".$this->data["pass"]."'),'".$this->data["aktivni"]."','');";
$sql.= "SET @id = LAST_INSERT_ID();";
if( isset($this->data["farn"])){
    foreach ($this->data["farn"] as &$value) {
    $sql.= "INSERT INTO adminis VALUES (@id,".$value.");";
   }
}
$ip = gethostbyname($_SERVER['REMOTE_ADDR']);
$sql.= "INSERT gdpr VALUES ('ducho',NOW(),@id,'$ip',".$_SESSION['user_id'].",'vloženo');";

$sql.= "SELECT MAX(id) AS id FROM users;";
$result= self::$connect->query($sql);
$result->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $row){
      $id= $row["id"];
}

Když insert provedu v jednom dotazu a select v dalším, je vše ok. Pokud to sloučím hodí to
Warning: Invalid argument supplied for foreach()

A nebo lze v php získat z prvního dotazu @id?
Dik
Tomášeek
Profil
PavV:
Ano, pravé vložené id jde získat. Hledej insert_id.

Navíc, v tom tvém druhem dotazu tahas jednu hodnotu, foreach je zbytečný.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0