Database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Erkan

Erkan

12/12/2006 23:33:00
Quote Anchor link
mod edit:
SLECHTE TOPICTITEL
Een goede topictitel is kort en toch beschrijvend. Slechte titels zijn: "help, werkt niet, probleem, error", enzovoort.

Hey, ik heb dit net in mijn database opgeslagen, hoe kan ik dit opgeslagen text weer terug halen op een ander pagina, dit is de script waarmee ik het opsla:
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
<?php if ( isset($_COOKIE['login'])){ ?>

<?php

$html
= $_POST['html'];
$datum_3 = date("d-m H:i");
$datum_4 = date("d-m-Y H:i:s");
$datum_5 = time();

$sql = "UPDATE leden SET html='$html',datum_3='$datum_3',datum_4='$datum_4',datum_5='$datum_5' WHERE gebruikersnaam='$login'";
if(!$result = mysql_query($sql)) die(mysql_error());

?>


<font face=verdana size=2>De profieltekst is succesvol aangepast.

<?php
} else {
?>


<font face=verdana size=2>Je kunt deze pagina niet bekijken omdat je niet ingelogd bent!

<?php

}

?>
Gewijzigd op 01/01/1970 01:00:00 door Erkan
 
PHP hulp

PHP hulp

30/11/2024 22:45:41
 
Kalle P

Kalle P

13/12/2006 00:24:00
Quote Anchor link
Misschien een cursusje database?

sql tutorial
 
Stefan van Iwaarden

Stefan van Iwaarden

13/12/2006 01:03:00
Quote Anchor link
je hebt nog veel te leren zie ik wel, zoek inderdaad maar eens wat tutorials op.

Overigens is het UPDATE statement voor het wijzigen van records, niet voor het opslaan van data, want dat doe je met INSERT.

daarnaast is het beter als je je variabelen buiten de quotes haalt.

en al die datum variabelen die je daar aanmaakt hoeft ook allemaal niet aangezien je dit ook met MySQL kan doen. (en die kan dat sneller en beter)
 
CrawlBackwards

CrawlBackwards

13/12/2006 02:38:00
Quote Anchor link
<font face=verdana

advies: attributen in quotes, maar font kan je eignelijk beter niet meer gebruiken
 
Erkan

Erkan

13/12/2006 23:41:00
Quote Anchor link
Als ik me niet vergis is dit het toch:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

$html
= $_POST['html'];
$datum_3 = date("d-m H:i");
$datum_4 = date("d-m-Y H:i:s");
$datum_5 = time();

$sql = "GET leden SET html='$html',datum_3='$datum_3',datum_4='$datum_4',datum_5='$datum_5' WHERE gebruikersnaam='$login'";
if(!$result = mysql_query($sql)) die(mysql_error());

?>
 
Robert Deiman

Robert Deiman

13/12/2006 23:48:00
Quote Anchor link
Als jij in MySQL een datetime veld aanmaakt, en je zet daarin de waarde now, dan zet die er hetzelfde in als je met $datum 4 doet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

$html
= $_POST['html'];
$datum_3 = date("d-m H:i");

$datum_5 = time();

$sql = "GET leden SET html='$html',datum_3='$datum_3',datum_4=NOW(),datum_5='$datum_5' WHERE gebruikersnaam='$login'";
if(!$result = mysql_query($sql)) die(mysql_error());

?>
 
Erkan

Erkan

13/12/2006 23:52:00
Quote Anchor link
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 'GET leden SET html='',datum_3='13-12 23:50',datum_4=NOW(),datum
 
Joren de Wit

Joren de Wit

14/12/2006 00:28:00
Quote Anchor link
Sinds wanneer bestaat het mysql commando GET? Ik ken het in ieder geval niet...

Het lijkt me dat je hier een INSERT of UPDATE query wilt gebruiken. De syntax met SET in een INSERT query wordt door mysql wel geaccepteerd, maar is niet de standaard. Zo hoort het:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
INSERT INTO tabel (kolom1, kolom2)
VALUES (waarde1, waarde2)


Daarnaast kan er geen WHERE clause voorkomen in een INSERT query. Haal ten slotte ook je variabele buiten quotes. Het is een variabele, geen string.
 
Erkan

Erkan

14/12/2006 00:31:00
Quote Anchor link
Nee, ik wil niet insert of update doen, ik wil het uit mijn database halen, en showen op een andere pagina, met bijvoorbeeld de bovenstaande code van mij.
 
Martijn B

Martijn B

14/12/2006 10:56:00
Quote Anchor link
Doorgaans haal je met een SELECT query iets uit de database. Hier 2 simpele SELECT queries:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT kolom1, kolom2 FROM tabel


of met een voorwaarde:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT kolom1, kolom2 FROM tabel WHERE id = 10


Wil je alle kolommen uit je tabel dan dan doe je:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM tabel


Alleen gebruiken al je echt alle kolommen nodig hebt.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Erkan

Erkan

14/12/2006 12:15:00
Quote Anchor link
Hmm, zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

$html
= $_POST['html'];
$datum_3 = date("d-m H:i");

$datum_5 = time();

$sql = "SELECT $html',datum_3='$datum_3',datum_4=NOW(),datum_5='$datum_5 FROM leden WHERE gebruikersnaam='$login'";
if(!$result = mysql_query($sql)) die(mysql_error());

?>
 
Stefan van Iwaarden

Stefan van Iwaarden

14/12/2006 14:14:00
Quote Anchor link
@Erkan, heb je zoieso enig idee waar alle statements voor dienen?

je hebt nu een select, maar de aanduiding van de kolommen klopt gewoon voor geen meter. jij probeert volgens mij in het noemen van de kolommen gelijk te zoeken op overeenkomstige waarden, maar dat kan daar helemaal niet in. Daar moet je de where clause voor gebruiken zoals je nu ook al doet voor de gebruikersnaam.

Kijk eens wat tutorials door.
Wat dacht je van deze?
http://www.phphulp.nl/php/tutorials/3/2/
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
 
Frank -

Frank -

14/12/2006 14:22:00
Quote Anchor link
Offtopic:
$datum_3 = date("d-m H:i");
$datum_4 = date("d-m-Y H:i:s");

leuk en aardig, maar wat ben je hiermee van plan? Dit zijn in elk geval géén datums of tijden, ondanks dat jij denkt van wel.

Een datum sla je op in een DATE en een tijd in een TIME. Samen kun je deze opslaan in een DATETIME.

Deze datatypes eisen de volgende formaten:
DATE: yyyy-mm-dd
TIME: hh:mm:ss
DATETIME: yyyy-mm-dd hh:mm:ss

Ieder ander formaat om een datum of tijd op te slaan, is gewoon fout.

En voor de wijsneuzen die roepen dat je nog TIMESTAMP hebt, de volgende vraag:
Wie is er geinteresseerd in het aantal seconden dat is verstreken sinds 1-1-1970 wanneer je veel handiger met normale datums en tijden kunt werken?
Antwoord: Geen hond...
 
Erkan

Erkan

14/12/2006 15:10:00
Quote Anchor link
Ik heb wel idee, maar ik kan je niet zeggen dat ik er echt goed mee ben, ik heb het volgende gemaakt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

$html
= $_POST['html'];

mysql_connect("localhost","site","password")
ordie(mysql_error());
mysql_select_db("database")ordie(mysql_error());

$sql = "SELECT $html FROM leden WHERE gebruikersnaam='$login'";
if(!$result = mysql_query($sql)) die(mysql_error());

?>
 
Stefan van Iwaarden

Stefan van Iwaarden

14/12/2006 15:13:00
Quote Anchor link
Erkan, geef anders even de structuur van je tabel, want ik kan mij bijna niet voorstellen dat jij een kolom hebt die $html heet.
Volgens mij wil jij er gelijk een variabele van maken, maar dat is niet de bedoeling.
 
Erkan

Erkan

