sql formaat

Hulp nodig bij een modificaties of op zoek naar een MOD?
Forumregels

LEES: Richtlijnen voor Support. Vul de support template in!
phpBB3.0.x
Verschaf iemand geen servertoegang tenzij het niet anders kan. Maak altijd eerst een volledige backup en verander de inloggevens na afloop. Eigen risico.
Plaats reactie
Danny19740706
Berichten: 136
Lid geworden op: 12 jun 2010, 18:46

sql formaat

Bericht door Danny19740706 » 27 jan 2011, 09:44

  • Adres van je forum: http://
    Event. modificaties op je forum:
    Wanneer ontstond het probleem?
    phpBB versie:phpbb 308


    Heb je onlangs iets veranderd aan je forum?
    Wat is het probleem?

Hey mensen.
ik heb deze sql zelf even gefabriceert.
alleen heb ik het idee dat die niet goed is....
de bedoeling is dat deze een extra punten veld aanmaak in de database,
ook wil ik elk veld koppelen aan elke gebruiker.

Code: Selecteer alles

SQL-query: 
CREATE TABLE `points` (
`punten` TINYINT( 0 ) DEFAULT '0' NOT NULL ) TYPE = MYISAM COMMENT = 'punten';

de bedoeling is nml dat ik in mn phpbb een extra database heb met daarin een veldje punten, die ik dan koppel aan de gebruiker.
waardoorik dus elk lid afzonderlijk punten kan geven.
dit is de eerste keer dat ikzelf een sql maak hha
dus excusses als er fouten in zitten.
maar goed hoe schrijf ik hier nu punten naar toe weg en hoe koppel ik deze aan de leden?

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: sql formaat

Bericht door Ger » 27 jan 2011, 10:18

Als je geen ervaring hebt met SQL, dan is het een stuk gemakkelijker om zulks gewoon via PhpMyAdmin te doen. Daar heb je een grafische interface die zich grotendeels vanzelf wijst. Bovendien kun je dan eenvoudig 'spieken' bij andere tabellen. ;)

Danny19740706
Berichten: 136
Lid geworden op: 12 jun 2010, 18:46

Re: sql formaat

Bericht door Danny19740706 » 27 jan 2011, 10:25

ja ik ben al aan het snuffelen in de forum1_users stukje om daar het record punten bij te maken, alleen lukt dat niet zo erg.
zijn er geen goede nederlandse websites waar het gebruik van "create"etc.etc opdrachten een beetje goed staan uitgelegd?

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: sql formaat

Bericht door Ger » 27 jan 2011, 10:30

Nederlands weet ik zo 1-2-3 niet, maar misschien helpt W3 Schools je?

Danny19740706
Berichten: 136
Lid geworden op: 12 jun 2010, 18:46

Re: sql formaat

Bericht door Danny19740706 » 27 jan 2011, 10:41

eens ff gaan kijken tnx

Danny19740706
Berichten: 136
Lid geworden op: 12 jun 2010, 18:46

Re: sql formaat

Bericht door Danny19740706 » 27 jan 2011, 10:59

yes dat is stap 1 hahah

Code: Selecteer alles

ALTER TABLE `forum1_users` ADD `punten` VARCHAR(10) DEFAULT '0' NOT NULL;
ik kan varchar(10) toch wel gebruiken voor enkel cijfers?

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: sql formaat

Bericht door Ger » 27 jan 2011, 11:39

Kan, maar het is niet logisch. Zie dit overzicht. Het lijkt me beter een datatype te kiezen uit de Number types wat past bij hetgeen wat je wil.

Danny19740706
Berichten: 136
Lid geworden op: 12 jun 2010, 18:46

Re: sql formaat

Bericht door Danny19740706 » 27 jan 2011, 12:49

oke , mooi
maar ik kom nog niet helemaal uit die tuts en voorbeelden.
wat mij brengt bij het volgende:

dit is wat ik uit de tuts begrijp.
de bedoeling is dus telkens als ik dit aanroep moet bij het lid waar ik dan mee bezig ben (phpbb308) de puntenwaarde met 1 punt worden verhoogd.
alleen ik krijg een foutmelding dat de syntax niet klopt.
tja sorry maar ik ben nog niet zon databasekei.
dit is mijn database structuur:
localhost --> forum --> forum1_users --> punten
tevens zitten in dezelfde ook de gebruikersnamen.
localhost --> forum --> forum1_users --> usernames

tnx

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: sql formaat

Bericht door Ger » 27 jan 2011, 13:19

Volgens mij moet zoiets werken:

Code: Selecteer alles

UPDATE forum1_users SET punten = punten + 1 WHERE user_id = gebruikersnummer

Danny19740706
Berichten: 136
Lid geworden op: 12 jun 2010, 18:46

Re: sql formaat

Bericht door Danny19740706 » 27 jan 2011, 14:22

hey ja top dit werkt elke keer als ik op de knop druk krijgt het ingevulde lid het aantal punten bijgeschreven.

nu heb ik dit in orde, maar als ik nu de ingevoerde naam wil checken op 2 plaatsen doe ik dit toch?

Code: Selecteer alles

if (mysql_connect(localhost,gebr.naam,wachtwoord)) {
if (mysql_select_db(database naam)) {
$query = "UPDATE forum1_users SET punten = punten + $aantalpunten  WHERE username = '$username' OR WHERE username_clean = '$username'";
$result = mysql_query ($query);

                               }};

Danny19740706
Berichten: 136
Lid geworden op: 12 jun 2010, 18:46

Re: sql formaat

Bericht door Danny19740706 » 27 jan 2011, 14:24

Danny19740706 schreef:hey ja top dit werkt elke keer als ik op de knop druk krijgt het ingevulde lid het aantal punten bijgeschreven.

nu heb ik dit in orde, maar als ik nu de ingevoerde naam wil checken op 2 plaatsen doe ik dit toch?

Code: Selecteer alles

if (mysql_connect(localhost,gebr.naam,wachtwoord)) {
if (mysql_select_db(database naam)) {
$query = "UPDATE forum1_users SET punten = punten + $aantalpunten  WHERE username = '$username' OR WHERE username_clean = '$username'";
$result = mysql_query ($query);

                               }};

heb het al gevonden tnx

Code: Selecteer alles

if (mysql_connect(localhost,gebr.naam,wachtwoord)) {
if (mysql_select_db(database naam)) {
$query = "UPDATE forum1_users SET punten = punten + $aantalpunten  WHERE username = '$username' OR username_clean = '$username'";
$result = mysql_query ($query);

                               }};

Gebruikersavatar
Jeroen
Berichten: 3639
Lid geworden op: 10 mei 2008, 21:22

Re: sql formaat

Bericht door Jeroen » 27 jan 2011, 14:59

Verplaatst van 3.0 Support
- Jeroen
Jeroen

Danny19740706
Berichten: 136
Lid geworden op: 12 jun 2010, 18:46

Re: sql formaat

Bericht door Danny19740706 » 27 jan 2011, 15:35

nou het invoeren werkt.
slaat netjes op in de database bij de ingevulde naam.
nu wil ik dat weer uitlezen.
en natuurlijk gaat er weer wat fout...
dit heb ik nu

Code: Selecteer alles

 $sql = 'SELECT     punten
        FROM     forum1_users
        WHERE     username = $username';

echo $username;
echo $punten;
$username is dan de naam die ik ingevuld heb op het eerste formpje.
kortom wil ik een klein overzicht maken van diegene die ik net punten heb bijgeschreven, hoeveel deze nu heeft.
dus eigenlijk nadat ik de punten heb bijgeschreven wil ik via dit stukje zien hoeveel de persoon totaal heeft.

en is er een manier om alle leden op te halen met erachter het aantal punten dat zij hebben..

(dit is het formpje waar ik alles invul.)

Code: Selecteer alles

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html lang="nl">
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8">
	<title>Formuliertje</title>
</head>
<body>
<h3>Hierbij kunt u uw gegevens invullen en versturen.</h3>
<form action="FormulierAfhandeling.php" method="post">
<p>punten: <input name="aantalpunten" type="text" size="30" maxlength="80"></p>
<p>naam: <input name="username" type="text" size="30" maxlength="80"></p>

<p><input name="Submit" type="submit"></p>
</form>
</body>
</html>

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: sql formaat

Bericht door Ger » 27 jan 2011, 16:01

Code: Selecteer alles

$sql = 'SELECT     punten
        FROM     forum1_users
        WHERE     username = $username';
Als je het zo neerzet, dan wordt er gezocht naar de gebruiker genaamd $username. Beter is:

Code: Selecteer alles

$sql = 'SELECT     punten
        FROM     forum1_users
        WHERE     username = '. $username;
Nu wordt de variabele wel verwerkt.

Vervolgens moet je de query uitvoeren:

Code: Selecteer alles

$result = mysql_query ($sql);
En fetchen:

Code: Selecteer alles

$output = mysql_fetch_assoc($result);
Je vind het nu in $output['punten'].

Danny19740706
Berichten: 136
Lid geworden op: 12 jun 2010, 18:46

Re: sql formaat

Bericht door Danny19740706 » 27 jan 2011, 16:49

hey tnx.
heb het getest maar ik krijg een foutmelding....
hier nog eens zoals het er nu uitziet:
hier het inschrijfform...

Code: Selecteer alles

<body>
<form action="FormulierAfhandeling.php" method="post">
<p>punten: <input name="aantalpunten" type="text" size="30" maxlength="80"></p>
<p>naam: <input name="username" type="text" size="30" maxlength="80"></p>
<p><input name="Submit" type="submit"></p>
</form>
</body>
</html>
en hier de verwerking

Code: Selecteer alles

<?
// Eventueel is de informatie ook in een database op te slaan
$aantalpunten = $_POST['aantalpunten'];
$username = $_POST['username'];

$formsent = mail('jouw@email.nl',
		'Gegevens afkomstig van formuliertje.htm',
		"Naam: $aantalpunten $username\r\n
		Bericht: $BeRicht",
		"From: $EmailAdres\r\nBounce-to: jouw@email.nl");
if ($formsent) {
	echo "<p>Hallo $username;,<br><br> We hebben je bericht ontvangen.
	We zullen je indien nodig zo spoedig mogelijk een antwoord sturen.</p>";
	} else {
	echo "<p>Sorry, maar er is iets misgegaan met het formulier, probeer
	het later nog eens.</p>";
	}

	if (mysql_connect(localhost,******4,********)) {
if (mysql_select_db(forum)) {
$query = "UPDATE forum1_users SET punten = punten + $aantalpunten  WHERE username = '$username' OR username_clean = '$username'";
$result = mysql_query ($query);
                               }};
$sql = 'SELECT     punten
        FROM     forum1_users
        WHERE     username = '. $username;

$result = mysql_query ($sql);
$output = mysql_fetch_assoc($result);
$output['punten'];

echo $aantalpunten;


?>
en hier loopt die op vast:
$output = mysql_fetch_assoc($result);

kortom het updaten van de punten is gelukt, nu wil ik de boel ook weer uitlezen.
dus na het versturen van de data, dat er dus komt te staan, de naam van diegene die ik punten heb gegeven
en hoeveel punten deze totaal nu heeft.
dus :

Code: Selecteer alles

 $aantalpunten + punten 
oja let niet zo op de extra regels, die vis ik er later weer uit, tis een emailformpje geweest.

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: sql formaat

Bericht door Ger » 27 jan 2011, 17:29

Je zegt dat-ie vastloopt. Wat voor melding krijg je dan?

Danny19740706
Berichten: 136
Lid geworden op: 12 jun 2010, 18:46

Re: sql formaat

Bericht door Danny19740706 » 27 jan 2011, 18:35

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/vhosts/geilpunt.nl/httpdocs/puntensysteem/FormulierAfhandeling.php on line 40


en dit:
$output = mysql_fetch_assoc($result);
staat op lijn 40

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: sql formaat

Bericht door Ger » 27 jan 2011, 19:17

Dat is raar. $result is een MySQL result resource van $result = mysql_query ($sql);
Doe anders voor die regel eens een print_r($result); gevolgd door een die();
Wat krijg je dan te zien?

Plaats reactie