MYSQL data - retrieven + update

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Pagina: « vorige 1 2 3 volgende »

Jerry

jerry

18/10/2007 15:29:00
Quote Anchor link
bericht verwijderd
Gewijzigd op 01/01/1970 01:00:00 door jerry
 
PHP hulp

PHP hulp

12/01/2025 06:22:26
 
Jerry

jerry

20/10/2007 16:01:00
Quote Anchor link
hmm had misschien beter een nieuwe topic moeten starten voor de tweede vraag
 
Joren de Wit

Joren de Wit

20/10/2007 16:04:00
Quote Anchor link
De url zet je niet in de database! Die kun je namelijk gewoon genereren op de pagina waar je hem nodig hebt...

Als je ergens een link wilt weergeven, lees je gewoon het id uit uit de database en maak je met behulp van die variabele een url.

ps. Normaal gesproken sla je helemaal geen html code op in de database. De database gebruik je alleen voor data en daar is de opmaak niet van belang.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Jerry

jerry

20/10/2007 17:12:00
Quote Anchor link
bericht verwijderd
[later in de topic wordt me vraag duidelijker namelijk )
Gewijzigd op 01/01/1970 01:00:00 door jerry
 
Joren de Wit

Joren de Wit

20/10/2007 17:39:00
Quote Anchor link
Zorg dat je in de link om een bericht te wijzigen direct al het juiste id meegeeft. Dit juiste id lees je tegelijkertijd met de weer te geven berichten uit uit de database en kun je dus gewoon in de link zetten.

In plaats van $postid gebruik je dus $uitvoer['postid'] aangezien de waarde uit de database komt...
 
Jerry

jerry

20/10/2007 18:10:00
Quote Anchor link
Blanche schreef op 20.10.2007 17:39:
Zorg dat je in de link om een bericht te wijzigen direct al het juiste id meegeeft. Dit juiste id lees je tegelijkertijd met de weer te geven berichten uit uit de database en kun je dus gewoon in de link zetten.

In plaats van $postid gebruik je dus $uitvoer['postid'] aangezien de waarde uit de database komt...


waar moet ik ditprecies doen
want in mijn berichten.php heb ik al
al echo $uitvoer['postid']
zo zie ik welk nummertje elke post heeft
maar hoe zorg ik ervoor dan dat elke link van "verander bericht" naar de juiste id linkt...
zonder dit handmatig elke keer te doen
dit moet volgens mij verbeterd worden :
'<a href=\"bericht.php?$_GET[postid]\">'
Gewijzigd op 01/01/1970 01:00:00 door jerry
 
Joren de Wit

Joren de Wit

20/10/2007 18:15:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<a href="wijzig.php?id='.$uitvoer['postid'].'>Bericht Wijzigen</a>';
?>

Zoiets zal dat worden.

En vervolgens kun je op wijzig.php het id uit de url uitlezen met $_GET['id'] en vervolgens de gegevens van dat bericht uit de database ophalen.
 
Jerry

jerry

21/10/2007 13:05:00
Quote Anchor link
Ok bedankt zal het morgen even gelijk proberen!
 
Jerry

jerry

22/10/2007 13:46:00
Quote Anchor link
ok ik krijg nu onder elke post
bijvoorbeeld
wijzig.php?id=45
dat is dus goed

ik heb nu een wijzig.php aangemaakt
wat lijkt op nieuw_bericht.php

hoe zorg ik ervoor
dat de juiste gegevens worden geladen in de forms
en de nieuwe gegevens in de database worden gepropt

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
include ("db.php");

if($_SESSION['id'])  {
?>


<?php
if (!isset($_POST['submit'])) {
?>


<?php
$titel
=   $_GET['titel'];
$bericht  =  $_GET['bericht'];

?>

<form id="berichtformulier" action="" method="post">

<fieldset id="date">
    <legend>Titel</legend>
    <input name="titel" id="titel" type="text"
    tabindex="1" value="<?php echo "$titel" ?>">
    <br />
    
    
  </fieldset>
  
  
  
  <fieldset id="mssg">
    <legend>Bericht</legend>
 

    <textarea name="bericht" cols="40" rows="10" value="<?php echo "$bericht" ?>">
    </textarea>
  </fieldset>
                    
<input type="submit" name="submit" value="Verzenden!">    
<input type="reset" name="reset" value="Reset!">
                
</form>

<?php
} else {

$titel = htmlentities(strip_tags($_POST['titel']));
  
$bericht = htmlspecialchars($_POST["bericht"]);


$datum = date("Y-m-d H:i:s");
    
$url = $_POST['postid'];            
                                            
$sql = mysql_query("INSERT INTO `posts` (auteur, titel, datum, bericht, url) VALUES ('".$_SESSION['gebruikersnaam']."', '$titel', '$datum', '$bericht', '<a href=\"bericht.php?$_GET[postid]\">')");
}

}

?>


Volgens mij moet de volgorde worden aangepast
Eerst connectie met de database, dan de juiste tabel selecteren, initialisatie van de variabelen, form (echo de juiste titel en bericht) en dan een sql query om te updaten.
Gewijzigd op 01/01/1970 01:00:00 door jerry
 
Joren de Wit

Joren de Wit

22/10/2007 13:58:00
Quote Anchor link
Stappenplan:

- Controleer of er een formulier naar de pagina gepost is ($_SERVER['REQUEST_METHOD'] == POST) want dan heeft de gebruiker gegevens gewijzigd en moet de database geupdate worden.

- Zo niet, haal het id op uit de URL ($_GET['id']) en voer een SELECT query uit om de huidige gegevens uit de database te halen.

- Maak het formulier waar je bij de value attributen de juiste waarden uit de database invult.

- Als het formulier verzonden is, voer een update query met de nieuwe waarden uit. Zorg dat je id uit de url voor het verzenden in een sessievariabele hebt gezet, zodat je weet over welk record het gaat.

ps. Begin al je scripts met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Jerry

jerry

22/10/2007 18:04:00
Quote Anchor link
Blanche schreef op 22.10.2007 13:58:
Stappenplan:

- Controleer of er een formulier naar de pagina gepost is ($_SERVER['REQUEST_METHOD'] == POST) want dan heeft de gebruiker gegevens gewijzigd en moet de database geupdate worden.

- Zo niet, haal het id op uit de URL ($_GET['id']) en voer een SELECT query uit om de huidige gegevens uit de database te halen.

- Maak het formulier waar je bij de value attributen de juiste waarden uit de database invult.

- Als het formulier verzonden is, voer een update query met de nieuwe waarden uit. Zorg dat je id uit de url voor het verzenden in een sessievariabele hebt gezet, zodat je weet over welk record het gaat.

ps. Begin al je scripts met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>


hmm ok wel lastig, maar ga het straks ff proberen
 
Jerry

jerry

23/10/2007 14:18:00
Quote Anchor link
Heren, ben nu een stapje verder.
Ik heb 2 probleempjes,
ik krijg de waarden van heel me database terug in formpjes nu, dus al ik 5 berichten heb gepost, en wil gaan editen krijg ik 5 formpjes titel, 5 formpjes bericht. Hij moet de waardes geven van de juiste post id die ik wil bewerken,
Dat ligt aan me query ik moet aan die passen ik heb het al geprobeerd te limiteren of

$sql = "SELECT titel, bericht FROM posts WHERE postid = " . $postid;

te doen

maar dat werkt niet, als ik die gebruik, krijg ik niet eens een query en mijn form is dan ook opeens weg.

ook zodra ik nieuwe gegevens in vul en op verzenden klik worden de gegevens van me database niet overgeschreven wie o wie helpt.

hier de wijzig.php code
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?php

session_start();


if($_SESSION['id'])
{

    echo "<p>Pas bericht aan. Je bent ingelogd  als: \"" . $_SESSION['gebruikersnaam'] . "\"</p>";
    echo "<p>Klik <a href=\"logout.php\">hier</a> om af te melden!</p>";  
          
    echo "<p>Klik <a href=\"admin.php\">hier</a> om terug te gaan naar het hoofdmenu</p>";

}

else
 {  
    echo "<p>Klik <a href=\"admin.php\">hier</a> om je aan te melden!</p>";}
?>

            
<html>
<head>
<title>Wijzig bericht</title>
       <link rel="stylesheet" type="text/css" href="css/post.css" />

</head>
<body>        

                        



<?php
    include ("db.php");

        if($_SESSION['id'])  {
    
 $postid = $_GET['postid'];
            

$sql = "SELECT titel, bericht FROM posts ORDER by postid DESC";              
   // $sql = "SELECT titel, bericht FROM posts WHERE postid = " .  $postid;            
                
$query = mysql_query( $sql )  
or die( mysql_error() );

// Controleren of er resultaten zijn:
if( mysql_num_rows( $query ) == 0 ){   echo "De tabel is leeg.";
}
else
                {  
// While maken  
   while ($row = mysql_fetch_assoc($query)) {
$titels[$row['titel']] = $row['bericht'];
}          



         {

                
  
 
?>
  
              
  <?php
if (!isset($_POST['submit'])) {
?>

 
<form id="berichtformulier" action="" method="post">
    
<fieldset id="date">
    <legend>Titel</legend>
<?php
foreach($titels AS $titel => $bericht)
   {

      
echo
'<input name="titel" id="titel" type="text"
    tabindex="1" value="'
. $titel . '">';
   }

?>
  

    <br />
    
    
  </fieldset>
  
  
  
  <fieldset id="mssg">
    <legend>Bericht</legend>
       <?php
foreach($titels AS $titel => $bericht)
   {

       echo '<textarea name="bericht" cols="40" rows="10" id="bericht">  '. $bericht .' </textarea>'; }?>

    </textarea>
  </fieldset>
                    
<input type="submit" name="submit" value="Verzenden!">    
<input type="reset" name="reset" value="Reset!">
                
</form>
      
<?php
  } else {  
$titel =  mysql_real_escape_string($_POST['titel']);  
$bericht = htmlspecialchars($_POST["bericht"]);


      
                                            
$sql = mysql_query("UPDATE posts SET='$titel', '$bericht' WHERE postid='$postid'");

echo "Het bericht heeft nu een update gekregen! Wil je een nieuw bericht schrijven klik dan <a href=\"nieuw_bericht.php\">hier</a> <br/>
of  <a href=\"..\"index.php\">bekijk</a> de home page opnieuw!"
;


}
}  
}
      
        }
  
?>


</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door jerry
 
Joren de Wit

Joren de Wit

23/10/2007 14:20:00
Quote Anchor link
Je zult 1 enkele post op moeten halen om te wijzigen, dus die WHERE clausule heb je zeker nodig.

Zet dit verder nou eens bovenaan je script en kijk welke foutmeldingen er gegeven worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>


ps. Volgens mij heb ik ook al eerder gezegd dat je htmlentities() niet gebruikt voordat je data naar de database wegschrijft, dat slaat namelijk nergens op. Gebruik mysql_real_escape_string() vooraf en htmlentities() enkel achteraf als je wilt dat de html niet uitgevoerd maar op het scherm getoond wordt.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Jerry

jerry

23/10/2007 14:27:00
Quote Anchor link
o die display erros had ik niet bij gekopieerd heb ik er wel in
Notice: Undefined index: postid in wijzig.php on line 43
 
Joren de Wit

Joren de Wit

23/10/2007 14:30:00
Quote Anchor link
Voila: $_GET['postid'] bestaat dus niet. Staat het id wel in je url? En zo ja, onder welke variabele?

Op dit moment moet volgens jouw script de url er zo uit zien:

wijzig.php?postid=1
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Jerry

jerry

23/10/2007 14:33:00
Quote Anchor link
maar ik geef dat toch al aan in regel 36....

$postid = $_GET['postid'];
 
Joren de Wit

Joren de Wit

23/10/2007 14:35:00
Quote Anchor link
Ja dat is juist het probleem. $_GET['postid'] bestaat niet, dus blijkbaar zal die variabele niet in de URL aanwezig zijn, of wellicht onder een andere naam.

ps. Bovendien heeft zo'n uitdrukking helemaal geen meerwaarde. Waarom een kopie maken van $_GET['postid'] terwijl je helemaal niets aan de variabele veranderd. Gebruik gewoon $_GET['postid'] ipv $postid. (Zorg natuurlijk wel dat $_GET['postid'] bestaat).
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Jerry

jerry

23/10/2007 14:38:00
Quote Anchor link
Blanche schreef op 23.10.2007 14:35:
Ja dat is juist het probleem. $_GET['postid'] bestaat niet, dus blijkbaar zal die variabele niet in de URL aanwezig zijn, of wellicht onder een andere naam.

hoe moet ik dit precies oplossen
ik bedoel hoe zorg ik ervoor dat
$_GET['postid']
bestaat

me berichten kan ik bereiken door berichten.php
en in me database
posts
uit
postid
auteur
titel
bericht
url
Gewijzigd op 01/01/1970 01:00:00 door jerry
 
Joren de Wit

Joren de Wit

23/10/2007 14:42:00
Quote Anchor link
Door de benodigde variabele in de url op te nemen, of juist uit te lezen misschien?!

In een eerdere post zeg je dat er onder elke post een link komt te staan van het volgende formaat:

wijzig.php?id=45

Op wijzig.php kun je het id dus uitlezen met $_GET['id'] en niet met $_GET['postid']. Deze laatste variabele bestaat immers helemaal niet! En dat is precies waarom jij die foutmelding krijgt en je script niet werkt....
 
Jerry

jerry

23/10/2007 14:48:00
Quote Anchor link
Blanche schreef op 23.10.2007 14:42:
Door de benodigde variabele in de url op te nemen, of juist uit te lezen misschien?!

In een eerdere post zeg je dat er onder elke post een link komt te staan van het volgende formaat:

wijzig.php?id=45

Op wijzig.php kun je het id dus uitlezen met $_GET['id'] en niet met $_GET['postid']. Deze laatste variabele bestaat immers helemaal niet! En dat is precies waarom jij die foutmelding krijgt en je script niet werkt....


Kan jij mijn script is verbeteren zo dat ik goed kan zien wat ik precies fout doet.
Want ik snap het nog steeds niet.
Ik krijg als error dat postid niet bestaat
Terwijl elke post een postid heeft en wordt opgeslagen.
Ik kan $postid = $_GET['id']; wel doen, als ik die dan echo krijg ik de juiste id van de post weer..:)
Maar wat is precies de juiste query voor mijn probleempje
Gewijzigd op 01/01/1970 01:00:00 door jerry
 

Pagina: « vorige 1 2 3 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.