If + SQL instructie vraag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Yannick Bogaert

Yannick Bogaert

30/05/2011 15:38:36
Quote Anchor link
Hallo allemaal,

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
 
PHP hulp

PHP hulp

20/04/2024 12:08:33
 
Gerhard l

gerhard l

30/05/2011 15:40:46
Quote Anchor link
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?
 
Yannick Bogaert

Yannick Bogaert

30/05/2011 15:42:47
Quote Anchor link
Gerhard,

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
 
- SanThe -

- SanThe -

30/05/2011 15:46:22
Quote Anchor link
SELECT .. FROM .. WHERE DATE(datumveld) = CURDATE()
Als dat niks oplevert dan INSERT
 
Gerhard l

gerhard l

30/05/2011 15:52:10
Quote Anchor link
Oke dan denk ik dat je in deze richting moet kijken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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();
}

?>
Gewijzigd op 30/05/2011 15:53:49 door gerhard l
 
Yannick Bogaert

Yannick Bogaert

30/05/2011 20:15:54
Quote Anchor link
@SanThe en gerhard l: thanks voor de hulp!

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">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
do {  
?>

<option value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $row_ochtend1['aa']?>
">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $row_ochtend1['aa']?>
</option>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
  }

?>

<option value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_POST['foo1']; ?>
">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_POST['foo1']; ?>
</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.
 



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.