[PHP/MySQL] Formulier laad gegevens niet uit tabel

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Hertog_Martin
  • Registratie: Juli 2002
  • Laatst online: 19-09 23:32
Hoi,

Ik heb een nieuwsysteem voor mn website gemaakt (nog niet online)
En dat werkt allemaal prima.

Maar daarmee kan ik alleen nieuws toevoegen en nieuws zien.

Nu wou ik ook nog een pagina maken om toegevoegd nieuws achteraf te kunnen wijzigen.

Ik ben nu al 8 uur bezig maar kom steeds op problemen.
Ik heb een pagina gemaakt (overzicht.php) die al het nieuws uit de database haalt en dan kan je op elk bericht klikken om naar wijzigen.php?id=IDVANBERICHT te gaan waar je dus dat bericht met dat ID kan wijzigen

Alleen die pagina wijzigen.php wil maar niet lukken.
Het formulier laad de gegevens niet, en ook wanneer ik dingen typ in het lege formulier en dan submit druk dan krijg ik de error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in [edit] on line 15

Lijn 15 is:

$Rij = mysql_fetch_array ($resultaat);

Het rare is is dat ik die zelfde regel in overzicht.php gebruik zonder problemen.

Ik heb tientallen dingen geprobeerd maar kom er niet uit. Kunnen jullie helpen?
De hele 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php 
if($_SERVER['REQUEST_METHOD'] == 'POST'){ 
include("config.php"); 
        
      $titel = $_POST['titel']; 
      $datum = $_POST['datum']; 
      $bericht = $_POST['bericht']; 
      $iconkleur = $_POST['iconkleur'];
      $bron = $_POST['bron'];
      $bronurl = $_POST['bronurl'];
       
$query = "SELECT * FROM nieuws WHERE id = $id"; 
$resultaat = mysql_db_query ($DBNaam, $query); 
$Rij = mysql_fetch_array ($resultaat); 

$query = "UPDATE nieuws SET titel='$titel', bericht='$bericht', 
iconkleur=$'iconkleur', bron='$bron', bronurl='bronurl', datum='datum' WHERE 
id='$id'";    
mysql_query($query) or die ("query mislukt");  

echo "Nieuws is succesvol gewijzigd."; 
} 
?> 
<FORM ACTION="wijzigen.php" METHOD="POST"> 
<INPUT TYPE="hidden" NAME="submit" VALUE="maakt_niet_uit"> 
<B>datum</B>: 
<BR><input name="datum" size="50" type="text" 
value=<?php print "$Rij[$datum]"; ?>>   
<P><B>titel</B>:      
<BR><input name="titel" size="50" type="text" 
value="<?php print "($Rij[$titel]" ?>"> 
<P><B>icon kleur</B> (red=hdtv, blue=hddvd, green=dvd): 
<BR><input name="iconkleur" size="50" type="text" 
value="<?php print $Rij[iconkleur] ?>"> 
<P><B>bron</B>: 
<BR><input name="bron" size="50" type="text" 
value="<?php print $Rij[bron] ?>"> 
<P><B>url</B> van de bron: 
<BR><input name="bronurl" size="50" type="text" 
value="<?php print $Rij[bronurl] ?>"> 
<P>Het <B>bericht</B>: 
<BR><TEXTAREA NAME="bericht" COLS=100 ROWS=10 
value="<?php print $Rij[bericht] ?>"></TEXTAREA> 
<P><INPUT TYPE="submit" VALUE="Wijzig"> 
</FORM> 

[ Voor 95% gewijzigd door Hertog_Martin op 10-01-2004 01:08 ]


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-09 08:50

gorgi_19

Kruimeltjes zijn weer op :9

Echo $query eens op je scherm. Ik zie nergens dat je $id definieert.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Je probleem zit in je query bij

iconkleur=$'iconkleur'
moet zijn
iconkleur='$iconkleur' lijkt me

Acties:
  • 0 Henk 'm!

  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 26-08 09:08

Kippenijzer

McFallafel, nu met paardevlees

$resultaat = mysql_db_query ($DBNaam, $query);


Waar zet je de variabele $DBNaam?

En zet hem eens tussen php tags ipv code tage in je post, de heb je kleurtje highlighting in je code

Acties:
  • 0 Henk 'm!

  • Hertog_Martin
  • Registratie: Juli 2002
  • Laatst online: 19-09 23:32
id hoeft niet gedefinieerd te worden als het goed is want dat gaat automatisch.

Bij alle andere pagina's die de berichten uit de database halen defineer ik id ook niet.. en daar werkt id gewoon goed

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-09 08:50

gorgi_19

Kruimeltjes zijn weer op :9

vorlox schreef op 10 januari 2004 @ 00:20:
Je probleem zit in je query bij

iconkleur=$'iconkleur'
moet zijn
iconkleur='$iconkleur' lijkt me
bronurl='bronurl', datum='datum'
Gaan dan natuurlijk ook fout.. :)
hoeft niet gedefinieerd te worden als het goed is want dat gaat automatisch.

