Dan heb je niet eens een kolom present nodig. Iedere rij in de database impliceert al dat de gebruiker op die dag aanwezig is. Als iemand niet aanwezig is op een bepaalde dag, komt die combinatie gewoon niet voor.quote:Op maandag 14 februari 2011 15:28 schreef remi1986 het volgende:
Iedere gebruiker heeft een id.
Dan kan je een koppeltabel maken met
date,user_id,present
Als je wil weten welke gebruikers er op een datum komen doe je
SELECT WHERE date=
Als je wil weten op welke datum een bepaalde gebruiker komt
SELECT WHERE user_id =
Zo hoef je geen kolommen of extra tabellen aan te maken
De reden waarom je $kolomnaam krijgt, is omdat je gewoon $kolom in de string hebt staan. Als je de waarde van een php variabele wil, doe jequote:Op maandag 14 februari 2011 14:24 schreef MrNiles het volgende:
omdat ik zat te pielen met
[ code verwijderd ]
en door de opmerking van cablegunmaster over dat php en sql niet door elkaar te gebruiken is (logisch natuurlijk)
heb ik toch nog een vraagje over het toevoegen van een kolom in een tabel
is het volgende niet mogelijk of wel (want het lukt me niet)
[ code verwijderd ]
| 1 | ALTER TABLE tabelnaam ADD ".$kolomnaam." VARCHAR( 3 ) DEFAULT 'o' NOT NULL " ; |
Heb je helemaal gelijk in. Het was ff snel als idee. Met present kan je misschien nog aangeven of er meerdere personen komen. Maar inderdaad, in mijn uitleg daaronder is de present kolom niet nodig. Excuses...quote:Op maandag 14 februari 2011 15:34 schreef Light het volgende:
[..]
Dan heb je niet eens een kolom present nodig. Iedere rij in de database impliceert al dat de gebruiker op die dag aanwezig is. Als iemand niet aanwezig is op een bepaalde dag, komt die combinatie gewoon niet voor.
Je vergeet de backticks.quote:Op maandag 14 februari 2011 15:34 schreef remi1986 het volgende:
[..]
De reden waarom je $kolomnaam krijgt, is omdat je gewoon $kolom in de string hebt staan. Als je de waarde van een php variabele wil, doe je
[ code verwijderd ]
En wat ik zelf altijd doe, als extra veiligheid is PHP variablen escapen met mysql_real_escape_string().
Ik snap niet helemaal wat de schrijver van die tekst bedoelt. In onderstaande voorbeeld bewijst hij juist toch dat je ze wel moet gebruiken?quote:Op maandag 14 februari 2011 15:43 schreef remi1986 het volgende:
[..]
Backticks gebruik ik nooit
http://www.pfz.nl/wiki/backticks/
Tenzij hij bedoelt dat je geen reserved words als kolomnamen moet gebruiken, maar dan nog maakt het niet uit als je backticks gebruikt.quote:Maar het kan nog veel erger. Gereserveerde woorden hebben in SQL een betekenis. Woorden zoals DELETE en DROP hebben zelfs een gevaarlijke betekenis.
SELECT
`delete`
FROM
tabel;
Dit selecteert de kolom 'delete' uit de tabel.
SELECT
delete
FROM
tabel;
Zonder backticks selecteert dit de uitkomst van de DELETE query die zojuist je tabel heeft geleegd.
| 1 2 3 4 | CREATE TABLE group ( 'group' INT NOT NULL , 'tekst' INT NOT NULL ) ENGINE = MYISAM |
| 1 2 3 4 | CREATE TABLE group1 ( 'group1' INT NOT NULL , 'group2' INT NOT NULL ) ENGINE = MYISAM |
| 1 | ALTER TABLE tabelnaam ADD ".$kolomnaam." VARCHAR( 3 ) DEFAULT 'o' NOT NULL |
Remy1986...als je zegt dat dit werkt..leg me het volgende dan eens uitquote:De reden waarom je $kolomnaam krijgt, is omdat je gewoon $kolom in de string hebt staan. Als je de waarde van een php variabele wil, doe je
[code]ALTER TABLE tabelnaam ADD ".$kolomnaam." VARCHAR( 3 ) DEFAULT 'o' NOT NULL " ; [/code]En wat ik zelf altijd doe, als extra veiligheid is PHP variablen escapen met mysql_real_escape_string().
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php ini_set('display_errors', 'On'); error_reporting(E_ALL); $con = mysql_connect("localhost","login",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("login", $con); $id = "zooi"; $commando="ALTER TABLE optredens_gebruikers ADD ".$id." VARCHAR( 3 ) DEFAULT 'o' NOT NULL " ; mysql_query($commando); mysql_close($con); ?> |
| 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 | <?php ini_set('display_errors', 'On'); error_reporting(E_ALL); $con = mysql_connect("localhost","login",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("login", $con); $datum=$_POST['datum']; $dagdeel=$_POST['dagdeel']; $wat=$_POST['wat']; $waar=$_POST['waar']; $sql="INSERT INTO optredens(datum, dagdeel, wat, waar) VALUES ('$datum','$dagdeel','$wat','$waar')"; mysql_query($sql); // Formulier succes! echo '<p>Je hebt het optreden succesvol toegevoegd!</p>'.'<br />'; echo " Datum: $datum <br />"; echo " Dagdeel: $dagdeel<br />"; echo " Wat: $wat<br />"; echo " Waar: $waar<br />"; $bla = mysql_insert_id(); echo $bla; $id = $bla; $commando="ALTER TABLE optredens_gebruikers ADD ".$id." VARCHAR( 3 ) DEFAULT 'o' NOT NULL " ; mysql_query($commando); echo "1 record added"; mysql_close($con); ?> |
| 1 2 3 | <?php $query=mysql_query($commando) or die(mysql_error()); ?> |
is goed...de waarde komt van een auto_incrementquote:Weet je zeker dat $bla goed is? Wat geeft die voor waarde dan?
In de tabel van optredens, heb je daar een auto_increment field? Dan zou het goed moeten gaan....
Daar waar ik nooit numerieke waarden als kolomnaam zou gebruiken heeft GlowMouse gelijk. Je moet daarvoor wel backticks gebruiken.quote:Op dinsdag 15 februari 2011 10:59 schreef MrNiles het volgende:
[..]
is goed...de waarde komt van een auto_increment
bijv 121
testje zal ik later doen..vergadering..en ik ben al te laat..shit
quote:Op maandag 14 februari 2011 15:06 schreef KomtTijd... het volgende:
[..]
Een database is geen spreadsheet!
je kunt gewoon twee kolommen maken, <naam> | <datum_aanwezig>. Dat is toch genoeg?
quote:Op dinsdag 15 februari 2011 11:34 schreef remi1986 het volgende:
Ik zou hier eens zon voorstel voor een databasestructuur moeten maken, waar ik op deze manier kolommen wil toevoegen. Denk dat ik dan op zoek kan naar ander werk
Daarom mijn tip aan jou schrijf het in jip en janneke taal op zodat je laat weten wat je wil.quote:Op dinsdag 15 februari 2011 11:57 schreef MrNiles het volgende:
ik snap het wel...over het aanpassen van de database..en dat het geen spreadsheet is
en ik begrijp ook dat het op een andere manier moet..en dat ga ik ook doen
maar ik was gewoon nieuwsgierig waarom het ene wel lukt en het andere niet...de verklaring dat dat komt omdat het numeriek neem ik meteen voor waarheid aan...
case closed....
mail komt later deze middagquote:Daarom mijn tip aan jou schrijf het in jip en janneke taal op zodat je laat weten wat je wil. (pseudo code).
| 1 2 3 | <?php if (isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && $_SERVER["HTTP_X_REQUESTED_WITH"] == "XMLHttpRequest") ?> |
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |