Avatar billede roz Nybegynder
28. juni 2005 - 14:03 Der er 27 kommentarer og
1 løsning

PHP MySQL fejl

Nogen der kan se hvad der er galt her:

<?php
if (!isset($send)) {
?>
Tilføj Varegruppe<br>
<form action=<?php $php_self ?> method=post>
Navn på gruppen:<br>
<input type=text name=group size=30 maxlength=30><br>
<input type=submit name=send>
</form>
<?php
include ("config.php");
} else {
$result = mysql_query "SELECT * FROM groups WHERE group = ’$group’";
if (!$result) {
$result = mysql_query "INSERT INTO groups SET group = ‘$group’";
if (!$result) {
echo "Prøv venligst igen.";
} else {
echo "Gruppen "$group" er nu oprettet";
}
}
} else {
echo "Gruppen "$group" eksisterer allerede.";
}
}
?>


Fejlen er denne:
Parse error: parse error in c:\apache\htdocs\webstore\opret_gruppe.php on line 13
Avatar billede erikjacobsen Ekspert
28. juni 2005 - 14:05 #1
$result = mysql_query("SELECT * FROM groups WHERE group = ’$group’");
Avatar billede jakobdo Ekspert
28. juni 2005 - 14:05 #2
Og er det ikke bedre at bruge: '' og ikke ’’ eller det er måke det samme?
Avatar billede gil-galad Nybegynder
28. juni 2005 - 14:06 #3
prøv denne:



<?php
if (!isset($send)) {
?>
Tilføj Varegruppe<br>
<form action=<?php $php_self ?> method=post>
Navn på gruppen:<br>
<input type=text name=group size=30 maxlength=30><br>
<input type=submit name=send>
</form>
<?php
include ("config.php");
} else {
    $result = mysql_query("SELECT * FROM groups WHERE group = 'group'") or die(mysql_error());
if (!$result) {
    $result = mysql_query("INSERT INTO groups SET group = '$group'") or die(mysql_error());
if (!$result) {
    echo "Prøv venligst igen.";
} else {
    echo "Gruppen "$group" er nu oprettet";
}
}
} else {
    echo "Gruppen "$group" eksisterer allerede.";
}
}
?>
Avatar billede gil-galad Nybegynder
28. juni 2005 - 14:06 #4
undskyld... For sent ude
Avatar billede roz Nybegynder
28. juni 2005 - 14:09 #5
erikjacobsen det virker :) Tak skal du ha'. Smid et svar så får du poiny :)

Men får en ny fejl nu og kan ikke lige huske hvordan det er man bruger variabler i sætninger:
Parse error: parse error, expecting `','' or `';'' in c:\apache\htdocs\webstore\opret_gruppe.php on line 19
Avatar billede gil-galad Nybegynder
28. juni 2005 - 14:10 #6
echo "Gruppen ".$group." er nu oprettet";

echo "Gruppen ".$group." eksisterer allerede.";
Avatar billede roz Nybegynder
28. juni 2005 - 14:16 #7
Tak endnu en gang. :)

Har kun et spørgsmål tilbage:

Nu har jeg delt filerne op således:
opret.php:
Tilføj Varegruppe<br>
<form action=opret_gruppe.php method=post>
Navn på gruppen:<br>
<input type=text name=group size=30 maxlength=30><br>
<input type=submit name=send>
</form>

opret_gruppe.php:
<?php
include ("config.php");
$result = mysql_query("SELECT * FROM groups WHERE group = ’$group’");
if (!$result) {
$result = mysql_query("INSERT INTO groups SET group = ‘$group’");
if (!$result) {
echo "Prøv venligst igen.";
} else {
echo "Gruppen ".$group." er nu oprettet";
}
}
else {
echo "Gruppen ".$group." eksisterer allerede.";
}
?>

Problemet er den bliver ved med at vise "Prøv venligst igen" istedet for at oprette en gruppe. Hvad kan dette skyldes?
Avatar billede gil-galad Nybegynder
28. juni 2005 - 14:21 #8
prøv :


<?php
$group = $id = $_POST['group'];

include ("config.php");
} else {
    $result = mysql_query("SELECT * FROM groups WHERE group = '$group'") or die(mysql_error());
if (!$result) {
    $result = mysql_query("INSERT INTO groups SET group = '$group'") or die(mysql_error());
if (!$result) {
    echo "Prøv venligst igen.";
} else {
    echo "Gruppen ".$group." er nu oprettet";
}
}
} else {
    echo "Gruppen ".$group." eksisterer allerede.";
}
}
?>
Avatar billede Slettet bruger
28. juni 2005 - 14:21 #9
opret_gruppe.php:
$result = mysql_query("SELECT * FROM groups WHERE group = ’$group’");

