Linje 81,
- if($row_count = $objcon->affected_rows === 3){
, vil altid være 1 såfremt querien var succesfuld.
"Gets the number of affected rows in a previous MySQL operation"
- Eftersom du laver 3 individuelle queries, vil affected_rows ligeledes give 1- 3 gange.
I stedet kan du indsætte en tæller, som bliver increased med én, hver gang en query er succesfuld.
Jeg bemærkede også, at du I toppen tjekkede om blot en af tingene var tomme, eller hog_properties var lig 3. Alle felter skal vel være sat og udfyldt samt hog_properties = 3.
Jeg har skrevet et eksempel på, hvordan jeg ville gøre det. Bemærk, at koden ikke er testet, og det kan godt være, at jeg har misset en ting eller to hist og pist. Du kan lige få mit eksempel herunder:
- <?php
-
- $hogtbl = 'ornestationen_hog_tbl';
- $hogattrtbl = 'ornestationen_hog_attributes_tbl'
-
- if (isset($_GET) && isset($_GET['hog_name']) && isset($_GET['hog_birthday']) && isset($_GET['hog_description']) && isset($_GET['hog_properties'])) {
- if(!empty($_GET['hog_name']) && !empty($_GET['hog_birthday']) && !empty($_GET['hog_description']) && count($_GET['hog_properties']) == 3) {
- $sth = $dbh->prepare('INSERT INTO `' . $hogtbl . '`
- (
- `hog_name`,
- `hog_description`,
- `hog_birthday`
- ) VALUES (
- ?,
- ?,
- ?
- )
- ');
- $sth->bind_param('s', $_GET['hog_name']);
- $sth->bind_param('s', $_GET['hog_description']);
- $sth->bind_param('s', $_GET['hog_birthday']);
- $sth->execute();
-
- if($rowsAffected = $dbh->affected_rows === 1) {
- $lastHogInsertId = $dbh->insert_id;
- $insertCount = 0;
- $insertedAttributes = array();
- foreach($_GET['hog_properties'] as $property) {
- $sth = $dbh->prepare('INSERT INTO `' . $hogattrtbl . '`
- (
- `fk_attributes_id`,
- `fk_hog_id`
- ) VALUES (
- ?,
- ?
- )
- ');
- $sth->bind_param('i', $property);
- $sth->bind_param('i', $lastHogInsertId);
- $sth->execute();
-
- if($dbh->affected_rows == 1) {
- $insertCount++;
- $insertAttributes = array('hog_id' => $lastHogInsertId, 'attribute_id' => $property, 'type' => 'success');
- } else {
- $insertAttributes = array('hog_id' => $lastHogInsertId, 'attribute_id' => $property, 'type' => 'error');
- }
-
- }
-
- if($insertCount == 3) {
- echo 'Hog created and attributes populated';
- var_dump($insertAttributes);
- } else {
- echo 'Only ' . $insertCount . ' could be inserted.';
- var_dump($insertAttributes);
- }
- }
- }
- }
-
- ?>