PHP/MYSQL is vrij onlogisch in het toepassen van quotes, double qoutes en backticks zoals " ' ` .
Als ik CREATE TABLE `$var` doe dan werkt dat, maar bij een andere query zoals INSERT INTO niet.
Ik krijg de volgende foutmelding
Fout:
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 ''.` `.' (linkoms, linkadd) VALUES ( 'aaa', 'http://www.aa.com' )' at line 1
zijn toegevoegd aan de database (regel 2)
Waarom verschillende tabellen voor dezelfde informatie?
Deze hele discussie is nogal zinloos als de database-opzet verkeerd is / veranderd moet worden.
Het heeft geen zin een situatie te bestuderen waarvan je weet / vermoedt dat deze niet klopt wanneer iets zijn ding niet doet. Haal eerst de fout(en) eruit en kijk dan of het probleem nog speelt.
Iedereen is nu druk bezig met het paard achter de wagen te spannen als je het mij vraagt.
Nogmaals: waarom sla je deze informatie op in verschillende tabellen?
Er zijn andere (en betere) manieren om je data te categoriseren.
EDIT: Daarnaast geef je ons maar de halve puzzel. In geen enkel bericht van jou staat het formulier waar de data vandaan komt. Hoe verwacht je van ons dat we dit fatsoenlijk kunnen analyseren (laat staan oplossen)?
Nogmaals: waarom sla je deze informatie op in verschillende tabellen?
Er zijn andere (en betere) manieren om je data te categoriseren.
EDIT: Daarnaast geef je ons maar de halve puzzel. In geen enkel bericht van jou staat het formulier waar de data vandaan komt. Hoe verwacht je van ons dat we dit fatsoenlijk kunnen analyseren (laat staan oplossen)?
Het invoer formulier voor linkoms en linkadd is als volgt:
Ik wist niet dat het zo belangrijk was. De tabel is zoals je weet variabel. Deze kun je kiezen mbv een checkbox. Dit is een apart script en een aparte pagina.
Ik ben verder totaal onbekend met programmeren en php maar het lukt dus wel om met $_POST['kolom2'] de inhoud te echoen of met var_dump op te halen.
Even verderop in het script werkt het niet meer.
Is dit een soort mechanisme van php? Of is het onlogisch om dingen dubbel te doen? Ik gebruik exact dezelfde code maar het resultaat is niet hetzelfde.
[quote="- SanThe - op 02/07/2015 11:11:22"]
Op diverse plaatsen gebruik je = in een if().
Een = is een toekenning en geen vergelijking.
Een vergelijking is == of ===.
Heb je dit al gecontroleerd?
Ik zie nog staads = in de if().
[/quote]
Voor een beginnende onervaren programmeur is het niet gelijk makkelijk te begrijpen wat nu het verschil is tussen == en === en vooral; met welke reden wordt het toegepast. Ik zoek er het eea over maar een goede manual over het gebruik van deze operatoren icm if vind ik niet.
Is er zo'n manual online en waar kan ik die vinden?
Hmm ok ik heb al wat meer tuts gevonden. Het lijkt er op dat == en === gewoon iets strenger zijn.
De if beslissing is niet altijd eenvoudig vooral als er meerdere vergelijkingen worden gemaakt.
Ik kan wel == of === gebruiken, maar de if beslissing werkt eerst wel, echter na een extr if niet. Gebruik ik deze afzonderlijk in een apart script dan werkt deze if beslissing wel.
stel ik heb een if beslissing zoals:
if (isset($_POST['kolom2'] )
hoe zeg ik dat in gewone taal zeg maar.
Of dit
if (($_POST['kolom2'] == TRUE)
en dan hebben we het over een select deel van de mogelijkheden. Voor beginnende onervaren programmeurs is dat noodzakelijke kennis en vooral Wat, Wanneer en Waar het toegepast moet worden.
Op de plek van de .... moet iets (een expressie) komen die -met wat goede wil- tot TRUE of FALSE leidt.
Voorbeeld:
if( 1 > 2)
Als 1 groter is dan 2. Dat is niet het geval, dus 1 > 2 levert FALSE.
PHP voert dus niet uit wat er na if komt.
if( 'a' == 'b')
ook dat is niet het geval, dus false.
behalve getallen of strings mag een expressie ook een functie zijn.
isset() is zo'n functie.
vertaald: bestaat()
dus if( isset($a) )
Als $a bestaat, dan levert isset() true op.
Gezien vanuit de if() staat er dan if( TRUE )
en je kunt een hele ketting van al dan niet geneste functies plaatsen tussen de haakjes van if(), maar uiteindelijk moet het iets worden dat voor PHP is terug te leiden tot
if(true) of if(false).
<?php if($_POST['kolom2'] == TRUE) ?>
dat is een slecht voorbeeld
Omdatt $_POST van buiten komt, is het niet zeker dat deze bestaat. En waarschijnlijk wil je dat controleren.
Hier vraag je of $_POST['kolom2'] gelijk is aan TRUE.
Nu komen post-waarden binnen als een string. Dat kan dus niet true zijn.
"gelukkig" en daarom schreef ik hierboven -met wat goede wil- is PHP bereid om alles dat "leeg" is tot FALSE te bombarderen en de rest naar true.