Elke keer 1 erbij
Hey, ik zit met een probleem,
ik wil dat als ik toevoeg in de database dat bij 'test' elke keer 1 erbij komt maar dat je ook 1 eraf kan halen. Hoe doe ik dat?
ik wil dat als ik toevoeg in de database dat bij 'test' elke keer 1 erbij komt maar dat je ook 1 eraf kan halen. Hoe doe ik dat?
UPDATE ..... SET veld = veld + 1 WHERE .......
Heb je het soms over een id (met auto_increment) waarvan het nummer moet worden gewijzigd? Zo ja, vergeet dan dat je deze vraag ooit hebt gesteld en blijf met je vingers van de auto_increment af. Dit heeft geen enkele betekenis voor wie of wat dan ook, het is uitsluitend om een uniek record te herkennen en niet meer dan dat.
@frank: Nee het heeft geen auto increment
@SanThe: Ik kijk ff of hij het doet
En ik heb nog een vraag, wat is er hier aan fout?
Ik krijg deze fout:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\xampp\htdocs\php-fusion\addproject.php on line 22
@SanThe: Ik kijk ff of hij het doet
En ik heb nog een vraag, wat is er hier aan fout?
Ik krijg deze fout:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\xampp\htdocs\php-fusion\addproject.php on line 22
Code (php)
1
2
3
2
3
$sql = "SELECT projects FROM projects WHERE author = {$userdata['user_name']}";
$result = mysql_query($sql);
if(mysql_num_rows($result) < 4)
$result = mysql_query($sql);
if(mysql_num_rows($result) < 4)
Gewijzigd op 01/01/1970 01:00:00 door Raymen
Fout in query, geen foutafhandeling...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$sql = "SELECT projects FROM projects WHERE author = '".$userdata['user_name']."'";
$result = mysql_query($sql);
if(!$result)
{
trigger_error(mysql_error());
}
else
{
if(mysql_num_rows($result) < 4)
{
}
}
?>
$sql = "SELECT projects FROM projects WHERE author = '".$userdata['user_name']."'";
$result = mysql_query($sql);
if(!$result)
{
trigger_error(mysql_error());
}
else
{
if(mysql_num_rows($result) < 4)
{
}
}
?>
Foutafhandeling vergeten. Is de query wel gelukt?
$vars buiten quotes houden.
Edit: Foutje hersteld.
$vars buiten quotes houden.
Code (php)
1
2
3
2
3
<?php
$sql = "SELECT projects FROM projects WHERE author = '" . $userdata['user_name'] . "'";
?>
$sql = "SELECT projects FROM projects WHERE author = '" . $userdata['user_name'] . "'";
?>
Edit: Foutje hersteld.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
@iedereen, me 2e probleem is opgelost, me 1e nog niet :(
en hoe doe ik dat met insert?
?
'SanThe:
UPDATE ..... SET veld = veld + 1 WHERE .......
en hoe doe ik dat met insert?
?
Gewijzigd op 01/01/1970 01:00:00 door Raymen
Als je INSERT dan voeg je een nieuw record toe. Dus je zet de waarde bij VALUES.
ok, ik heb dit nu maar ik krijg deze error:
Unknown column 'projects' in 'field list'
Unknown column 'projects' in 'field list'
Geen idee hoe jouw datamodel er uitziet, maar de kolom projects ontbreekt in elk geval. Wellicht een tikfout?
(export van me fusion_users tabel)
Ik zie geen typfoutje :S
Ik zie geen typfoutje :S
moet die = wel??
ik heb het al, het was een andere query (dom van mij, srry) xD
Gewijzigd op 01/01/1970 01:00:00 door Raymen
Het is dan altijd nog:
hij doet het maar het probleem nou is... hij doet niet elke keer +1 als hij het update :(
Elke keer dat je deze query uitvoert zal de huidige waarde van projects met 1 opgehoogd worden. Wat is je probleem, 'hij doet niet elke keer +1 als hij het update' is wel erg onduidelijk omschreven...
nou hij word niet als ik deze query uitvoer opgehoogd met 1
Gewijzigd op 01/01/1970 01:00:00 door Raymen
Laat je script eens zien waarin je deze query gebruikt. Hoe kom je aan $username, bestaat die variabele wel? Heeft de variabele wel de juiste waarde?
Waar controleer jij hoeveel records er zijn bijgewerkt? Dat je de query uitvoert, wil niet zeggen dat er iets wordt bijgewerkt, zie de WHERE.
Met mysql_affected_rows() kun je opvragen hoeveel records er zijn bijgewerkt. Uiteraard controleer je of de query uberhaubt wel is uitgevoerd.
Met mysql_affected_rows() kun je opvragen hoeveel records er zijn bijgewerkt. Uiteraard controleer je of de query uberhaubt wel is uitgevoerd.
Code (php)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
error_reporting (E_ALL);
require_once "maincore.php";
require_once "subheader.php";
require_once "side_left.php";
include LOCALE.LOCALESET."project.php";
opentable($locale['400']);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$date = date("d-m-Y H:i");
$username = $userdata['user_name'];
$sql = "INSERT INTO projects (id, name, description, author, date, progress, game, xgame, type)
VALUES('', '" . mysql_real_escape_string($_POST['name']) . "', '" . mysql_real_escape_string($_POST['description']) . "', '" . mysql_real_escape_string($_POST['author']) . "', '" . mysql_real_escape_string($date) . "', '" . mysql_real_escape_string($_POST['progress']) . "', '" . mysql_real_escape_string($_POST['game']) . "', '" . mysql_real_escape_string($_POST['xgame']) . "', '" . mysql_real_escape_string($_POST['type']) . "')";
mysql_query($sql) or die(mysql_error());
$query = "UPDATE fusion_users SET projects = ++ WHERE user_name ='".$username."'";
mysql_query($query) or die (mysql_error());
echo "Uw Project is toegevoegd";
}else
{
$sql = "SELECT projects FROM fusion_users WHERE user_name = '".$userdata['user_name']."'";
$result = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($result) < 4)
{
?>
<table border="0"><form method="post" action="addproject.php" enctype="multipart/form-data">
<tr><td width="40%">Project Naam:</td><td><input type="text" size="20" class='textbox' maxlength="20" name="name">(Max 20 chars)</td></tr>
<tr><td width="40%">Project Beschrijving:</td><td><textarea name="description" class='textbox' style='width:100%;' rows="8" cols="31"></textarea></td></tr><tr><td width="40%">Game:</td><td>
<select name="game" class='textbox'<option value="cod">CoD</option><option value="coduo">CoD:UO</option><option value="cod2">CoD2</option><option value="web">Web(site/page)</option><option value="other">Other</option></select>
<select name="xgame" class='textbox'><option value=""></option><option value="sp">SP</option><option value="mp">MP</option><option value="spmp">SP+MP</option></select>
</td></tr><tr><td width="40"%>Type:</td><td>
<select name="type" class='textbox'><option value="map">Map</option><option value="mod">Mod</option><option value="html">HTML</option><option value="php">PHP</option><option value="other">Other</option></select>
<input type="hidden" name="author" value="<?php echo $userdata['user_name']; ?>"><input type="hidden" name="progress" value="<?php echo "0"; ?>"></td></tr>
<tr><td width="40%"></td><td><input class='textbox' type="Submit" name="Submit" value="Voeg toe">
</table></form>
<?
}else
{
echo "Je mag maximaal <b>3</b> projecten hebben, verwijder er één als u er nog één wilt toevoegen";
}
}
closetable();
require_once "side_right.php";
require_once "footer.php";
?>
error_reporting (E_ALL);
require_once "maincore.php";
require_once "subheader.php";
require_once "side_left.php";
include LOCALE.LOCALESET."project.php";
opentable($locale['400']);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$date = date("d-m-Y H:i");
$username = $userdata['user_name'];
$sql = "INSERT INTO projects (id, name, description, author, date, progress, game, xgame, type)
VALUES('', '" . mysql_real_escape_string($_POST['name']) . "', '" . mysql_real_escape_string($_POST['description']) . "', '" . mysql_real_escape_string($_POST['author']) . "', '" . mysql_real_escape_string($date) . "', '" . mysql_real_escape_string($_POST['progress']) . "', '" . mysql_real_escape_string($_POST['game']) . "', '" . mysql_real_escape_string($_POST['xgame']) . "', '" . mysql_real_escape_string($_POST['type']) . "')";
mysql_query($sql) or die(mysql_error());
$query = "UPDATE fusion_users SET projects = ++ WHERE user_name ='".$username."'";
mysql_query($query) or die (mysql_error());
echo "Uw Project is toegevoegd";
}else
{
$sql = "SELECT projects FROM fusion_users WHERE user_name = '".$userdata['user_name']."'";
$result = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($result) < 4)
{
?>
<table border="0"><form method="post" action="addproject.php" enctype="multipart/form-data">
<tr><td width="40%">Project Naam:</td><td><input type="text" size="20" class='textbox' maxlength="20" name="name">(Max 20 chars)</td></tr>
<tr><td width="40%">Project Beschrijving:</td><td><textarea name="description" class='textbox' style='width:100%;' rows="8" cols="31"></textarea></td></tr><tr><td width="40%">Game:</td><td>
<select name="game" class='textbox'<option value="cod">CoD</option><option value="coduo">CoD:UO</option><option value="cod2">CoD2</option><option value="web">Web(site/page)</option><option value="other">Other</option></select>
<select name="xgame" class='textbox'><option value=""></option><option value="sp">SP</option><option value="mp">MP</option><option value="spmp">SP+MP</option></select>
</td></tr><tr><td width="40"%>Type:</td><td>
<select name="type" class='textbox'><option value="map">Map</option><option value="mod">Mod</option><option value="html">HTML</option><option value="php">PHP</option><option value="other">Other</option></select>
<input type="hidden" name="author" value="<?php echo $userdata['user_name']; ?>"><input type="hidden" name="progress" value="<?php echo "0"; ?>"></td></tr>
<tr><td width="40%"></td><td><input class='textbox' type="Submit" name="Submit" value="Voeg toe">
</table></form>
<?
}else
{
echo "Je mag maximaal <b>3</b> projecten hebben, verwijder er één als u er nog één wilt toevoegen";
}
}
closetable();
require_once "side_right.php";
require_once "footer.php";
?>
hij heeft de goede waarde want projects werd 1, maar als ik die query nog een keer uitvoer blijft hij 1 :S
Zolang jij niet controleert hoeveel records er daadwerkelijk zijn bijgewerkt, kun je nooit zeker zijn dat jij de juiste query hebt uitgevoerd. De functie mysql_affected_rows() is de enige die duidelijkheid kan verschaffen, ga daar dan ook eens iets mee doen.
Offtopic: $date = date("d-m-Y H:i"); levert geen datum op, alleen maar bugs! Een datum sla je op in een DATE of DATETIME in het formaat yyyy-mm-dd hh:mm:ss. Een ander formaat is fout.
Offtopic: $date = date("d-m-Y H:i"); levert geen datum op, alleen maar bugs! Een datum sla je op in een DATE of DATETIME in het formaat yyyy-mm-dd hh:mm:ss. Een ander formaat is fout.