ved ikke om det er meningen kun med 1 `=´ prøv med 2...
Avatar billede gil-galad Nybegynder
28. juni 2005 - 14:21 #10
$group = $_POST['group'];  skal den første kodelinie være...
Avatar billede roz Nybegynder
28. juni 2005 - 14:25 #11
Hmm virker stadig ikke. Prøvede også lige at sætte or die(mysql_error()) på og den viste fejlen:
You have an error in your SQL syntax near 'group = ’' at line 1
Avatar billede gil-galad Nybegynder
28. juni 2005 - 14:27 #12
du bruger stadig ’ når du skal bruge '    tag denne kode:

<?php
$group = $_POST['group'];

include ("config.php");
} else {
    $result = mysql_query("SELECT * FROM groups WHERE group = '$group'") or die(mysql_error());
if (!$result) {
    $result = mysql_query("INSERT INTO groups SET group = '$group'") or die(mysql_error());
if (!$result) {
    echo "Prøv venligst igen.";
} else {
    echo "Gruppen ".$group." er nu oprettet";
}
}
} else {
    echo "Gruppen ".$group." eksisterer allerede.";
}
}
?>



prøv så
Avatar billede roz Nybegynder
28. juni 2005 - 14:30 #13
Har jeg forsøgt. Giver samme fejl :(
Avatar billede gil-galad Nybegynder
28. juni 2005 - 14:31 #14
ahhh... to sek
Avatar billede roz Nybegynder
28. juni 2005 - 14:33 #15
Okay :)
Avatar billede gil-galad Nybegynder
28. juni 2005 - 14:40 #16
prøv dette:

opret.php

Tilføj Varegruppe<br>
<form action="opret_gruppe.php" method="post">
Navn på gruppen:<br>
<input type="text" name="group" size="30" maxlength="30"><br>
<input type="submit" name="send">
</form>




opret_gruppe.php
<?php
$group = $_POST['group'];
include ('config.php');

$result = mysql_query("SELECT * FROM groups WHERE group = '$group'") or die(mysql_error());
if( $row = mysql_fetch_array($result)){
  echo "Gruppen ".$group." eksisterer allerede.";
}
else{
    $result = mysql_query("INSERT INTO groups SET group = '$group'") or die(mysql_error());
    echo "Gruppen ".$group." er nu oprettet";
}
?>
Avatar billede roz Nybegynder
28. juni 2005 - 14:43 #17
Stadig samme fejl :(
Avatar billede roz Nybegynder
28. juni 2005 - 14:51 #18
Har du andre ideer/forslag til hvad der kan være galt? :)
Avatar billede gil-galad Nybegynder
28. juni 2005 - 14:52 #19
hmm... prøver lige at kontruere problemet på min egen server. Så kan det være det hjælper.
Avatar billede roz Nybegynder
28. juni 2005 - 14:55 #20
Okay tak for al hjælpen indtil nu :)

Det må vel være denne linje der giver problemet: $group = $_POST['group'];
Avatar billede gil-galad Nybegynder
28. juni 2005 - 14:58 #21
nej... har fundet fejlen! du må ikke kalde feltet group, da det er et reserveret ord i php.

Brug denne kode:

<?php
$group = $_POST['group'];
include ('filer/connect_universet.php');

$result = mysql_query("SELECT * FROM groups WHERE gruppe = '$group'") or die(mysql_error());
if (mysql_num_rows($result)>0) {
  echo "Gruppen ".$group." eksisterer allerede.";
}
else{
    $result = mysql_query("INSERT INTO groups SET gruppe = '$group'") or die(mysql_error());
    echo "Gruppen ".$group." er nu oprettet";
}
?>



og omdøb dit felt fra 'group' til 'gruppe'
Avatar billede gil-galad Nybegynder
28. juni 2005 - 14:58 #22
Ændrer denne: include ('filer/connect_universet.php'); til din egen self :-)
Avatar billede roz Nybegynder
28. juni 2005 - 15:01 #23
Ahh ja nu virker det :) Mange tak for hjælpen. Smid svar så får du halvdelen af pointene.
Avatar billede gil-galad Nybegynder
28. juni 2005 - 15:02 #24
et svar
Avatar billede erikjacobsen Ekspert
28. juni 2005 - 15:04 #25
Ingen point til mig, tak.
Avatar billede gil-galad Nybegynder
29. juni 2005 - 18:20 #26
? Du skal lige acceptere mit svar
Avatar billede Slettet bruger
30. juni 2005 - 10:03 #27
Bare en kort bemærkning: group er ikke et reserveret ord i PHP men i MySQL. Samme fejl oplever man, hvis man prøver at bruge nogle af de andre reserverede ord som feltnavne i databasen. Jeg er f.eks. blevet bidt af "by" og "desc".

Man kan komme uden om problemet ved at sætte ` om feltnavnene, som i SELECT `group` FROM tabel
Avatar billede roz Nybegynder
03. juli 2005 - 15:48 #28
Undskyld jeg var lidt længe om det gil-galad men har ikke lige været hjemme. Men tak endnu en gang :) Os til dig erik ;)

Det vidste jeg ikke sandbox :) Godt a vide til en anden gang.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester