19. juli 2004 - 21:15
Der er
64 kommentarer og 1 løsning
Turbo HJÆLP!
include("inc/config.inc.php"); mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die(mysql_error()); mysql_select_db($mysql_db) or die(mysql_error()); $q = mysql_query("SELECT * FROM $mysql_db_table LIMIT 1"); $felt = array(); for($i = 0; $i < mysql_num_fields($q); $i++) { $felt[] = mysql_field_name($q ,$i); } $sql = "UPDATE $mysql_db_table SET "; for($i = 0; $i < count($felt); $i++) { $sql .= "$felt[$i] = '" . $_POST{$felt[$i]} . "' "; if($i != (count($felt)-1)) { $sql .= ", "; } } $sql .= " WHERE id = '".$_POST['id']."'"; mysql_query($sql) or die(mysql_error()); include("inc/header.inc.php"); echo "Opdateringen blev udført på: " . mysql_affected_rows() . "rækker.\n<br>"; echo "<br>\n"; echo "<a href='index.php'>Tilbage til Admin Forsiden.</a><br>\n"; include("inc/footer.inc.php"); 1. Det den henter i config.inc.php er mysql oplysningerne. 2. Den vil ikke opdatere data'erne i databasen, og kan ikke finde fejlen. :( Nogle der kan se det???
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Får du nogle fejlmeddelelser?
intet ikke andet at opdateringen blev udført på 0 rækker.
Ved ikke om fejlen ligger her, men din linie: $sql .= "$felt[$i] = '" . $_POST{$felt[$i]} . "' "; Skal det ikke være: $sql .= "$felt[$i] = '" . $_POST[$felt[$i]] . "' ";
det kom før, men den virker. når jeg skal oprette.
Prøv evt at echo hele SQL'en, inden: mysql_query($sql) or die(mysql_error()); Smid den evt ind i MYSQLADMIN, og se hvad den siger?
Ok, jeg synes din kode er svær at finde en evt fejl, men har selv haft en del problemer med UPDATE i mysql, så kunne tænke mig fejlen lå der.
hmmm... pis! ... det er til en kunde, og så SKAL den drille. :(
19. juli 2004 - 22:09
#10
UPDATE sv_jobs SET id = '' , title = 'Barselsvikariat' , description = 'Jobbet omfatter varebestilling, kundebetjening og div. ad hoc opgaver i virksomheden.' , area = 'Tilst' , create_date = '' , potencial = 'Virksomheden er i stor udvikling så fremtiden vil vise mulighederne.' , education = 'Du skal mindst have noget erfaring inden for butik og lager' , exp = 'er vant til at arbejde fejlfrit og forstår at kundernes tilfredshed er din tilfredshed. Du kan lide at arbejde sammen med mange gode kollegaer' , abilities = '' , language = 'Dansk i skrift og tale' , it_knowlegde = 'På brugerniveau.' , firm_desc = '' , payment = 'Efter aftale' , start_date = '01-08-2004' , application = '' , contact = 'Fjernet' , num_vik = '1' , ref = '0' WHERE id = ''
19. juli 2004 - 22:09
#11
pis... kan den ikke modtage id fordi at den er DISABLED?
19. juli 2004 - 22:11
#12
Disabled? Mener du Javascript Disabled? Der kan jeg nok ikke hjælpe! (men DEBUG er altid godt) :o)
19. juli 2004 - 22:12
#13
nej... <input type="text" value="<?php echo $id; ?>" DISABLED> Det gør at den ikke kan skrives i, altså ændres.
19. juli 2004 - 22:19
#14
Ok, du kan jo ikke ændre feltet, men hvis du sætter det med value="blabla" bør det jo godt kunne sættes, men ikke ændres af brugeren!
19. juli 2004 - 22:21
#15
hmm nu fik jeg den til at virke, men den fjerner ID i databasen.. hvorfor gør den det??
19. juli 2004 - 22:22
#16
det er igen fordi at ID er låst... hmmm ... *tænker*
19. juli 2004 - 22:26
#17
okey den er løst. ;) mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die(mysql_error()); mysql_select_db($mysql_db) or die(mysql_error()); $q = mysql_query("SELECT * FROM $mysql_db_table LIMIT 1"); $felt = array(); for($i = 0; $i < mysql_num_fields($q); $i++) { $felt[] = mysql_field_name($q ,$i); } $sql = "UPDATE $mysql_db_table SET "; for($i = 0; $i < count($felt); $i++) { if($felt[$i] == "id") { $_POST{$felt[$i]} = $_POST['sec_id']; } $sql .= "$felt[$i] = '" . $_POST{$felt[$i]} . "' "; if($i != (count($felt)-1)) { $sql .= ", "; } } $sql .= " WHERE id = '".$_POST['sec_id']."'"; mysql_query($sql) or die(mysql_error());
19. juli 2004 - 22:30
#18
hmm har du tid til et lille spørgsmål mere?
20. juli 2004 - 07:07
#19
Prøv? (hvis ikke det er for sent)
20. juli 2004 - 20:14
#20
er det skam ikke. jeg kan ikke få den til at smide tiden ordenligt ind. :( jeg skal have den til at sætte en UNIX_TIMESTAMP() i mysql'en. jeg forsøgte mig med: if($felt[$i] == "create_date") { $_POST{$felt[$i]} = 'UNIT_TIMESTAMP()';} den det fejler den ved.
20. juli 2004 - 21:52
#21
Er det fordi du skal bruge tidspunktet nu? Så kan MYSQL nemlig bruge felt = NOW()
20. juli 2004 - 21:53
#22
Altså "UPDATE sv_jobs SET tid = NOW()" F.eks...
21. juli 2004 - 01:37
#23
jamen det skal være så det passer ind i det jeg har nu... for den hiver jo også create_date med ud, som unix sekunder. ;)
21. juli 2004 - 06:59
#24
Hvad med: if($felt[$i] == "create_date") { $_POST{$felt[$i]} = 'UNIT_TIMESTAMP(NOW())';}
21. juli 2004 - 07:09
#25
Ok, jeg er måske ikke helt med! (misforstod dine tidligere spørgsmål) create_date er et felt ikke? Og du vil du have sat med UNIX_TIMESTAMP() Din kode ser rigtig nok ud, får du nogle fejl? Prøv evt at print SQL igen!
21. juli 2004 - 13:42
#26
så har jeg lige hørt den igennem igen, og jeg får ingen fejl, den gør det bare ikke... :(
21. juli 2004 - 13:46
#27
Det kan evt ikke skyldes fejl andet sted i SQL'en? Tomt felt eller lign?
21. juli 2004 - 13:47
#28
min sql ser sådan her ud: UPDATE sv_jobs SET id = '1' , title = 'Barselsvikariat' , description = 'Jobbet omfatter varebestilling, kundebetjening og div. ad hoc opgaver i virksomheden.' , area = 'Tilst' , create_date = 'UNIT_TIMESTAMP(NOW())' , potencial = 'Virksomheden er i stor udvikling så fremtiden vil vise mulighederne.' , education = 'Du skal mindst have noget erfaring inden for butik og lager' , exp = 'Du er vant til at arbejde fejlfrit og forstår at kundernes tilfredshed er din tilfredshed. Du kan lide at arbejde sammen med mange gode kollegaer' , abilities = '' , language = 'Dansk i skrift og tale' , it_knowlegde = 'På brugerniveau.' , firm_desc = '' , payment = 'Efter aftale' , start_date = '01-08-2004' , application = '' , contact = 'Rune Salomonsson' , num_vik = '1' , ref = '0' WHERE id = '1' med denne kode. include("inc/config.inc.php"); mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die(mysql_error()); mysql_select_db($mysql_db) or die(mysql_error()); $q = mysql_query("SELECT * FROM $mysql_db_table LIMIT 1"); $felt = array(); for($i = 0; $i < mysql_num_fields($q); $i++) { $felt[] = mysql_field_name($q ,$i); } $sql = "UPDATE $mysql_db_table SET "; for($i = 0; $i < count($felt); $i++) { if($felt[$i] == "id") { $_POST{$felt[$i]} = $_POST['sec_id']; } if($felt[$i] == "create_date") { $_POST{$felt[$i]} = UNIT_TIMESTAMP();} $sql .= "$felt[$i] = '" . $_POST{$felt[$i]} . "' "; if($i != (count($felt)-1)) { $sql .= ", "; } } $sql .= " WHERE id = '".$_POST['sec_id']."'"; mysql_query($sql) or die(mysql_error()); include("inc/header.inc.php"); echo "Opdateringen blev udført på: " . mysql_affected_rows() . "rækker.\n<br>"; echo "<br>\n"; echo $sql . "<br>\n"; echo "<br>\n"; echo "<a href='index.php'>Tilbage til Admin Forsiden.</a><br>\n"; include("inc/footer.inc.php");
21. juli 2004 - 13:49
#29
jamen så burde den jo fejle når man lagde det ind i første omgang...
21. juli 2004 - 13:55
#30
første fejl fundet. sad og oploadede filen et forkert sted, derfor der ikke skete nogle ændringer. *G* Den fejl jeg får er. Fatal error: Call to undefined function: unit_timestamp() in /var/www/epoxy/web2/alabitdk/docs/scanvikar/admin/red_update.php on line 27 og det er med UNIX_TIMESTAMP()...
21. juli 2004 - 13:57
#31
Se hvordan du staver: unit_timestamp() på LINIE 27!
21. juli 2004 - 14:02
#32
*suk* ... det er det med at glo sig blind på tingene.. :(
21. juli 2004 - 14:05
#33
det virker stadig ikke.. der sker ikke en bønne. :(
21. juli 2004 - 14:05
#34
Har du nogle fejl på dine side? Kan du evt printe SQL igen?
21. juli 2004 - 14:06
#35
ja 2 sec
21. juli 2004 - 14:07
#36
UPDATE sv_jobs SET id = '1' , title = 'Barselsvikariat' , description = 'Jobbet omfatter varebestilling, kundebetjening og div. ad hoc opgaver i virksomheden.' , area = 'Tilst' , create_date = 'UNIX_TIMESTAMP(0)' , potencial = 'Virksomheden er i stor udvikling så fremtiden vil vise mulighederne.' , education = 'Du skal mindst have noget erfaring inden for butik og lager' , exp = 'Du er vant til at arbejde fejlfrit og forstår at kundernes tilfredshed er din tilfredshed. Du kan lide at arbejde sammen med mange gode kollegaer' , abilities = '' , language = 'Dansk i skrift og tale' , it_knowlegde = 'På brugerniveau.' , firm_desc = '' , payment = 'Efter aftale' , start_date = '01-08-2004' , application = '' , contact = 'Rune Salomonsson' , num_vik = '1' , ref = '0' WHERE id = '1'
21. juli 2004 - 14:11
#37
hmm jeg må løse det med en time() istedet for en unix_timestamp. men ville faktisk gerne have den ordinale dato ind istedet for en ny... :(
21. juli 2004 - 14:15
#38
orginale date even. *kan nada stave* :(
21. juli 2004 - 14:16
#39
Prøv at skift: create_date = 'UNIX_TIMESTAMP(0)' Til: create_date = UNIX_TIMESTAMP() eller evt: create_date = 'UNIX_TIMESTAMP()'
21. juli 2004 - 14:18
#40
har jeg prøvet, på create_date = UNIX_TIMESTAMP() får jeg en fejl om undefined function.. og 'UNIX_TIMESTAMP()' sker der ikke en bjælde. :( men forstår ikke hvorfor den ikke bare lægger den orginale dato ind. :(
21. juli 2004 - 14:21
#41
Sådan her ser SQL'en ud, hvis jeg kører den uden at skulle ændre dato'en. UPDATE sv_jobs SET id = '1' , title = 'Barselsvikariat' , description = 'Jobbet omfatter varebestilling, kundebetjening og div. ad hoc opgaver i virksomheden.' , area = 'Tilst' , create_date = '' , potencial = 'Virksomheden er i stor udvikling så fremtiden vil vise mulighederne.' , education = 'Du skal mindst have noget erfaring inden for butik og lager' , exp = 'Du er vant til at arbejde fejlfrit og forstår at kundernes tilfredshed er din tilfredshed. Du kan lide at arbejde sammen med mange gode kollegaer' , abilities = '' , language = 'Dansk i skrift og tale' , it_knowlegde = 'På brugerniveau.' , firm_desc = '' , payment = 'Efter aftale' , start_date = '01-08-2004' , application = '' , contact = 'Rune Salomonsson' , num_vik = '1' , ref = '0' WHERE id = '1' det virker meget som om at den ikke mod... PIS!!!.. øjeblik. :(
21. juli 2004 - 14:31
#42
prøvede med denne her.. virker ikke. $sql = "UPDATE $mysql_db_table SET "; for($i = 0; $i < count($felt); $i++) { if($felt[$i] == "id") { $_POST{$felt[$i]} = $_POST['sec_id']; } if($felt[$i] == "create_date") { $_POST{$felt[$i]} = $_POST['sec_date']; } $sql .= "$felt[$i] = '" . $_POST{$felt[$i]} . "' "; if($i != (count($felt)-1)) { $sql .= ", "; } } $sql .= " WHERE id = '".$_POST['sec_id']."'"; mysql_query($sql) or die(mysql_error()); hvor jeg har lavet et <input hidden ...> og så prøvede jeg med denne her: $sql = "UPDATE $mysql_db_table SET "; for($i = 0; $i < count($felt); $i++) { if($felt[$i] == "id") { $_POST{$felt[$i]} = $_POST['sec_id']; } $sql .= "$felt[$i] = '" . $_POST{$felt[$i]} . "' "; if($i != (count($felt)-1)) { $sql .= ", "; } } $sql .= " WHERE id = '".$_POST['sec_id']."'"; mysql_query($sql) or die(mysql_error()); $sql = "UPDATE $mysql_db_table SET create_date = '" . $_POST['sec_date'] . " WHERE id = '" . $_POST['sec_id'] . "'"; mysql_query($sql) or die(mysql_error()); Virker heller ikke... så får jeg denne her fejl på den: 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 '1'' at line 1
21. juli 2004 - 14:33
#43
hmm glemte et ' efter sec_date'] . " men laver stadig bare create_date = '' ... :(
21. juli 2004 - 14:37
#44
hmm tror jeg har fundet fejlen.. skriver så snart jeg ved noget.
21. juli 2004 - 14:39
#45
Hvad med denne: $sql = "UPDATE $mysql_db_table SET create_date = UNIX_TIMESTAMP() WHERE id = '" . $_POST['sec_id'] . "'";
21. juli 2004 - 14:44
#46
jamen jeg skal bruge det tidspunkt hvor jobbet er oprettet. sorry my der koger. :( har lavet denne her nu: include("inc/config.inc.php"); mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die(mysql_error()); mysql_select_db($mysql_db) or die(mysql_error()); $q = mysql_query("SELECT * FROM $mysql_db_table where id = '$_GET[id]' LIMIT 1"); $antal = mysql_num_fields($q); include("inc/header.inc.php"); $hidden_fields = ""; echo<<<EOD <table cellpadding="0" cellspacing="0" border="0" width="650" align="center"> EOD; echo"<form action='red_update.php' method='post'>\n"; echo "<input type='hidden' name='sec_id' value='". $_GET['id'] . "'>\n"; //echo "<input type='hidden' name='sec_date' value='" . $_GET['create_date'] . "'>"; while($row = mysql_fetch_array($q)){ for($i = 0; $i < $antal; $i++) { $hidden_fields .= mysql_field_name($q, $i) . ";"; if(mysql_field_name($q, $i) == "id" || mysql_field_name($q, $i) == "create_date") { echo "<input type='hidden' name='" . mysql_field_name($q, $i) . "' value='" . $row{i} . "'>\n"; } else { if(mysql_field_type($q, $i) == "blob") { echo"<tr><td align='right' valign='top'><font style='font-size: 14px'><b>" . ucwords(mysql_field_name($q, $i)) . ": </b></font></td><td><textarea cols='40' rows='6' name='" . mysql_field_name($q, $i) . "'>" . $row{$i} . "</textarea></td></tr>\n"; } else { echo"<tr><td align='right' valign='top'><font style='font-size: 14px'><b>" . ucwords(mysql_field_name($q, $i)) . ": </b></font></td><td><input type='text' name='" . mysql_field_name($q, $i) . "' value='".$row{$i}."'></td></tr>\n"; } } } } echo "<tr><td> </td><td><input type='submit'></td></tr>\n"; echo "</table>"; include("inc/footer.inc.php"); men den laver stadig create_date tom.. kan jeg se html'en for siden. :(
21. juli 2004 - 14:49
#47
Nu er jeg snart mere forvirret end hvad godt er! Hvor har du dato'en henne? Har du den i en database? Skal den sættes i det øjeblik du kører UPDATE?
21. juli 2004 - 14:51
#48
okey vi tager den fra starten af så. ;)
21. juli 2004 - 14:53
#49
Når min kunde opretter et job, så sætter den en dato på, og smider det i mysql. ;) når han så skal redigere jobbet, så hiver den det hele ud fra databasen og planter i en flot form. ;) nu er problemet så, at når han så gemmer tingene igen, (altså kører den update i mysql, så sætter den dato til 0)
21. juli 2004 - 14:56
#50
Ok, hvordan er dit felt i databasen? UNIX_TIMESTAMP? Eller læsbar dato, f.eks.: 21-07-2004?
21. juli 2004 - 14:57
#51
og jeg kan se nu at den hverken hiver id eller create_date med ud fra databasen, selv om den kører alt igennem. :(
Fatter ikke hvorfor.
du kan prøve at hoppe ind på
http://www.scanvikar.alabit.dk trykke på "Scan-Vikar Olaf Rudes vej 36 8270 Højbjerg" i bunden, så kommer du ind til Admin interfacet.
Tryk på rediger job, og så tryk på det job der er.
højre klik og vælg "Vis Kilde" så kan du se hvad jeg mener med at den ikke hiver id og create_date med ud.
21. juli 2004 - 14:58
#52
int.. og så smider jeg UNIX_TIMESTAMP() på den, når den opretter. og standard værdi er NULL.
21. juli 2004 - 15:03
#53
Er du sikker på DATOen er sat? Hvad hvis du kigger i din database, kan du så se tiden?
21. juli 2004 - 15:05
#54
er 100% sikker. ;) i databasen står der under create_date: 1090413629 ;)
21. juli 2004 - 15:07
#55
Er du så sikker på du trækker den rigtig ud? Den sættes jo tydeligvis ikke, så der mangler noget et eller andet sted! :o)
21. juli 2004 - 15:09
#56
ja dato'en mangler på den side hvor han skal redigere jobbet. og jeg forstår ikke hvorfor den ikke vil hive ud.. det er det samme med id'et...
21. juli 2004 - 15:10
#57
Hvilken SQL brugte du til at trække ID og DATO ud til den side hvor du vil redigere?
21. juli 2004 - 15:11
#58
hvis jeg laver det sådan at der kommer et felt til både id og create_date så virker det fint nok, ingen problemer. men hvis jeg vil lave dem hidden... så fejler den.
21. juli 2004 - 15:13
#59
det virker nu... den skulle åbenbart hjælpes. :( gjorde det at jeg lavede fejler til dem, og så reloadede jeg siden, så jeg kunne se at tiden stod der... lavede dem om til hidden, og prøvede igen. og det virker. Rimelig skumler, smid lige et svar, så får du 120 point for det her. pga. tiden der er blevet brugt på det. ;)
21. juli 2004 - 15:14
#60
include("inc/header.inc.php"); $hidden_fields = ""; echo<<<EOD <table cellpadding="0" cellspacing="0" border="0" width="650" align="center"> EOD; echo"<form action='red_update.php' method='post'>\n"; echo "<input type='hidden' name='sec_id' value='". $_GET['id'] . "'>"; //echo "<input type='hidden' name='sec_date' value='" . $_GET['create_date'] . "'>"; while($row = mysql_fetch_array($q)){ for($i = 0; $i < $antal; $i++) { $hidden_fields .= mysql_field_name($q, $i) . ";"; if(mysql_field_name($q, $i) == "id" || mysql_field_name($q, $i) == "create_date") { echo"<input type='hidden' size='2' name='" . mysql_field_name($q, $i) . "' value='".$row{$i}."'>\n"; } else { if(mysql_field_type($q, $i) == "blob") { echo"<tr><td align='right' valign='top'><font style='font-size: 14px'><b>" . ucwords(mysql_field_name($q, $i)) . ": </b></font></td><td><textarea cols='40' rows='6' name='" . mysql_field_name($q, $i) . "'>" . $row{$i} . "</textarea></td></tr>\n"; } else { echo"<tr><td align='right' valign='top'><font style='font-size: 14px'><b>" . ucwords(mysql_field_name($q, $i)) . ": </b></font></td><td><input type='text' name='" . mysql_field_name($q, $i) . "' value='".$row{$i}."'></td></tr>\n"; } } } } echo "<tr><td> </td><td><input type='submit'></td></tr>\n"; echo "</table>"; include("inc/footer.inc.php");
21. juli 2004 - 15:14
#61
sådan ser koden ud bag den side hvor han kan redigere det. ;)
21. juli 2004 - 15:23
#62
Svar...
21. juli 2004 - 15:25
#63
Tak for hjælpen. det var sQ dejligt. ;)
21. juli 2004 - 15:27
#64
Jeg synes jo ikke jeg gjorde så meget, men glad for du fik løst problemet! :o)
21. juli 2004 - 15:29
#65
meget muligt du ikke gjorde så meget, men du var med til at navigere problemet ind, og det er tit langt bedre, end hvis folk bare laver det for en. *GGG* ;) Selvfølgelig hvis man er ude på et område hvor man ikke selv kan være med, så er det jo godt nok. ;)
Vi tilbyder markedets bedste kurser inden for webudvikling