PHP Mysql query INT wordt niet goed verwerkt.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Joep -

Joep -

14/07/2015 11:48:44
Quote Anchor link
Hallo Allemaal,

Ik probeer een update uit te voeren aan de hand van een foreach.

Dit zijn de query's (ge-echo'd) die ik uitvoer:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
UPDATE ST_FAR SET amount='625' WHERE ean='8711173001887'
UPDATE ST_FAR SET amount='2836' WHERE ean='8712400110136'
UPDATE ST_FAR SET amount='595' WHERE ean='8712400111119'
UPDATE ST_FAR SET amount='284' WHERE ean='8711173002020'
UPDATE ST_FAR SET amount='135' WHERE ean='8712400110044'
UPDATE ST_FAR SET amount='2891' WHERE ean='8712400110037'
UPDATE ST_FAR SET amount='75' WHERE ean='8712400111096'
UPDATE ST_FAR SET amount='2059' WHERE ean='8712400110020'
UPDATE ST_FAR SET amount='0' WHERE ean='8716677005768'
UPDATE ST_FAR SET amount='133' WHERE ean='8716677005751'
UPDATE ST_FAR SET amount='39' WHERE ean='8716677005744'
UPDATE ST_FAR SET amount='457' WHERE ean='8711173001894'
UPDATE ST_FAR SET amount='518' WHERE ean='8711173001870'
UPDATE ST_FAR SET amount='3' WHERE ean='8712400110136'
UPDATE ST_FAR SET amount='2' WHERE ean='8712400110020'
UPDATE ST_FAR SET amount='1' WHERE ean='8712400110044'
UPDATE ST_FAR SET amount='3' WHERE ean='8711173001887'
UPDATE ST_FAR SET amount='5' WHERE ean='8711173001870'
UPDATE ST_FAR SET amount='1' WHERE ean='8712400110037'


Nu werkt het grootste deel van deze query's wel. Alleen sommige niet.
Bij
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
UPDATE ST_FAR SET amount='625' WHERE ean='8711173001887'
komt er bijvoorbeeld in de database '3' te staan. Netals bij
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
UPDATE ST_FAR SET amount='2059' WHERE ean='8712400110020'
2 komt. Terwijl
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
UPDATE ST_FAR SET amount='595' WHERE ean='8712400111119'
wel gewoon correct werkt.
Maar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
UPDATE ST_FAR SET amount='135' WHERE ean='8712400110044'

Weer niet.

Ik heb al gekeken in mijn database, het staat nu als INT(11). Wijzigen naar varchar werkt niet.
Via andere hosting geprobeerd maar alsnog hetzelfde probleem.
Als ik echter de foreach weghaal en in elke query handmatig '2059' zet, werkt het wel.

Iemand enig idee hoe dit kan komen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function updateStock($ean, $amount, $stock, $name){
    if(p($stock.'.stocks.import')){
        $st = 'ST_'.$stock;
        $query = mysql_query("SELECT * FROM {$st} WHERE ean='{$ean}' LIMIT 1");
        if (mysql_num_rows($query)!=0) {
            $query = "UPDATE {$st} SET amount='{$amount}' WHERE ean='{$ean}'";
            mysql_query($query);
            echo $query;
        } else {
            $query3 = mysql_query("INSERT INTO {$st} (ean, amount, name)
                    VALUES ('".$ean."','".$amount."','".$name."')");    
            $query4 = mysql_query("INSERT INTO PRODUCTS (ean, name)
                    VALUES ('".$ean."','".$name."')");    
        }
    }
}


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
foreach($goods_list as $item) {
        updateStock($item['goods_ean'], $item['avail_count'], $stock, $item['goods_name']);
}


Groet,
Joep de Jong
Gewijzigd op 14/07/2015 11:49:13 door Joep -
 
PHP hulp

PHP hulp

15/01/2025 22:55:13
 
- SanThe -

- SanThe -

14/07/2015 12:23:04
Quote Anchor link
Hoe ziet de database structuur er uit?
Wat doet function p()?
Waarom gebruik je nog mysql en geen mysqli of pdo?
 
Joep -

Joep -

14/07/2015 12:42:11
Quote Anchor link
p() check de permissies,
dit is allemaal in orde.

Afbeelding

Ik had voor morgen op de agenda om alles om te zetten naar MySQLi. Ik probeer nu deze functie wel om te zetten om te kijken of dat het probleem oplost.

Groet,
Joep

EDIT: Met MySQLi heb ik hetzelfde probleem.
Gewijzigd op 14/07/2015 12:47:21 door Joep -
 
- SanThe -

- SanThe -

14/07/2015 12:54:24
Quote Anchor link
Joep de Jong op 14/07/2015 11:48:44:
Bij
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
UPDATE ST_FAR SET amount='625' WHERE ean='8711173001887'
komt er bijvoorbeeld in de database '3' te staan.


Misschien omdat die 2 keer wordt geupdated.

UPDATE ST_FAR SET amount='625' WHERE ean='8711173001887'
UPDATE ST_FAR SET amount='3' WHERE ean='8711173001887'

En zo ook de rest.
Gewijzigd op 14/07/2015 12:56:31 door - SanThe -
 
Joep -

Joep -

14/07/2015 12:55:35
Quote Anchor link
- SanThe - op 14/07/2015 12:54:24:
Joep de Jong op 14/07/2015 11:48:44:
Bij
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
UPDATE ST_FAR SET amount='625' WHERE ean='8711173001887'
komt er bijvoorbeeld in de database '3' te staan.


Misschien omdat die 2 keer wordt geupdated.

UPDATE ST_FAR SET amount='625' WHERE ean='8711173001887'
UPDATE ST_FAR SET amount='3' WHERE ean='8711173001887'


Nu je het zegt!
Even kijken waar het probleem zit :) bedankt!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.