Avatar billede php_programmoer Nybegynder
22. november 2005 - 15:06 Der er 29 kommentarer og
1 løsning

Indsæt og opdater tal i tabel

Ja, hvordan kan jeg automatisk indsætte/opdatere et 5 tal hver gang der er nogle der skriver et indlæg i mit forum, altså hvis jeg nu skriver et indlæg, logget ind som jens. Så skal der fremkomme et 5 tal i tabellen `brugere` i jens's profil under rækken `point`. Og næste gang han skriver opdatere den tallet til 10. Næste gang igen bliver det til 15. osv. Hvordan kan jeg gøre det ?
Avatar billede hmortensen Nybegynder
22. november 2005 - 15:16 #1
INSERT INTO indlaeg blah blah blah
UPDATE brugere SET point = point + 5 WHERE id = x
Avatar billede php_programmoer Nybegynder
22. november 2005 - 15:20 #2
Hvad skal jeg indsætte istedet for x ?
Avatar billede inctor Nybegynder
22. november 2005 - 15:22 #3
det som fastslår dine brugeres nav, id og lign ... men for det meste skriv du bare WHERE id=id .. eller WHERE id=('$id') ... Hvis du har en SELECT som henter Data fra DB ....
Avatar billede hmortensen Nybegynder
22. november 2005 - 15:22 #4
Et id på brugeren, eller lave den om så der står:
WHERE username = 'x'
Avatar billede php_programmoer Nybegynder
22. november 2005 - 15:24 #5
Kan denne bruges:

$s_medlemmer = mysql_query("SELECT id,brugernavn FROM brugere");
WHILE($medlemmer = mysql_fetch_array($s_medlemmer)) {
mysql_query("UPDATE brugere SET point = point + 5 WHERE id = x") or die(mysql_error());
}

?
Avatar billede inctor Nybegynder
22. november 2005 - 15:26 #6
Jaa ..

$s_medlemmer = mysql_query("SELECT id,brugernavn FROM brugere");
WHILE($medlemmer = mysql_fetch_array($s_medlemmer)) {
mysql_query("UPDATE brugere SET point = point + 5 WHERE id=('$id')") or die(mysql_error());
}


prøv dette ....
Avatar billede php_programmoer Nybegynder
22. november 2005 - 15:28 #7
Har lige prøvet inctor's den gav ingen fejl, men den indsætter ikke de 5 point :(
Avatar billede hmortensen Nybegynder
22. november 2005 - 15:29 #8
Hvad er det du forsøger her ??
Nu vil du tilføje 5 point til ALLE brugere, hvis du havde skrevet scriptet rigtigt.
Avatar billede php_programmoer Nybegynder
22. november 2005 - 15:30 #9
Jeg forsøger et slags point rang system, ligsom her på eksperten, forskellen er bare at man her for 5 point pr besked man skriver :)
Avatar billede inctor Nybegynder
22. november 2005 - 15:31 #10
Den opdatere kun brugerens profil , altså den som er logget ind ... altså Brugerens ID opdatere den point+5...
Avatar billede hmortensen Nybegynder
22. november 2005 - 15:31 #11
Så går som jeg skrev først, indsæt beskeden og opdater brugeren.
Avatar billede inctor Nybegynder
22. november 2005 - 15:33 #12
altså , Så hver gang at en trykker Submit eller Send , så er det bare at have en Submit ...
if $action=[$send] {
UPDATE tabel SET point = point+5 WHERE id=('$username');

noget i den stil ..
Avatar billede hmortensen Nybegynder
22. november 2005 - 15:33 #13
inctor, se hvad du har skrevet... Den vil ALDRIG opdatere noget, da id ikke er sat, og alle brugere skal ikke gennemløbes.
Avatar billede hmortensen Nybegynder
22. november 2005 - 15:36 #14
inctor, kan du ikke prøve at sætte dig ind i bare de grundlæggende ting om PHP, før du forsøger at hjælpe andre.

Hvad sker der her??
if $action=[$send]

Hvor kommer $username fra ??
Avatar billede inctor Nybegynder
22. november 2005 - 15:36 #15
ups ... WHERE $id=('$username') ... Den SELECT'er Joo id fra SELECTEN ..
Avatar billede inctor Nybegynder
22. november 2005 - 15:37 #16
Jeg sagde jeg ikk helt kunne huske if Action ...
Avatar billede php_programmoer Nybegynder
22. november 2005 - 15:40 #17
Har lige prøvet din hmortensen :)