Bij alle andere pagina's die de berichten uit de database halen defineer ik id ook niet.. en daar werkt id gewoon goed
Je hebt een fout, dus is er iets geks aan de hand. Kan je het uitsluiten op voorhand? Nee, dan zul je dit dus ook moeten onderzoeken.

[ Voor 43% gewijzigd door gorgi_19 op 10-01-2004 00:22 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 26-08 09:08

Kippenijzer

McFallafel, nu met paardevlees

vorlox schreef op 10 januari 2004 @ 00:20:
Je probleem zit in je query bij

iconkleur=$'iconkleur'
moet zijn
iconkleur='$iconkleur' lijkt me
En ook bij datum en bronurl typ je verkeerd, daar staat geen $-tekentje

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-09 08:50

gorgi_19

Kruimeltjes zijn weer op :9

mysql_query($query) or die ("query mislukt");
Is imho ook niet echt zinvol; gooi dan in het die statement ook de SQL Error naar voren. "query mislukt" heb je niet zo veel aan.

En daarnaast ben je ontzettend gevoelig voor SQL Injection attacks. En je zult maar een keer een single quote moeten invoeren.. :X

[ Voor 35% gewijzigd door gorgi_19 op 10-01-2004 00:24 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Hertog_Martin
  • Registratie: Juli 2002
  • Laatst online: 19-09 23:32
Kippenijzer schreef op 10 januari 2004 @ 00:22:
[...]

En ook bij datum en bronurl typ je verkeerd, daar staat geen $-tekentje
Mensen;

opmerkingen over:

woord of 'woord' of "woord" of $woord of '$woord' of "$woord" :

Ik heb alle 6 de mogelijkheden geprobeerd
dus kan zijn dat in deze code wat foutjes daarmee staan maar de alternatieven werkten dus ook niet.

Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb miss een foutje ontdekt ,waardoor php in war raakte

verbetering:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
include("config.php");

$titel = $_POST['titel'];
$datum = $_POST['datum'];
$bericht = $_POST['bericht'];
$iconkleur = $_POST['iconkleur'];
$bron = $_POST['bron'];
$bronurl = $_POST['bronurl'];


$query = "UPDATE nieuws SET titel='$titel', bericht='$bericht',
iconkleur='$iconkleur', bron='$bron', bronurl='$bronurl', datum='$datum' WHERE
id='$id'";
mysql_query($query) or die (mysql_error());

echo "Nieuws is succesvol gewijzigd.";
}
$query = "SELECT * FROM nieuws WHERE id = $id";
$resultaat = mysql_db_query ($DBNaam, $query);
while($Rij = mysql_fetch_array ($resultaat)){
?>


<FORM>
</FORM>
<?
}
?>

Hopelijk helpt het

[ Voor 103% gewijzigd door Verwijderd op 10-01-2004 00:42 ]


Acties:
  • 0 Henk 'm!

  • mjax
  • Registratie: September 2000
  • Laatst online: 15:59
Hertog_Martin schreef op 10 januari 2004 @ 00:21:
id hoeft niet gedefinieerd te worden als het goed is want dat gaat automatisch.

Bij alle andere pagina's die de berichten uit de database halen defineer ik id ook niet.. en daar werkt id gewoon goed
Waarom zou dat automatisch goed moeten gaan? Je gebruikt toch ook de superglobal $_POST om geposte variabele uit te lezen? Waarom gebruik je dan niet $_GET voor het id?

register_globals staat tenslotte bij recente PHP versies standaard uit...

Acties:
  • 0 Henk 'm!

  • Hertog_Martin
  • Registratie: Juli 2002
  • Laatst online: 19-09 23:32
Verwijderd schreef op 10 januari 2004 @ 00:26:
bij query mislukt kun je zo intypen:

or die (mysql_error());


en de was is gedaan, :)
Ok, veranderd

