11. november 2003 - 02:10
Der er
65 kommentarer og 1 løsning
supplied argument is not a valid MySQL result
Det er hvad jeg får når jeg fyrer denne af: $imeiDB = $_GET['imei']; print "Edit device with imei nr.: $imeiDB"; $usermark = $_SESSION['user']; $result = mysql_query("SELECT * FROM x8unit WHERE imei='$imeiDB' && usermark='$usermark'") || die(mysql_error()); $rows = mysql_fetch_array($result) || die(mysql_error()); Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result on line 22. Line 22: $rows = mysql_fetch_array($result) || die(mysql_error());
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.
11. november 2003 - 02:17
#1
du har husket mysql_connect() og mysql_select_db()? måske et dumt spm, men nogle gange kan man glemme den i skyndingen, og får typesk den fejlmeddelelse
11. november 2003 - 02:19
#2
Følgende vil nok give dig et hint om hvor fejlen findes: $sql = "SELECT * FROM x8unit WHERE imei='$imeiDB' && usermark='$usermark'"; $result = mysql_query($sql) or die(mysql_error() . '<br>' . $sql); echo "Antal rækker: " . mysql_num_rows($result); $rows = mysql_fetch_array($result) or die(mysql_error());
11. november 2003 - 02:19
#3
ztyxx: Så vil man få en fejl senest ved mysql_query();
11. november 2003 - 02:24
#4
bruger du mysql_connect eller mysql_pconnect til at forbinde til DB med? Jeg har selv tidl. været udsat for at mysql_pconnect var årsagen til denne type fejl. Hvis du bruger mysql_pconnect, skift den ud med mysql_connect
11. november 2003 - 02:27
#5
Okay... Det er ikke kun den query der laver lort nu. Alle mine queryes kommer med den samme fejl nu. Og de har virket hele dagen. Har ikke ændret i conn filen. Kan et reboot hjælpe? Bruger mysql_connect
11. november 2003 - 02:44
#6
Nææ.. Det var kun den. tipsen har prøvet hvad du siger, men kan stadig ikke se hvad fejlen er.
11. november 2003 - 02:48
#7
You have an error in your SQL syntax near '1' at line 1. Ved ikke om det hjælper jer.
11. november 2003 - 02:50
#8
så er det i $sql fejlen ligger, prøv at vise lidt mere, og du kan evt tjekke indholdet af din session, da jeg kunne have en mistanke om at det er der fejlen ligger
11. november 2003 - 02:56
#9
Når jeg udskriver min session indeholder den human som den skal. $imeiDB = $_GET['imei']; print "Edit device with imei nr.: $imeiDB"; $devsql = ("SELECT * FROM x8unit WHERE imei='$imeiDB' && usermark='$usermark'") || die(mysql_error()); $resul = mysql_query($devsql) || die(mysql_error()); while($rows = mysql_fetch_array($resul)) Så omkring 80 linier længere nede udskriver jeg rows i et value felt: fx value="<? print $rows['carbrand']; ?>"
11. november 2003 - 02:58
#10
Og når jeg bruger overstående får jeg som sagt fejlen: You have an error in your SQL syntax near '1' at line 1.
11. november 2003 - 02:58
#11
hvad indeholder $imeiDB ?
11. november 2003 - 03:00
#12
666666666666666
11. november 2003 - 03:02
#13
og det er der et record i tabellen der hedder?? prøv evt at fjerne ´erne om $imeiDB, så det bliver $devsql = ("SELECT * FROM x8unit WHERE imei=$imeiDB && usermark='$usermark'") || die(mysql_error());
11. november 2003 - 03:05
#14
Ja det er der noget i tabllen der hedder. Samme fejl hvis jeg fjerner ''.
11. november 2003 - 03:06
#15
og $imeiDB = 666666666666666 passer med et record der hedder usermark = human
11. november 2003 - 03:10
#16
Altså. Der er noget i tabellen som hedder 666666666666666 under imei. Så ja $imeiDB er = 666666666666666. Der er også noget der hedder human under usermark. Så ja, $usermark er = human.
11. november 2003 - 03:12
#17
i din query søges der efter begge dele i din record, det er det jeg efterlyser om der er
11. november 2003 - 03:14
#18
Det må være et ja.
11. november 2003 - 03:14
#19
Begge dele er der.
11. november 2003 - 03:17
#20
okay, hvad gav tipsens forslag?
11. november 2003 - 03:18
#21
bruger jeg hans står der: Antal rækker: 0
11. november 2003 - 03:20
#22
jamen så kan den række ikke findes med både usermark = human og imeiDB = 666666666666666 i samme record
11. november 2003 - 03:20
#23
Ved ikke hvad jeg kan bruge det til. Og resten af siden bliver ikke udført.
11. november 2003 - 03:21
#24
tipsens forslag var at tælle hvor mange records i tabellen der opfylder begge søgekriterier samtidig
11. november 2003 - 03:24
#25
hvis man stiller detskematisk op, er det du søger efter, en række i tabellen der ser sådan ud id | imeiDB | usermark ------------------------------- 01 | 666666666666666 | human
11. november 2003 - 03:25
#26
Okay.. Så fatter jeg ikke selv hvad jeg beder den om. Beder jeg den ikke om at finde alle rækker hvor det valgte imei nr. er? Det er ikke muligt at vælge et imei nr. der ikke er i samme række som ens usermark. Når imei nr. Er valgt ud fra denne query: $usermark = $_SESSION['user']; $query = "SELECT * FROM x8unit WHERE usermark='$usermark'"; $result = mysql_query($query); while($row = mysql_fetch_array($result)) Det kan simpelthen ikke lade sig gøre.
11. november 2003 - 03:26
#27
Lige nøjagtig! Og det er også sådan det ser ud. Tager gerne et screenshot af tabellen.
11. november 2003 - 03:27
#28
det må du meget gerne :-)
11. november 2003 - 03:29
#29
du beder den om at finde rækker med det valgte imei, og samtidig skal der være usermark der hedder human, hvis du kun søger på imei, som i det sidste eksempel, kommer den med alle der matcher det imei, uanset navnet på usermark
11. november 2003 - 03:30
#30
du kan også hive et dumb af tabellen ud, både struktur og data
11. november 2003 - 03:37
#31
Nej gud da mig og billedbehandling.
Du kan se det her:
http://techcity.dk/download/untitled.jpg De står i hver sin ende. OG der er 15 6 taller selvom du ikke kan se dem.
Det er forresten ikke muligt, at indsætte andet end 15 tal.
11. november 2003 - 03:38
#32
Det skal kunne lade sig gøre, har gjort det før. Ved ikke om det skal siges at det ikke er den eneste query på siden.
11. november 2003 - 03:41
#33
er de andre querys på siden nogle der søger i samme tabel?
11. november 2003 - 03:42
#34
Kan man godt sige, den opdatere dem. Skal jeg prøve at poste hele scriptet? 132 lines.
11. november 2003 - 03:43
#35
ja, hvis du også gider at smide et dumb af tabellen
11. november 2003 - 03:44
#36
eller smid det hele i en zip fil, så sparer vi pladsen her
11. november 2003 - 03:45
#37
Hele siden: <? session_start(); header("Cache-control: private"); require("inc/conn_inc.php"); session_checker(); ?> <html> <head> <title>Edit.php</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <br><br> <? $imeiDB = $_GET['imei']; print "Edit device with imei nr.: $imeiDB"; $devsql = ("SELECT * FROM x8unit WHERE imei='$imeiDB' && usermark='$usermark'") || die(mysql_error()); $resul = mysql_query($devsql) || die(mysql_error()); while($rows = mysql_fetch_array($resul)) $errors = array(); $fejl = 5; #carbrand check if(isset($_POST['carbrand'])) { if(trim($_POST['carbrand']) == '') $errors['carbrand'] = "<font color='#FF3300'>Field Carbrand is required</font>."; else $fejl--; } else $errors['carbrand'] = "*"; #carmodel check if(isset($_POST['carmodel'])) { if(trim($_POST['carmodel']) == '') $errors['carmodel'] = "<font color='#FF3300'>Field Carmodel is required</font>."; else $fejl--; } else $errors['carmodel'] = "*"; #devicenumber check if(isset($_POST['devicenumber'])) { if(trim($_POST['devicenumber']) == '') $errors['devicenumber'] = "<font color='#FF3300'>Field Devicenumber is required</font>."; else $fejl--; } else $errors['devicenumber'] = "*"; #unitid check if(isset($_POST['unitid'])) { if(trim($_POST['unitid']) == '') $errors['unitid'] = "<font color='#FF3300'>Field Unitid is required</font>."; else $fejl--; } else $errors['unitid'] = "*"; #mainnumber check if(isset($_POST['mainnumber'])) { if(trim($_POST['mainnumber']) == '') $errors['mainnumber'] = "<font color='#FF3300'>Field Mainnumber is required</font>."; else $fejl--; } else $errors['mainnumber'] = "*"; if(!$fejl){ $carbrand = $_POST['carbrand']; $carmodel = $_POST['carmodel']; $devicenumber = $_POST['devicenumber']; $unitid = $_POST['unitid']; $mainnumber = $_POST['mainnumber']; $vip1 = $_POST['vip1']; $vip2 = $_POST['vip2']; $vip3 = $_POST['vip3']; $vip4 = $_POST['vip4']; $vip5 = $_POST['vip5']; $vip6 = $_POST['vip6']; #strip out specialchars (security) $carbrand = htmlspecialchars($carbrand,ENT_QUOTES); $carmodel = htmlspecialchars($carmodel,ENT_QUOTES); $devicenumber = htmlspecialchars($devicenumber,ENT_QUOTES); $mainnumber = htmlspecialchars($mainnumber,ENT_QUOTES); $vip1 = htmlspecialchars($vip1,ENT_QUOTES); $vip2 = htmlspecialchars($vip2,ENT_QUOTES); $vip3 = htmlspecialchars($vip3,ENT_QUOTES); $vip4 = htmlspecialchars($vip4,ENT_QUOTES); $vip5 = htmlspecialchars($vip5,ENT_QUOTES); $vip6 = htmlspecialchars($vip6,ENT_QUOTES); $sql = ("UPDATE x8unit SET carbrand = '$carbrand',carmodel = '$carmodel',devicenumber = '$devicenumber', unitid = '$unitid',mainnumber = '$mainnumber',vip1 = '$vip1',vip2 = '$vip2',vip3 = '$vip3',vip4 = '$vip4',vip5 = '$vip5',vip6 = '$vip6' WHERE imei=$imei"); mysql_query($sql) || die(mysql_error()); if(!$sql){ print "<font color='#FF3300'>There has been an error editing your device. Please contact the webmaster.</font>"; } else { print "<font color='#008000'>Your device was successfully edited.</font>"; } } ?> <form action="edit.php" method="post"> Carbrand:<br> <input type="text" name="carbrand" value="<? print $rows['carbrand']; ?>" class="inputfield"> <? if(isset($errors['carbrand'])) print $errors['carbrand']; ?><br> Carmodel:<br> <input type="text" name="carmodel" value="<? print $rows['carmodel']; ?>" class="inputfield"> <? if(isset($errors['carmodel'])) print $errors['carmodel']; ?><br> Devicenumber:<br> <input type="text" name="devicenumber" value="<? print $rows['devicenumber']; ?>" class="inputfield"> <? if(isset($errors['devicenumber'])) print $errors['devicenumber']; ?><br> Unitid:<br> <input type="text" name="unitid" value="<? print $rows['unitid']; ?>" class="inputfield"> <? if(isset($errors['unitid'])) print $errors['unitid']; ?><br> mainnumber:<br> <input type="text" name="mainnumber" value="<? print $rows['mainnumber']; ?>" class="inputfield"> <? if(isset($errors['mainnumber'])) print $errors['mainnumber']; ?><br> vip1:<br> <input type="text" name="vip1" value="<? print $rows['vip1']; ?>" class="inputfield"><br> vip2:<br> <input type="text" name="vip2" value="<? print $rows['vip2']; ?>" class="inputfield"><br> vip3:<br> <input type="text" name="vip3" value="<? print $rows['vip3']; ?>" class="inputfield"><br> vip4:<br> <input type="text" name="vip4" value="<? print $rows['vip4']; ?>" class="inputfield"><br> vip5:<br> <input type="text" name="vip5" value="<? print $rows['vip5']; ?>" class="inputfield"><br> vip6:<br> <input type="text" name="vip6" value="<? print $rows['vip6']; ?>" class="inputfield"><br><br> <input type="submit" name="EditDevice" value="Edit device" class="inputbutton"> </form> </body> </html> Dumb: CREATE TABLE x8unit ( imei varchar(15) NOT NULL default '', carbrand varchar(20) NOT NULL default '', carmodel varchar(20) NOT NULL default '', identification varchar(15) default NULL, devicenumber varchar(10) default NULL, unitid varchar(20) default NULL, unitpass varchar(32) default NULL, mainnumber varchar(10) default NULL, vip1 varchar(10) default NULL, vip2 varchar(10) default NULL, vip3 varchar(10) default NULL, vip4 varchar(10) default NULL, vip5 varchar(10) default NULL, vip6 varchar(10) default NULL, sms_reload char(3) default NULL, usermark varchar(16) NOT NULL default '', UNIQUE KEY imei (imei) ) TYPE=MyISAM;
11. november 2003 - 03:50
#38
kan jeg også få et dumb af data fra tabellen?
11. november 2003 - 03:52
#39
Det her: INSERT INTO `x8unit` (`imei`, `carbrand`, `carmodel`, `identification`, `devicenumber`, `unitid`, `unitpass`, `mainnumber`, `vip1`, `vip2`, `vip3`, `vip4`, `vip5`, `vip6`, `sms_reload`, `usermark`) VALUES ('666666666666666', '3', '3', '3', '3', '3', '2be9bd7a3434f7038ca27d1918de58bd', '3', '', '', '', '', '', '', NULL, 'human'), ('123456789098761', '4324234', '42314124', '412342134', '243214213', '4321432', 'dbc4d84bfcfe2284ba11beffb853a8c4', '43242341', '', '', '', '', '124234', '', NULL, 'human');
11. november 2003 - 04:15
#40
hvordan får du sat imei i adresselinien?
11. november 2003 - 04:16
#41
<button class="inputbutton" onclick="document.location.href=\'edit.php?imei='.$row['imei'].'\'">Edit device</button>
11. november 2003 - 04:17
#42
Efter at have pillet det ud med: $query = "SELECT * FROM x8unit WHERE usermark='$usermark'"; $result = mysql_query($query); while($row = mysql_fetch_array($result))
11. november 2003 - 04:21
#43
og din session_checker() ??
11. november 2003 - 04:22
#44
Den kommer fra conn_inc.php som er her: function session_checker(){ if(!session_is_registered('user')){ print "<script type=\"text/javascript\">setTimeout(\"location.href='login.php';\",4000);</script> You do not have permission to view this page, please login! <a href='login.php'>Login</a>"; exit(); } } $db_host = "localhost"; $db_username = ""; $db_password = ""; $db_database = "sky"; $conn = mysql_connect("$db_host","$db_username","$db_password"); if (!$conn) die(mysql_error()); $select = mysql_select_db($db_database,$conn) || die(mysql_error());
11. november 2003 - 04:23
#45
tror at jeg har fundet fejlen, du skal bruge or istedet for || i $devsql = ("SELECT * FROM x8unit WHERE imei='$imeiDB' && usermark='$usermark'") or die(mysql_error()); $resul = mysql_query($devsql) or die(mysql_error());
11. november 2003 - 04:29
#46
Nej, det var ikke det. Men det skal også kunne virke med &&. Det er det hele scriptet bygger på at de to ting skal opfyldes, og det burde virke.
11. november 2003 - 04:30
#47
Nej vent. Misforstod.
11. november 2003 - 04:31
#48
Det har du fuldstændig ret i! Hvorfor helvede siger php.net documentation det er nøjagtig det samme? Fucked up! Undskylder sproget, men helt ærlig? Anyways, mange tak for hjælpen, læg et svar og jeg ligger nogle flere poing oveni.
11. november 2003 - 04:33
#49
hehe, man stirrer sig blind og ser det ikke, men hvorfor der ikke accepterers || der er jeg heller ikke helt klar over
11. november 2003 - 04:33
#50
og det var et svar....
11. november 2003 - 04:35
#51
Nu vi er igang. Ikke flere fejlbeskeder eller noget. Men har du en idé om hvorfor der ikke kommer noget ud i felterne her: value="<? print $row['vip3']; ?>" ?
11. november 2003 - 04:38
#52
kan det være at du mangler et s i value="<? print $row['vip3']; ?>" og det skal være value="<? print $rows['vip3']; ?>"
11. november 2003 - 04:40
#53
Nej det havde jeg lavet om :/
11. november 2003 - 04:51
#54
i denne linie while($rows = mysql_fetch_array($resul)) mangler du at sætte en { som skal sluttes et sted, jeg ikke lige kan overskue lige nu, for at få $rows[] værdierne in i din inputfelter
11. november 2003 - 04:59
#55
Gør jeg således: $imeiDB = $_GET['imei']; $usermark = $_SESSION['user']; print "Edit device with imei nr.: $imeiDB"; $query = ("SELECT * FROM x8unit WHERE imei='imeiDB' AND usermark='$usermark'") or die(mysql_error()); $result = mysql_query($query) or die(mysql_error()); while($row = mysql_fetch_array($result)) { print $row['carmodel']; } Bliver $row['carmodel']; heller ikke udskrevet.
11. november 2003 - 05:00
#56
Og det er der enlig heller ikke nogen af de andre ting der gør.
11. november 2003 - 05:02
#57
hmm, kan ikke lige gennemskue det, bør nok daffe i seng...
11. november 2003 - 05:05
#58
Oki, håber du er frisk i morgen. Du får self ref poing for det.
11. november 2003 - 05:12
#59
har fået,så det er okay :-)
11. november 2003 - 05:15
#60
prøv dette, fra lige før dit <form> tag <? $devsql = ("SELECT * FROM x8unit WHERE imei='$imeiDB'") or die(mysql_error()); $resul = mysql_query($devsql) or die(mysql_error()); while($rows = mysql_fetch_array($resul)) { ?> <form action="edit.php" method="post"> Carbrand:<br> <input type="text" name="carbrand" value="<? echo $rows['carbrand']; ?>" class="inputfield"> <? if(!isset($errors['carbrand'])) echo $errors['carbrand']; ?><br> Carmodel:<br> <input type="text" name="carmodel" value="<? echo $rows['carmodel']; ?>" class="inputfield"> <? if(isset($errors['carmodel'])) echo $errors['carmodel']; ?><br> Devicenumber:<br> <input type="text" name="devicenumber" value="<? echo $rows['devicenumber']; ?>" class="inputfield"> <? if(isset($errors['devicenumber'])) echo $errors['devicenumber']; ?><br> Unitid:<br> <input type="text" name="unitid" value="<? echo $rows['unitid']; ?>" class="inputfield"> <? if(isset($errors['unitid'])) echo $errors['unitid']; ?><br> mainnumber:<br> <input type="text" name="mainnumber" value="<? echo $rows['mainnumber']; ?>" class="inputfield"> <? if(isset($errors['mainnumber'])) echo $errors['mainnumber']; ?><br> vip1:<br> <input type="text" name="vip1" value="<? echo $rows['vip1']; ?>" class="inputfield"><br> vip2:<br> <input type="text" name="vip2" value="<? echo $rows['vip2']; ?>" class="inputfield"><br> vip3:<br> <input type="text" name="vip3" value="<? echo $rows['vip3']; ?>" class="inputfield"><br> vip4:<br> <input type="text" name="vip4" value="<? echo $rows['vip4']; ?>" class="inputfield"><br> vip5:<br> <input type="text" name="vip5" value="<? echo $rows['vip5']; ?>" class="inputfield"><br> vip6:<br> <input type="text" name="vip6" value="<? echo $rows['vip6']; ?>" class="inputfield"><br><br> <input type="submit" name="EditDevice" value="Edit device" class="inputbutton"> </form> </body> </html> <? } ?>
11. november 2003 - 05:16
#61
da imei er UNIQUE, er det ikke nødvendigt at tage $usermark med, da det er usermark der gør problemet
11. november 2003 - 12:43
#62
human: Næste gang lægger du nok mærke til de ting jeg retter - det er sjældent tilfældigt - derudover er ||/or og &&/and ikke det samme og det påstås heller ikke i php manualen - kun de steder, hvor det rent faktisk er ligegyldigt, hvilken der bruges ;-)
11. november 2003 - 17:20
#63
tipsen> jeg havde ikke opdaget at du havde ændret || til or, så det er jo dig der skal have disse point, og ikke jeg, sig lige til, så opretter jeg et spm. med point til dig, jeg havde absolut ikke til hensigt at tilrane mig ufortjente point :-)
11. november 2003 - 17:42
#64
ztyxx: Synes bestemt du har fortjent dem - ikke mindst for indsatsen ;-)
11. november 2003 - 17:44
#65
tipsen> så takker jeg, skylder en tjeneste til en anden gang ;-)
13. november 2003 - 14:06
#66
Sorry der tipsen. Men havde heller ikke set du havde rettet det til or. Og hvis jeg havde, havde ejeg ikke ændret det alligevel, da jeg troede det var det samme. Men så blev jeg da det klogere :o) I skal begge have mange tak for hjælpen!
Vi tilbyder markedets bedste kurser inden for webudvikling