Hele simpele vraag over query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen van de Ven

Jeroen van de Ven

05/01/2007 01:37:00
Quote Anchor link
Hey,

Ik ben heel slecht met mysql, ik ben nu zo ver dat ik een hoop dingen kan plaatsen:

$q = "INSERT INTO db (postid, linkid, poster, timestamp, body) VALUES('".$postid[$i]."', '".$linkid[$i]."', '".$poster[$i]."', '".$posttime[$i]."', '".$postbody[$i]."')";

Maar nu: nu zou ik graag de rij met de betreffende 'postid' willen ophalen, en de 'postbody' daarvan vergelijken met de nieuwe, en eventueel overschrijven (UPDATE?). Hoe zou ik dat moeten doen?
 
PHP hulp

PHP hulp

23/11/2024 12:01:58
 
Frank -

Frank -

05/01/2007 01:50:00
Quote Anchor link
Netjes programeren scheelt je een hoop ellende:
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
<?
$query
= "
INSERT INTO
  db (
    postid,
    linkid,
    poster,
    timestamp,
    body
  )
VALUES(
  '"
.$postid[$i]."',
  '"
.$linkid[$i]."',
  '"
.$poster[$i]."',
  '"
.$posttime[$i]."',
  '"
.$postbody[$i]."'
)"
;
?>

De naam 'db' is waarschijnlijk slecht gekozen, het zegt niets over de data die je in de tabel wegschrijft. Verder is de naam 'timestamp' verwarrend, timestamp is ook een datatype. Overigens een type dat je beter niet kunt gebruiken, gebruik voor datums een DATE, tijden een TIME en datums met tijden een DATETIME.
 
Jeroen van de Ven

Jeroen van de Ven

05/01/2007 01:54:00
Quote Anchor link
Frank schreef op 05.01.2007 01:50:
Netjes programeren scheelt je een hoop ellende:
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
<?
$query
= "
INSERT INTO
  db (
    postid,
    linkid,
    poster,
    timestamp,
    body
  )
VALUES(
  '"
.$postid[$i]."',
  '"
.$linkid[$i]."',
  '"
.$poster[$i]."',
  '"
.$posttime[$i]."',
  '"
.$postbody[$i]."'
)"
;
?>

De naam 'db' is waarschijnlijk slecht gekozen, het zegt niets over de data die je in de tabel wegschrijft. Verder is de naam 'timestamp' verwarrend, timestamp is ook een datatype. Overigens een type dat je beter niet kunt gebruiken, gebruik voor datums een DATE, tijden een TIME en datums met tijden een DATETIME.


Ok, ik ben niet verder gegaan dan mn php code netjes neerzetten en indenten maar dat ziet er indd ook wel beter uit als de sql code ingewikkelder wordt...

Overigens staat db niet voor database, ik heb timestamp bij deze veranderd in posttime. thx voor de tips :) Heb je ook een antwoord op de vraag toevallig?
 
Jeroen van de Ven

Jeroen van de Ven

05/01/2007 03:32:00
Quote Anchor link
Ik heb dit nu maar het werkt niet:

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$q  = "SELECT body FROM db WHERE postid = '" . $postid[$i] . "'";
                $res = mysql_query($q, $conn);
                
                if (mysql_fetch_array($res, MYSQL_ASSOC) != false) {
                
                    while($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
                    
                        if ($row['body'] != $postbody[$i]) {
                    
                            //Update de database
                            $q = "
                                UPDATE db
                                SET body = '" . $postbody[$i] .
                            "'    WHERE postid = '" . $postid[$i] . "'";

                        }
                        
                    }
                    
                } else {
                
                    $q = "
                    INSERT INTO
                      db (
                        postid,
                        linkid,
                        poster,
                        posttime,
                        body
                      )
                    VALUES(
                      '".$postid[$i]."',
                      '".$linkid[$i]."',
                      '".$poster[$i]."',
                      '".$posttime[$i]."',
                      '".$postbody[$i]."'
                    )";
                
                }
                
                mysql_query($q, $conn);


Hij doet niks, hij werkt het niet bij maar hij zet het er ook niet opnieuw in. Hij geeft ook geen errors.
 
PHP Newbie

PHP Newbie

05/01/2007 03:42:00
Quote Anchor link
je controleert ook niet of dat de query is gelukt, ik zi ook geen mysql_error() staan, dus ik verwacht ook nite dat je een error krijgt
 
Jeroen van de Ven

Jeroen van de Ven

05/01/2007 04:00:00
Quote Anchor link
Oh ik dacht dat je gewoon vanzelf errors krijgt net als gewone php errors :X naja het werkt nu, heb de while loop weggehaald.
 



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.