Den virker desværre ikke, ingen fejl, den indsætter bare ikke de 5 point når man skriver en besked. Mit dokument ser således ud:

<?php
session_start();

include "mysql.php";
if(isset($_POST['submit'])) {

if(empty($_SESSION['brugernavn']))
{
echo "Du er ikke logget ind, og kan derfor ikke kommentere indlæg. Gå til login side <a href=\"login.php\">her.</a>";
exit;
}
if($_POST['besked'] == "") {
}
$besked = nl2br(htmlentities(addslashes($_POST['besked'])));
$parent = $_POST['id'];
$forfatter = $_SESSION['brugernavn'];
$dato = date('d/m/Y H:i:s');

mysql_query("INSERT INTO kommentar (besked, parent, dato, forfatter) VALUES ('$besked', '$parent', '$dato', '$forfatter')");
// mysql_query("INSERT INTO kommentar VALUES (''$besked','$parent', '$dato', '$forfatter'')") or die(mysql_error());


mysql_query("UPDATE brugere SET point = point + 5 WHERE id = $id") or die(mysql_error());

}
header("Location: laes.php?id=".$_POST['id']);
?>
Avatar billede inctor Nybegynder
22. november 2005 - 15:42 #18
NååR ,,,

WHERE id="$_SESSION['id']";

vil jeg dA tro ...
Avatar billede php_programmoer Nybegynder
22. november 2005 - 15:45 #19
^ har jeg lige prøvet virkede heller ikke, unexpected variable
Avatar billede inctor Nybegynder
22. november 2005 - 15:46 #20
Hmm , så har jeg tastet forkert , sidder ikk ved min egen com , kan først gøre det når jeg kommer hjem ..
Avatar billede hmortensen Nybegynder
22. november 2005 - 16:30 #21
WHERE brugernavn = $_forfatter

tilpas brugernavn til hvad brugerens navn hedder i bruger tabellen.
Avatar billede php_programmoer Nybegynder
22. november 2005 - 16:34 #22
Kan man ikke ændre brugernavn til $session_['brugernavn'] eller lign ?
Avatar billede hmortensen Nybegynder
22. november 2005 - 16:36 #23
Du sætter jo $forfatter lig $_SESSION['brugernavn']
brugernavn skal være feltnavnet i tabellen.
Avatar billede php_programmoer Nybegynder
22. november 2005 - 16:39 #24
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

mysql_query("UPDATE brugere SET point = point + 5 WHERE brugernavn = $_forfatter") or die(mysql_error());
Avatar billede php_programmoer Nybegynder
22. november 2005 - 16:47 #25
Har lige prøvet at ændre $_forfatter til $forfatter - og det virker NÆSTEN!!!!!!

Nu har vi bare sat det forkert samme, for den skriver Unknown column 'Arne' in 'where clause'

og Arne er det brugernavn jeg er logget ind med for at teste om det virker
Avatar billede hmortensen Nybegynder
22. november 2005 - 17:06 #26
Du skal jo have '' om en tekst streng i SQL strengen.
Avatar billede php_programmoer Nybegynder
22. november 2005 - 17:12 #27
Jamen, nu er det jo bare et forkert navn vi har indsat, der står jo at rækken Arne ikke findes, det er jo heller ikke den det skal indsættes i, det er rækken point den skal indsætte det i ! :)
Avatar billede hmortensen Nybegynder
22. november 2005 - 17:17 #28
mysql_query("UPDATE brugere SET point = point + 5 WHERE brugernavn = '".$forfatter."'") or die(mysql_error());
Avatar billede php_programmoer Nybegynder
22. november 2005 - 17:24 #29
Hold kæft hvor det dejligt, det virker nu :)

Læg et svar mester :)

og forresten min point række i mysql ser således ud:

point,varchar,255 er det godt nok eller burde jeg ændre den til noget andet ?
det skal jo virke ordenligt ?
Avatar billede hmortensen Nybegynder
22. november 2005 - 17:26 #30
Ret den til int, så der kan regnes på den.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB