Pagina 1 van 1
sql formaat
Geplaatst: 27 jan 2011, 09:44
door Danny19740706
- 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?
Re: sql formaat
Geplaatst: 27 jan 2011, 10:18
door Ger
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.

Re: sql formaat
Geplaatst: 27 jan 2011, 10:25
door Danny19740706
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?
Re: sql formaat
Geplaatst: 27 jan 2011, 10:30
door Ger
Nederlands weet ik zo 1-2-3 niet, maar misschien helpt
W3 Schools je?
Re: sql formaat
Geplaatst: 27 jan 2011, 10:41
door Danny19740706
eens ff gaan kijken tnx
Re: sql formaat
Geplaatst: 27 jan 2011, 10:59
door Danny19740706
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?
Re: sql formaat
Geplaatst: 27 jan 2011, 11:39
door Ger
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.
Re: sql formaat
Geplaatst: 27 jan 2011, 12:49
door Danny19740706
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
Re: sql formaat
Geplaatst: 27 jan 2011, 13:19
door Ger
Volgens mij moet zoiets werken:
Code: Selecteer alles
UPDATE forum1_users SET punten = punten + 1 WHERE user_id = gebruikersnummer
Re: sql formaat
Geplaatst: 27 jan 2011, 14:22
door Danny19740706
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);
}};
Re: sql formaat
Geplaatst: 27 jan 2011, 14:24
door Danny19740706
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);
}};
Re: sql formaat
Geplaatst: 27 jan 2011, 14:59
door Jeroen
Verplaatst van 3.0 Support
- Jeroen
Re: sql formaat
Geplaatst: 27 jan 2011, 15:35
door Danny19740706
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>
Re: sql formaat
Geplaatst: 27 jan 2011, 16:01
door Ger
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:
En fetchen:
Je vind het nu in
$output['punten']
.
Re: sql formaat
Geplaatst: 27 jan 2011, 16:49
door Danny19740706
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 :
oja let niet zo op de extra regels, die vis ik er later weer uit, tis een emailformpje geweest.
Re: sql formaat
Geplaatst: 27 jan 2011, 17:29
door Ger
Je zegt dat-ie vastloopt. Wat voor melding krijg je dan?
Re: sql formaat
Geplaatst: 27 jan 2011, 18:35
door Danny19740706
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
Re: sql formaat
Geplaatst: 27 jan 2011, 19:17
door Ger
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?