If + SQL instructie vraag
ik zit met de volgende vraag waar ik het maar niet in
men gedachten kan krijgen hoe de code er moet uitzien.
De bedoeling is het volgende.
If
in de tabel een record zit waarin de timestap de datum
van vandaag bevat doe niks
ELSE
insert in de tabel de waarde "none" voor alle velden
en maak dus zo een nieuw record aan.
Iemand die van hulp kan zijn?
thanks alvast,
Yannick
Hoe bedoel je de else?
overal none invullen dus een nieuwe, je bedoelt dus gewoon de record die de timestamp van vandaag heeft verwijderen?
er kan in de tabel maar 1 record staan / dag dus als die record
al bestaat moet het niets doen
bestaat de record nog niet dan moet er een aangemaakt worden
waar in alle velden none/niet/a/b staat wat juist maakt niet uit.
alvast bedankt,
Yannick
Als dat niks oplevert dan INSERT
Code (php)
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
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
<?php
//query maken, misschien kan je het nog iets beter doen dan met now()
//zie net de post van SanThe dus curdate gebruiken ;)
$query = mysql_query("SELECT iets FROM tabel WHERE DATE(date) = CURDATE()");
if($query){
//query gelukt
if(mysql_num_rows($query)== '0'){
//er zijn geen resultaten dus nieuwe erin zetten
$insert = mysql_query("INSERT INTO tabel(veld1,veld2,veld3) VALUES('".mysql_real_escape_string(veld1)."','".mysql_real_escape_string(veld2)."','".mysql_real_escape_string(veld3)."')");
if($insert){
//gelukt
}
else{
//mysql error
echo 'error '.mysql_error();
}
}
else{
//meerdere resultaten, als je niets wil doen kan je deze else weglaten
}
}
else{
//mysql error
echo 'error '.mysql_error();
}
?>
//query maken, misschien kan je het nog iets beter doen dan met now()
//zie net de post van SanThe dus curdate gebruiken ;)
$query = mysql_query("SELECT iets FROM tabel WHERE DATE(date) = CURDATE()");
if($query){
//query gelukt
if(mysql_num_rows($query)== '0'){
//er zijn geen resultaten dus nieuwe erin zetten
$insert = mysql_query("INSERT INTO tabel(veld1,veld2,veld3) VALUES('".mysql_real_escape_string(veld1)."','".mysql_real_escape_string(veld2)."','".mysql_real_escape_string(veld3)."')");
if($insert){
//gelukt
}
else{
//mysql error
echo 'error '.mysql_error();
}
}
else{
//meerdere resultaten, als je niets wil doen kan je deze else weglaten
}
}
else{
//mysql error
echo 'error '.mysql_error();
}
?>
Gewijzigd op 30/05/2011 15:53:49 door gerhard l
Hierbij horende had ik nog een vraagje betreffende if statement:
2de stap hierop is dat alle velden ingelezen worden in een menu/list
waar de database waarde 1 voorziet en via een POST haal ik de 2 de waarde
vanuit een andere form.
Dus de menu list bestaat uit:
<select name="aa" id="aa">
<option value=""></option>
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
} while ($row_ochtend1 = mysql_fetch_assoc($ochtend1));
$rows = mysql_num_rows($ochtend1);
if($rows > 0) {
mysql_data_seek($ochtend1, 0);
$row_ochtend1 = mysql_fetch_assoc($ochtend1);
}
?>
} while ($row_ochtend1 = mysql_fetch_assoc($ochtend1));
$rows = mysql_num_rows($ochtend1);
if($rows > 0) {
mysql_data_seek($ochtend1, 0);
$row_ochtend1 = mysql_fetch_assoc($ochtend1);
}
?>
<option value=""></option>
</select>
In de eerste post vult hij alle velden op met de waarde "none" en die wordt dan
ook als eerste uitgelezen voor in de menu/list te komen.
Nu wil ik echter dat wanneer ik dit formulier submit voor een UPDATE te doen
van de record, hij enkel de velden update waar de value van de list/menu NIET gelijk
is aan "none".
bv: list/menu bestaat uit:
value 1: none
value 2: hallo
hij enkel de record gaat updaten als de waarde hallo is.
Iemand een verder idee.