Elke keer 1 erbij

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Raymen

Raymen

13/11/2006 16:25:00
Quote Anchor link
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?
 
PHP hulp

PHP hulp

12/07/2020 21:21:36
 
- SanThe -

- SanThe -

13/11/2006 16:28:00
Quote Anchor link
UPDATE ..... SET veld = veld + 1 WHERE .......
 
Frank -

Frank -

13/11/2006 16:33:00
Quote Anchor link
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.
 
Raymen

Raymen

13/11/2006 16:39:00
Quote Anchor link
@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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$sql = "SELECT projects FROM projects WHERE author = {$userdata['user_name']}";
$result = mysql_query($sql);
if(mysql_num_rows($result) < 4)
Gewijzigd op 01/01/1970 01:00:00 door Raymen
 
Joren de Wit

Joren de Wit

13/11/2006 16:41:00
Quote Anchor link
Fout in query, geen foutafhandeling...

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
<?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)
    {
    }
}

?>
 
- SanThe -

- SanThe -

13/11/2006 16:43:00
Quote Anchor link
Foutafhandeling vergeten. Is de query wel gelukt?

$vars buiten quotes houden.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= "SELECT projects FROM projects WHERE author = '" . $userdata['user_name'] . "'";
?>

Edit: Foutje hersteld.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Raymen

Raymen

13/11/2006 16:51:00
Quote Anchor link
@iedereen, me 2e probleem is opgelost, me 1e nog niet :(
SanThe schreef op 13.11.2006 16:28:
UPDATE ..... SET veld = veld + 1 WHERE .......

en hoe doe ik dat met insert?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql = "INSERT INTO projects (projects)  VALUES(project + 1)";
?
Gewijzigd op 01/01/1970 01:00:00 door Raymen
 
- SanThe -

- SanThe -

13/11/2006 16:54:00
Quote Anchor link
Als je INSERT dan voeg je een nieuw record toe. Dus je zet de waarde bij VALUES.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= "INSERT INTO projects (projects)  VALUES(1)";
?>
 
Raymen

Raymen

13/11/2006 17:09:00
Quote Anchor link
ok, ik heb dit nu maar ik krijg deze error:
Unknown column 'projects' in 'field list'
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$query = "UPDATE fusion_users SET projects = + 1 WHERE $username='$username'";
echo $query;
 
Frank -

Frank -

13/11/2006 18:38:00
Quote Anchor link
Geen idee hoe jouw datamodel er uitziet, maar de kolom projects ontbreekt in elk geval. Wellicht een tikfout?
 
Raymen

Raymen

13/11/2006 18:45:00
Quote Anchor link
(export van me fusion_users tabel)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
.......
`projects` tinyint(10) NOT NULL default '0',
.......

Ik zie geen typfoutje :S
 
Dion

Dion

13/11/2006 18:52:00
Quote Anchor link
moet die = wel??
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$query
= "UPDATE fusion_users SET projects ?=> = <=? + 1 WHERE $username='$username'";
echo $query;

moet ie niet zo??
$query = "UPDATE fusion_users SET projects + 1 WHERE $username='$username'";
echo $query;
?>
 
Raymen

Raymen

13/11/2006 18:54:00
Quote Anchor link
ik heb het al, het was een andere query (dom van mij, srry) xD
Gewijzigd op 01/01/1970 01:00:00 door Raymen
 
Joren de Wit

Joren de Wit

13/11/2006 18:58:00
Quote Anchor link
Het is dan altijd nog:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$sql
= "
    UPDATE fusion_users
    SET projects = projects + 1
    WHERE username = '"
.$username."'
    "
;
?>
 
Raymen

Raymen

13/11/2006 19:16:00
Quote Anchor link
hij doet het maar het probleem nou is... hij doet niet elke keer +1 als hij het update :(
 
Joren de Wit

Joren de Wit

13/11/2006 19:19:00
Quote Anchor link
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...
 
Raymen

Raymen

13/11/2006 19:20:00
Quote Anchor link
nou hij word niet als ik deze query uitvoer opgehoogd met 1
Gewijzigd op 01/01/1970 01:00:00 door Raymen
 
Joren de Wit

Joren de Wit

13/11/2006 19:24:00
Quote Anchor link
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?
 
Frank -

Frank -

13/11/2006 19:25:00
Quote Anchor link
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.
 
Raymen

Raymen

13/11/2006 19:28:00
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
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";
?>

hij heeft de goede waarde want projects werd 1, maar als ik die query nog een keer uitvoer blijft hij 1 :S
 
Frank -

Frank -

13/11/2006 19:39:00
Quote Anchor link
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.
 

Pagina: 1 2 volgende »



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.