insert met foutmelding

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dick Tol

Dick Tol

07/11/2012 12:42:07
Quote Anchor link
Met INSERT voeg ik nieuwe rijen in mijn database 'rooster' toe.

In elke rij heb ik 150 kolomnamen.

Als ik in rij 1 de kolomnaam nederlands heb aangevinkt, wil ik dat deze in rij 2 niet meer aangevinkt kan worden.

Hoe kan ik dat in mijn query verwerken?


$query = "INSERT INTO rooster (roosterid, maatschappijleer, nederlands,engels)
VALUES (

'". $_POST['roosterid'] ."',
'". $_POST['maatschappijleer'] ."',
'". $_POST['nederlands'] . "',

0
)";
$result = mysql_query($query) or die ("Something really did not go well: ".mysql_error());
if ($result) { }
}
 
PHP hulp

PHP hulp

30/12/2024 15:34:06
 
John D

John D

07/11/2012 12:53:28
Quote Anchor link
Met 150 kolommen is je datamodel vermoedelijk niet zoals het hoort. Je zal dus helemaal moeten programmeren dat het niet dubbel voor kan komen in je kolommen. In een goed datamodel kan je in MySQL uniciteit afdwingen met een unique index op één of meerdere velden.
Gewijzigd op 07/11/2012 12:54:03 door John D
 
Obelix Idefix

Obelix Idefix

07/11/2012 13:02:56
Quote Anchor link
Dick Tol op 07/11/2012 12:42:07:
Met INSERT voeg ik nieuwe rijen in mijn database 'rooster' toe.

Als ik in rij 1 de kolomnaam nederlands heb aangevinkt, wil ik dat deze in rij 2 niet meer aangevinkt kan worden.

Ik zie $_POST-waarden in je query dus komt de info vanuit een formulier. Lijkt me dat je dat dan in het formulier zult moeten aanpassen/verwerken, niet in je insert-query. Dan ben je al te laat: de query voert uit wat er vanuit het formulier is binnengekomen.
Gewijzigd op 07/11/2012 13:03:18 door Obelix Idefix
 
Dick Tol

Dick Tol

07/11/2012 13:30:35
Quote Anchor link
Ik werk in PHPMyAdmin waar ik geen unique index heb.

Hoe kan ik programmeren dat een vinkje niet dubbel kan voorkomen?

Obelix en Idefix hebben gelijk dat ik een formulier gebruik om de gegevens in de database te plaatsen. Dat doe ik met

<input type="checkbox" name="maatschappijleer"
value="maantschappijleer"/>maatschappijleer
<input type="checkbox" name="nederlands"
value="nederlands"/>nederlands

Wat moet ik hierin dan veranderen?
 
Marvin H

Marvin H

07/11/2012 14:04:38
Quote Anchor link
Geen checkboxen gebruiken maar Radio Buttons... ervoor zorgen dat je maar een checkbox kan aanvinken is lastig en kan je eigenlijk alleen bereiken via javascript... met een radiobutton kan het wel, als je ze allemaal dezelfde name= geeft.
 
John D

John D

07/11/2012 16:38:10
Quote Anchor link
Dick Tol op 07/11/2012 13:30:35:
Ik werk in PHPMyAdmin waar ik geen unique index heb.

Hoe kan ik programmeren dat een vinkje niet dubbel kan voorkomen?

Obelix en Idefix hebben gelijk dat ik een formulier gebruik om de gegevens in de database te plaatsen. Dat doe ik met

<input type="checkbox" name="maatschappijleer"
value="maantschappijleer"/>maatschappijleer
<input type="checkbox" name="nederlands"
value="nederlands"/>nederlands

Wat moet ik hierin dan veranderen?
Prima toch, dan kan je nederlands toch maar 1x aanvinken??
 
Dick Tol

Dick Tol

07/11/2012 17:02:54
Quote Anchor link
Maar als ik een nieuwe rij hieraan toevoeg, wil ik bijvoorbeeld kunnen uitsluiten dat Nederlands aangevinkt wordt, omdat hij in de vorige rij al is aangevinkt.

Volgens mij kan ik dat alleen via een query oplossen, maar ik weet niet hoe.
 
Obelix Idefix

Obelix Idefix

07/11/2012 17:56:41
Quote Anchor link
Kun je niet met een (insert)query oplossen, omdat die query de gegevens uit je formulier verwerkt.

Je zult het dan eerder in de richting van javascript (Ajax / jquery?) moeten zoeken.
 
Dick Tol

Dick Tol

07/11/2012 21:34:55
Quote Anchor link
Dank je wel.

Ik weet nog niet hoe ik het op moet lossen, maar ik weet in ieder geval wel zeker dat het niet met een query kan.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

07/11/2012 21:47:07
Quote Anchor link
John D op 07/11/2012 12:53:28:
Met 150 kolommen is je datamodel vermoedelijk niet zoals het hoort.
....

Daar schort het dus aan. Verdere discussie overbodig
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.