error in script niet op te lossen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java Developer / Overheid / Complexiteit

Functieomschrijving Wil jij als Java Developer een bijdrage leveren aan een veiliger Nederland en je als Java Developer bezig houden met zeer complexe bedrijfskritische applicaties? Lees dan snel verder! Doorontwikkelen bedrijfskritische applicaties; Aanpassingen maken in de bestaande applicatie; Vertalen van jouw visie op continuous integration en continuous delivery; Debuggen van de applicatie; In gesprek gaan met eindgebruikers om verbetervoorstellen op te halen. Functie-eisen Minimaal HBO-werk en denkniveau; Minimaal 5 jaar werkervaring als Java Developer; Je bent minimaal OCP-Java SE 6 gercertificeerd; Je hebt kennis van Webservices en Continuous Integration; Je bent analytisch sterk en zowel klant- als resultaatgericht. Bedrijfsomschrijving Binnen

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Senior DevOps-ontwikkelaar eIDAS

Functie­omschrijving Burgers en bedrijven veilig en betrouwbaar digitaal toegang geven tot diensten en producten van het ministerie van Economische Zaken en Klimaat. Als senior DevOps-ontwikkelaar bouw je daar letterlijk aan mee. En dat doe je bij DICTU: een van de grootste en meest vooruitstrevende ICT-dienstverleners van de Rijksoverheid. Jij werkt mee aan de doorontwikkeling van eIDAS, dat staat voor Electronic IDentification Authentication and trust Services. Deze koppeling maakt de grensoverschrijdende authenticatie op overheidswebsites binnen de Europese Unie mogelijk. Het ministerie van Economische Zaken en Klimaat heeft één moderne toegangspoort voor zijn diensten en inspecties. Enkele daarvan zijn dankzij eIDAS inmiddels

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Mike de jong

Mike de jong

09/09/2011 14:01:45
Quote Anchor link
Beste dudes

In heb namelijk een tabel beurs_users.

in het scripts maakt hij een update naar die tabel , maar als er geen record is voor een user moet hij een insert into doen .

daar gaat het mis hoe ik het ook doe ik blijf error houden

$sql = mysql_query('SELECT * FROM beurs_users WHERE beurs_id=' . intval($_GET['id']) . ' AND user_id=' . $data['id']);
$results = mysql_num_rows($sql);

if (num_affected_rows($results)==0)
{
mysql_query('INSERT INTO beurs_users (user_id , beurs_id , inkoop_prijs , aantal) VALUES ('.$data['id'].','.$row['beurs_id'].','.$rows['inkoop_prijs'].','.$aantal.')');
}
else
{
mysql_query('UPDATE beurs_users SET aantal=' . $row['aantal'] . ' WHERE beurs_id=' . $row['beurs_id'] . ' AND user_id=' . $data['id']);
}
mysql_query('UPDATE users SET cash=' . $data['cash'] . ' WHERE id=' . $data['id']);

ERROR : Call to undefined function num_affected_rows()

ook heb ik dit geprobeerd met


mysql_query('INSERT INTO beurs_users (user_id , beurs_id , inkoop_prijs , aantal) VALUES ('.$data['id'].','.$row['beurs_id'].','.$rows['inkoop_prijs'].','.$aantal.') ON DUPLICATE KEY UPDATE aantal=' . $row['aantal'] . ' WHERE beurs_id=' . $row['beurs_id'] . ' AND user_id=' . $data['id'])or die(mysql_error());

dat werkt helemaal niet.
Gewijzigd op 09/09/2011 14:02:10 door Mike de jong
 
PHP hulp

PHP hulp

29/09/2020 15:25:14
 
- Ariën -
Beheerder

- Ariën -

09/09/2011 14:06:09
Quote Anchor link
Quote:
ERROR : Call to undefined function num_affected_rows()

Dit betekent dat de functie niet bestaat, je moet dan dus: mysql_affected_rows() gebruiken.
 
- SanThe -

- SanThe -

09/09/2011 14:07:12
Quote Anchor link
Mike de jong op 09/09/2011 14:01:45:
ERROR : Call to undefined function num_affected_rows()


Heb je de error al gelezen? Die function bestaat niet. Je bedoelt waarschijnlijk mysql_affected_rows().
 
Gerhard l

gerhard l

09/09/2011 14:07:37
Quote Anchor link
Hallo Mike,

Ten eerste gebruik graag de [-code][-/code] tags zonder het -

En over je code, je doet een SELECT query, en daarna doe je num_affected_rows dan vraag je hoeveel rijen er aangepast zijn, tenminste ik denk je dat bedoelt alleen het is: mysql_affected_rows

Dit werkt niet. Je moet dus je eerste SELECT query een UPDATE query maken, en dan met mysql_affected_rows kijken hoeveel er aangepast zijn.

Alleen weet ik niet wat je bedoeling was, want je kan ook een SELECT query doen en dan met mysql_num_rows kijken hoeveel rows er zijn gevonden

Succes
 
Arjan -

Arjan -

09/09/2011 14:09:09
Quote Anchor link
Unique key op de user id en beurs id,en vervolgens gebruik maken van ON DUPLICATE KEY UPDATE

Vele malen gemakkelijker.

Edit: haal de where weg en maak een unique key aan. Dan moet het lukken met on duplicate key
Gewijzigd op 09/09/2011 14:27:09 door Arjan -
 
Mike de jong

Mike de jong

09/09/2011 15:30:18
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?
$results
= mysql_num_rows($sql);
if ($results > 0)
{

   UPDATE SQL
}
else
{
 INSERT INTO
}
?>

dit werkt nu thanks allemaal


duplicate key gaat helaas niet omdat ik echt de where nodig heb.
Gewijzigd op 09/09/2011 15:31:03 door Mike de jong
 
Arjan -

Arjan -

09/09/2011 18:41:53
Quote Anchor link
Mike de jong op 09/09/2011 15:30:18:
duplicate key gaat helaas niet omdat ik echt de where nodig heb.


Dan begrijp je het principe van de duplicate key niet...

Als je in de database aangeeft dat één of een combinatie van meerdere velden uniek moeten zijn, betekent dit dat wanneer een al bestaande combinatie in de database wordt ingevoerd je normaliter een foutmelding terug krijgt.
Wanneer je gebruik maakt van ON DUPLICATE KEY UPDATE ... dan krijg je geen foutmelding, maar kan je een update op die rij toepassen.
Dus hij pakt dan automatisch de juiste rij en update de velden.

Zoals

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
INSERT INTO
    tabel
    (
    veld1_uniek,
    veld2_uniek,
    veld3,
    veld4
    )
VALUES
    (
    '1',
    '2',
    '3',
    '4'
    )
ON DUPLICATE KEY UPDATE
    veld3 = '3',
    veld4 = '4'


Wanneer veld1 = '1' en veld2 = '2' al bestaat in de database dan zorgt bovenstaande query ervoor dat veld3 en veld4 gewijzigd worden waar veld1 = '1' en veld2 = '2'.

Dus dan heb je in plaats van 3 queries, maar 1 query nodig... (lijkt mij een stuk efficiënter, waarbij je het werk overlaat aan de database)
Gewijzigd op 09/09/2011 18:43:05 door Arjan -
 



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.