If en MySQL

Overzicht Reageren

Direct weten hoe jij ervoor staat in de arbeidsmarkt?
Rick de Jong

Rick de Jong

15/09/2012 23:26:21
Quote Anchor link
Hallo,

Ik wil graag het volgende realiseren wat niet lukt. Het onderstaande bestand wordt iedere dag 1x uitgevoerd als cron. Als een resultaat uit de kolom dagen '0' is, dan wordt hij gereset naar 31. Ik heb nu dit:

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
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
$datum
     = date("d-m-Y"); // Geeft 15-04-2012

$con = mysql_connect("localhost","***","***");
if (!$con)
  {

  die('Could not connect: ' . mysql_error());
  }


mysql_select_db("***", $con);

$sql4="UPDATE push SET dagen=dagen-1 WHERE id=1";
$sql5= mysql_query("SELECT * FROM push WHERE dagen=0");


if (!mysql_query($sql4,$con))
  {

  die('Mislukt! Error: ' . mysql_error());
  }

echo "- Dag eraf voor push";
echo "<br /><br />";

if (mysql_num_rows($sql5) == 0) {
    $sql6="UPDATE push SET dagen=31 WHERE id=1";
echo "- Push dagen reset naar 31 en aantal naar 300";
}

else {
echo "- Reset nog niet nodig";
}


mysql_close($con)
?>


Waarom werkt dit niet?
Bedankt!
 
PHP hulp

PHP hulp

26/05/2013 03:39:49
 
Obelix en Idefix

Obelix en Idefix

16/09/2012 09:33:10
Quote Anchor link
Rick de Jong op 15/09/2012 23:26:21:
Waarom werkt dit niet?

Wat werkt er niet?
Krijg je foutmeldingen?
 
Eddy E

Eddy E

16/09/2012 11:14:01
Quote Anchor link
Een UPDATE geeft geen rijen terug. En dus werkt mysql_num_rows() natuurlijk niet.
Tadaa....
 
Ger van Steenderen

Ger van Steenderen

16/09/2012 11:20:05
Quote Anchor link
Niet moeilijk doen in PHP, gewoon in de query zelf:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
UPDATE push
SET dagen=IF(dagen-1 > 0, dagen-1, 31)
WHERE id = 1
 
Rick de Jong

Rick de Jong

17/09/2012 10:27:38
Quote Anchor link
Dus we doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql4="UPDATE push SET dagen=IF(dagen-1 > 0, dagen-1, 31) WHERE id = 1";
Gewijzigd op 17/09/2012 10:28:03 door Rick de Jong
 
Stefan van den Broek

Stefan van den Broek

17/09/2012 10:44:55
Quote Anchor link
mysql_num_rows() wordt hier op een select uitgevoerd..

Eddy Erkelens op 16/09/2012 11:14:01:
Een UPDATE geeft geen rijen terug. En dus werkt mysql_num_rows() natuurlijk niet.
Tadaa....

 
- Aar  -
Moderator

- Aar -

17/09/2012 10:57:07
Quote Anchor link
Overigens zijn de namen van je variabelen heel slecht gekozen en onduidelijk ;-)

Toevoeging op 17/09/2012 10:57:17:

Overigens zijn de namen van je variabelen heel slecht gekozen en onduidelijk ;-)
 



Overzicht Reageren