Maar hoe moet ik ID dan in de code zelf op de juiste manier defineren om de juiste ID nummer bij elk bericht te behouden?

En trouwens:
$query = "SELECT * FROM nieuws WHERE id = $id";

daar definieer ik id toch?

[ Voor 13% gewijzigd door Hertog_Martin op 10-01-2004 00:35 ]


Acties:
  • 0 Henk 'm!

  • Hertog_Martin
  • Registratie: Juli 2002
  • Laatst online: 19-09 23:32
Het probleem is volgens mij echt

$Rij = mysql_fetch_array ($resultaat);

Hoewel die zelfde zin prima werkt in andere codes waar ik hem op dezelfde manier gebruik heeft die hier problemen

Want het formulier moet die zin gebruiken om de gegevens te laden.. dat werkt dus niet

en als je op submit drukt krijg je de error

mysql_fetch_array(): supplied argument is not a valid MySQL result resource in [edit]/wijzigen.php on line 16

dus het heeft daarmee te maken.

Acties:
  • 0 Henk 'm!

  • BrZ
  • Registratie: Maart 2000
  • Laatst online: 14:15

BrZ

Het gaat fout omdat die query ook al "fout" gaat. Er staat nergens $id gedefinieerd.
En trouwens:
$query = "SELECT * FROM nieuws WHERE id = $id";

daar definieer ik id toch?
Nee, daar gebruik je de variabele $id, die dus geen waarde heeft.
Doe nou eens zoals gorgi_19 al zei en echo $query eens...

Acties:
  • 0 Henk 'm!

  • Hertog_Martin
  • Registratie: Juli 2002
  • Laatst online: 19-09 23:32
BrZ schreef op 10 januari 2004 @ 00:49:
Het gaat fout omdat die query ook al "fout" gaat. Er staat nergens $id gedefinieerd.

[...]

Nee, daar gebruik je de variabele $id, die dus geen waarde heeft.
Doe nou eens zoals gorgi_19 al zei en echo $query eens...
OK:

UPDATE nieuws SET titel='', bericht='', iconkleur='', bron='', bronurl='bronurl', datum='datum' WHERE id='15'

dat geeft echo '$query';

en dat geeft ie aan bij wijzigen?id=15

dus hij pakt ID wel.

Acties:
  • 0 Henk 'm!

  • ET
  • Registratie: Mei 2000
  • Laatst online: 10-07 14:05

ET

Volgens mij haalt hij de gegevens alleen uit de Database als je een post doet, dus wanneer je een GET gebruikt voor je ID, voert hij geen query uit om gegevens uit de database te halen die in je formulier moeten komen te staan.

Of zie ik het nu helemaal verkeerd?

Acties:
  • 0 Henk 'm!

  • Hertog_Martin
  • Registratie: Juli 2002
  • Laatst online: 19-09 23:32
Verwijderd schreef op 10 januari 2004 @ 00:26:
Ik heb miss een foutje ontdekt ,waardoor php in war raakte

verbetering:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
include("config.php");

$titel = $_POST['titel'];
$datum = $_POST['datum'];
$bericht = $_POST['bericht'];
$iconkleur = $_POST['iconkleur'];
$bron = $_POST['bron'];
$bronurl = $_POST['bronurl'];


$query = "UPDATE nieuws SET titel='$titel', bericht='$bericht',
iconkleur='$iconkleur', bron='$bron', bronurl='$bronurl', datum='$datum' WHERE
id='$id'";
mysql_query($query) or die (mysql_error());

echo "Nieuws is succesvol gewijzigd.";
}
$query = "SELECT * FROM nieuws WHERE id = $id";
$resultaat = mysql_db_query ($DBNaam, $query);
while($Rij = mysql_fetch_array ($resultaat)){
?>


<FORM>
</FORM>
<?
}
?>

Hopelijk helpt het
Hey,

wat jij hebt gedaan heb ik ook al geprobeert alleen krijg (heel raar!) een parse error bij regel 51

en dat is de regel waar </html> staat

Acties:
  • 0 Henk 'm!

  • ET
  • Registratie: Mei 2000
  • Laatst online: 10-07 14:05

ET

PHP:
1
if($_SERVER['REQUEST_METHOD'] == 'POST'){

moet volgens mij na:
PHP:
1
2
3
$query = "SELECT * FROM nieuws WHERE id = $id"; 
$resultaat = mysql_db_query ($DBNaam, $query); 
$Rij = mysql_fetch_array ($resultaat);



PS. Vervang je mysql_db_query() eens. Dit word al sinds PHP4.0.6 afgeraden.

PHP 4.0.something on Red Hat Linux 7.something has already fully deprecated the mysql_db_query($mysql_database, "$query") and insists on using mysql_query("$query", $mysql_link)

[ Voor 42% gewijzigd door ET op 10-01-2004 01:10 ]


Acties:
  • 0 Henk 'm!

  • Hertog_Martin
  • Registratie: Juli 2002
  • Laatst online: 19-09 23:32
Dreamweaver geeft aan:

Afbeeldingslocatie: http://hidef.nl/untitled.JPG

aangezien over deze regel een error werd gegeven.. moet het waarschijnlijk in dit formaat neergezet worden

alleen hoe moet ik dat nou typen voor mijn code?

Acties:
  • 0 Henk 'm!

  • Hertog_Martin
  • Registratie: Juli 2002
  • Laatst online: 19-09 23:32
ET schreef op 10 januari 2004 @ 01:04:
PHP:
1
if($_SERVER['REQUEST_METHOD'] == 'POST'){

moet volgens mij na:
PHP:
1
2
3
$query = "SELECT * FROM nieuws WHERE id = $id"; 
$resultaat = mysql_db_query ($DBNaam, $query); 
$Rij = mysql_fetch_array ($resultaat);
dan krijg ik weer die vage gedoe dat hij een parse error bij </html> geeft

Acties:
  • 0 Henk 'm!

  • BrZ
  • Registratie: Maart 2000
  • Laatst online: 14:15

BrZ

In je form klopt de php code ook niet echt, en er ontbreekt een paar keer ;
Controleer eens of dat allemaal goed staat?

Acties:
  • 0 Henk 'm!

  • Hertog_Martin
  • Registratie: Juli 2002
  • Laatst online: 19-09 23:32
door alle verandering verandert het bericht nu wel als ik submit druk.. krijg alleen nog wel een error en het formulier wordt nog steeds niet geladen.. en dat moet juist

Acties:
  • 0 Henk 'm!

  • Hertog_Martin
  • Registratie: Juli 2002
  • Laatst online: 19-09 23:32
BrZ schreef op 10 januari 2004 @ 01:18:
In je form klopt de php code ook niet echt, en er ontbreekt een paar keer ;
Controleer eens of dat allemaal goed staat?
waar ontbreekt er ; volgens jou?

en je krijg vanzelf een parse error wanneer er een nodige ; ontbreekt.

Maar zoals ik al zei:

2 dingen wijzen erop dat de fout in

$Rij = mysql_fetch_array ($resultaat);

zit.

En dreamweaver geeft ook aan:

Afbeeldingslocatie: http://hidef.nl/untitled.JPG

dus dat stukje moet veranderd worden naar de manier zoals dreamweaver aangeeft en dan is het misschien WEL 'a valid MySQL result resource'

alleen ikzelf snap niet echt hoe het precies aangepast moet worden ondanks dreamweavers aanwijzing

Als ik dit gewoon doe:

$Rij = mysql_fetch_array(int result, [int result_type]);

dan krijg ik alleen nog maar een parse error en dat komt dus waarschijnlijk omdat er nog juiste waardes opgegeven moeten worden ipv 'int result' en 'int result_type]);

dus als iemand weet welke waardes daar moeten dan is het misschien opgelost

[ Voor 19% gewijzigd door Hertog_Martin op 10-01-2004 01:30 ]

Pagina: 1