Avatar billede nardus Nybegynder
11. maj 2007 - 10:29 Der er 19 kommentarer og
1 løsning

mySQL og PHP fejl efter flytning

Hejsa,

Jeg har gennem længere tid kørt et script uden problemer, men efer en opdatering af PHP og mySQL får jeg et par fejl, jeg ikke kan slippe af med.

Det har førhen kørt uden problemer på MySQL 4.1.15 og PHP 4.4.4. Nu kører det på PHP 4.3.10-16 og mySQL 4.0.24.

Jeg er får fejlene:

-----
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/www/[UDELADT]/application.php on line 195

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/www/[UDELADT]/application.php on line 196
-----

samt

-----
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/www/[UDELADT]/application.php on line 225

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/www/[UDELADT]/application.php on line 226
-----

Linie 195 og 196 ser således ud:
-----
  $parent_id = mysql_result($result,0,'parent_id');
    $name = mysql_result($result,0,'name'); 
-----

Linie 225 og 226 ser således ud:
-----
    $parent_id = mysql_result($result,0,'parent_id');
    $name = mysql_result($result,0,'name');
-----

Er der nogen, der har en eller anden idé om, hvad der eventuelt kunne være galt?
Avatar billede michael_stim Ekspert
11. maj 2007 - 10:33 #1
Hvad står der i $result?
Avatar billede nardus Nybegynder
11. maj 2007 - 10:40 #2
$result er en kategori (altså tekst)
Avatar billede michael_stim Ekspert
11. maj 2007 - 10:42 #3
$result skulle vel gerne väre en mysql_query.
Avatar billede nardus Nybegynder
11. maj 2007 - 10:49 #4
Jeg er ikke super stærk generelt i PHP, så du får lige linierne her

Linie 190 - 196
---------------
190  $parent_id = 1000;
191  while($parent_id) {
192    // read name and parent_id
193    $query = "select * from category where category_id=$cat";
194    $result = mysql_query($query);   
195    $parent_id = mysql_result($result,0,'parent_id');
196    $name = mysql_result($result,0,'name');
---------------

Linie 222 - 226
----------------
222    // read name and parent_id
223    $query = "select * from category where category_id=$cat";
224    $result = mysql_query($query);   
225    $parent_id = mysql_result($result,0,'parent_id');
226    $name = mysql_result($result,0,'name');
-----------
Avatar billede michael_stim Ekspert
11. maj 2007 - 10:51 #5
$query = "select * from category where category_id=".$cat."";
$result = mysql_query($query)or die(mysql_error());   
$parent_id = mysql_result($result,0,'parent_id');
$name = mysql_result($result,0,'name');

Pröv den.
Avatar billede nardus Nybegynder
11. maj 2007 - 11:05 #6
Hmm, så får jeg i stedet fejlen:

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 '' at line 1
Avatar billede editone Nybegynder
11. maj 2007 - 11:25 #7
$query = "select * from category where category_id=' . $cat . '";
$result = mysql_query($query)or die(mysql_error()); 
$parent_id = mysql_result($result,0,'parent_id');
$name = mysql_result($result,0,'name');
Avatar billede michael_stim Ekspert
11. maj 2007 - 11:27 #8
er category_id numerisk eller tekst?
Er det tekst:
$query = "select * from category where category_id='".$cat."'";
Avatar billede michael_stim Ekspert
11. maj 2007 - 11:29 #9
editone:
Du kan ikke starte en string med " og afslutte den med '
Avatar billede michael_stim Ekspert
11. maj 2007 - 11:34 #10
Og hjälper det ikke så pröv at echo'e $query og se om du får $cat med.
Avatar billede michael_stim Ekspert
11. maj 2007 - 11:35 #11
$query = "select * from category where category_id='".$cat."'";
echo $query;
//$result = mysql_query($query)or die(mysql_error());   
//$parent_id = mysql_result($result,0,'parent_id');
//$name = mysql_result($result,0,'name');
Avatar billede nardus Nybegynder
11. maj 2007 - 12:12 #12
Hvis jeg indsætter
-----
$query = "select * from category where category_id=' . $cat . '";
$result = mysql_query($query)or die(mysql_error()); 
$parent_id = mysql_result($result,0,'parent_id');
$name = mysql_result($result,0,'name');
-----

får jeg fejlen
-----
Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 5 in /home/www/[UDELADT]/application.php on line 195

Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 5 in /home/www/[UDELADT]/application.php on line 196
-----

Samme fejl gør sig gældende for linie 225 og 226

Hvis jeg echo'er $query får jeg en hel side med beskeden: "select * from category where category_id=' . . 'select * from category where category_id=' . 1000 .".

Bruger jeg i stedet $query = "select * from category where category_id='".$cat."'"; kommer beskeden "Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 71 bytes) in /home/www/[UDELADT]/application.php on line 315" frem.

Jeg aner ikke, om det giver nogen som helst mening?!

Kan det skyldes et problem med eksport/import af databasen fra den ene mySQL server til den anden?
Avatar billede michael_stim Ekspert
11. maj 2007 - 12:19 #13
Og hvad pröver du på i linie 315? Er det noget billedebehandling?
Avatar billede nardus Nybegynder
11. maj 2007 - 12:25 #14
Næ, det er det såmænd ikke.

315  $val = mysql_fetch_row($result);
Avatar billede michael_stim Ekspert
11. maj 2007 - 13:31 #15
Problemet er at du bruger for meget hukommelse. Hvad det er, er umuligt for mig at sige med det data jeg har. Du kan pröve:
ini_set("memory_limit","8M");
Avatar billede nardus Nybegynder
11. maj 2007 - 13:45 #16
Tak for forsøget.

Jeg må prøve at finde en anden løsning.
Avatar billede michael_stim Ekspert
11. maj 2007 - 13:45 #17
Eller paste noget mere kode. Vi kan ikke gätte os frem til hvad der er galt.
Avatar billede nardus Nybegynder
11. maj 2007 - 13:51 #18
Hvor meget af koden er du evt. interesseret i? Hele application.php (omkring 500 linier)?
Avatar billede editone Nybegynder
11. maj 2007 - 14:06 #19
Ja lav en .phps og upload til dit webhotel og smid et link
Avatar billede nardus Nybegynder
13. maj 2007 - 18:57 #20
Jeg valgte at opgradere scriptet, hvilket løste problemet.

Lukker
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
Computerworld tilbyder specialiserede kurser i database-management

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



IT-JOB

Udviklings- og Forenklingsstyrelsen

Business Analyst med flair for test

Cognizant Technology Solutions Denmark ApS

Senior Delivery Manager

Pharma Nord

PHP backend-udvikler

Udviklings- og Forenklingsstyrelsen

Data Scientist til stærkt data- og analysekontor