14/12/2006 16:27:00
Quote Anchor link
CREATE TABLE `leden` (
`id` smallint(3) NOT NULL auto_increment,
`gebruikersnaam` varchar(50) NOT NULL default '',
`wachtwoord` varchar(255) NOT NULL default '',
`naam` varchar(50) NOT NULL default '',
`foto` varchar(255) NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`woonplaats` varchar(50) NOT NULL default '',
`provincie` varchar(50) NOT NULL default '',
`gb_dag` varchar(50) NOT NULL default '',
`gb_maand` varchar(50) NOT NULL default '',
`gb_jaar` varchar(50) NOT NULL default '',
`geslacht` varchar(50) NOT NULL default '',
`geaardheid` varchar(50) NOT NULL default '',
`status` varchar(50) NOT NULL default '',
`datum_1` varchar(50) NOT NULL default '',
`datum_2` varchar(50) NOT NULL default '',
`datum_3` varchar(50) NOT NULL default '',
`datum_4` varchar(50) NOT NULL default '',
`html` longtext NOT NULL,
`ip` varchar(255) NOT NULL default '',
`datum_5` varchar(255) NOT NULL default '',
`bezoekers` mediumint(9) NOT NULL default '0',
`bevestigen` varchar(150) NOT NULL default '0',
`activatiecode` varchar(250) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `gebruikersnaam` (`gebruikersnaam`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
 
Jesper Diovo

Jesper Diovo

14/12/2006 17:07:00
Quote Anchor link
Precies zoals stefan zegt.

Maar ik las dat je de gegevens juist wilt ophalen.
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
<?
// aan jouw code verander ik niks, maar even een toevoegsel
$aantal_regels = mysql_num_rows($result);
if($aantal_regels > 0)
{

    while($rij = mysql_fetch_array($result)) // we zetten alles in een array
    {
     echo $rij['gebruikersnaam']; // om de gebruikersnaam op te halen
     echo $rij['woonplaats']; // om de woonplaats op te halen
     // etc. etc.

    }
}
else{
    echo "<span style='color: red;'>Er konden geen gegevens gevonden worden.";
}

?>
 
Stefan van Iwaarden

Stefan van Iwaarden

14/12/2006 17:24:00
Quote Anchor link
precies zoals ik dacht. je kolom heet gewoon html zonder $
dus wordt het zoals volgt:
Ik heb er heel veel commentaar bijgezet, maar dat is wel zo makkelijk denk ik op dit moment. Dan snap je wat de code doet. (let ook op de foutafhandeling)
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
<?php
// je query
$sql = "SELECT
             html
          FROM
             leden
          WHERE
             gebruikersnaam = '"
.$login."'";
$result = mysql_query($sql) or die (mysql_error()); //uitvoeren van de query + foutafhandeling
// en dan zijn er 2 manieren om de variabele aan te maken
//manier 1 (te gebruiken bij een of meerdere variabelen)

$row = mysql_fetch_array($result); //gegevens in een array zetten
$html = $row['html']; //aanmaken van variabele

//manier 2 (te gebruiken bij ophalen van 1 kolom)

$html = mysql_result($result,'html'); //aanmaken van variabele
?>

Zoals je ziet heb ik je variabele $login buiten de quotes gehaald, dit is eigenlijk zo'n beetje standaard omdat dat het overzicht ten goede komt, als je namelijk een editor met kleuren gebruikt (en dat is aan te bevelen) zie je sneller waar je variabelen staan en waar je iets fout doet.
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
 
Frank -

Frank -

14/12/2006 18:14:00
Quote Anchor link
Quote:
`gb_dag` varchar(50) NOT NULL default '',
`gb_maand` varchar(50) NOT NULL default '',
`gb_jaar` varchar(50) NOT NULL default '',
`datum_1` varchar(50) NOT NULL default '',
`datum_2` varchar(50) NOT NULL default '',
`datum_3` varchar(50) NOT NULL default '',
`datum_4` varchar(50) NOT NULL default '',
`datum_5` varchar(255) NOT NULL default '',
Zie mijn reactie van 14.12.2006 14:22, geen van bovenstaande kolommen is correct, ze zijn gewoon hardstrikke fout omdat het geen datums zijn. Gezien de namen van deze kolommen, heb ik echter het idee dat je er wel datums in probeert te zetten. Dit loopt vroeg of laat uit op een enorm probleem, die garantie heb je.

Oplossing: Gebruik DATE of DATETIME om datums op te slaan.

Genummerde kolomnamen als datum_1, datum_2, etc. duiden in 99 van de 100 gevallen op een fout in het datamodel. Waarschijnlijk hoort deze data in een andere tabel te staan. Ga je eens verdiepen in database-normalisatie.
 
Erkan

Erkan

14/12/2006 18:23:00
Quote Anchor link
Nee hij werkt niet, Djemo bij de script van jou krijg ik dit:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /data/members/free/tripod/nl/t/u/r/site/htdocs/lid.php on line 614
Er konden geen gegevens gevonden worden.

En bij Stefan krijg ik niks, gewoon leeg, hij kan geen verbinding maken met Leden/html denk ik.
 
Erkan

Erkan

15/12/2006 15:28:00
Quote Anchor link
bump :)
 

Pagina: 1 2 volgende »



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.