Toon posts:

[PHP] query met meer dan 3 results = error

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een Redhat linux 7.2 server met hierop
apache, php en sybase server.

Als ik een query uitvoer waarbij er meer dan 3 result zijn dan krijg ik de volgende foutmelding:
Warning: 2 is not a valid Sybase result resource in /data1/www/Beheer/klant/lijst.php on line 46
het stukje php is:
<?
Verbind();
$result = sybase_query("SELECT * FROM klant");

while ($res = sybase_fetch_array($result)) {
?>
<TR>
<TD><? echo($res["naam"]);?></TD>
<TD><?echo($res["straat"]);?></TD>
<TD ALIGN=CENTER>[img]"../media/edit.gif"[/img]</TD>
<TD ALIGN=CENTER>[img]"../media/delete.gif"[/img]</A></TD>
</TR>
<?
}
?>
Line 46 is:
while ($res = sybase_fetch_array($result)) {
Iemand een idee???
Ik snap er geen bal van....

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

ff een error() afvanging achter je query zetten denk ik

Doet iets met Cloud (MS/IBM)


  • McFreak
  • Registratie: December 2000
  • Laatst online: 27-04 21:09

McFreak

McFraGG de gekste !!

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
 
function Verbind(); 
$result = sybase_query("SELECT * FROM klant"); 
while ($res = sybase_fetch_array($result)) { 
echo "<TR> <TD>";
echo($res["naam"]);
echo "</TD> <TD>";
echo($res["straat"])";
echo "</TD> <TD ALIGN=CENTER>[img]"../media/edit.gif"[/img]</TD> ";
echo "<TD ALIGN=CENTER>[img]"../media/delete.gif"[/img]</A></TD></TR> "; 
} 
?>

is dit beter misschien ?

McFraGG de gekste !!


Verwijderd

Topicstarter
sorry misschien was ik niet ehelemaal duidelijk,
maar hij toont dus wel 3 resultaten en daarna geeft ie die error....

Als ik gewoon in sybase zelf de query uitvoer krijg ik gewoon bijvoorbeel 10 resultaten, maar als ik het met php doe, dan toont ie er 3 en dan krijg ik die foutmelding...

Dat error() erachter werkt dus ook niet...
als je fit teminste bedoelt:...
$result = sybase_query("$query") or error();

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 17 december 2001 11:56 schreef Infinity het volgende:
sorry misschien was ik niet ehelemaal duidelijk,
maar hij toont dus wel 3 resultaten en daarna geeft ie die error...
Die ene keer dat ik met php+sybase werkte was dat niet het geval :)

Check ook eerst es wat er uit de "numrows" functie van sybase komt?

[edit]
Misschien dat je nog wat aan deze functie hebt:
http://www.php.net/manual/en/function.sybase-get-last-message.php

Verwijderd

Topicstarter
Hij geeft bij sybase_num_rows dat er 3 zijn.... :?


Ik begin er steeds minder van te begrijpen....

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 17 december 2001 12:18 schreef Infinity het volgende:
Hij geeft bij sybase_num_rows dat er 3 zijn.... :?
En wat is de uitkomst als je van je select *, select count(* ) maakt?

(en dan dus niet de uitkomst van num_rows want das 1)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op maandag 17 december 2001 11:56 schreef Infinity het volgende:
sorry misschien was ik niet ehelemaal duidelijk,
maar hij toont dus wel 3 resultaten en daarna geeft ie die error....

Als ik gewoon in sybase zelf de query uitvoer krijg ik gewoon bijvoorbeel 10 resultaten, maar als ik het met php doe, dan toont ie er 3 en dan krijg ik die foutmelding...

Dat error() erachter werkt dus ook niet...
als je fit teminste bedoelt:...
[..]
nee die error() zal iets van die(sybase_error()) oid moeten zijn

Doet iets met Cloud (MS/IBM)


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

[debug mode]
Misschien heeft het met de inhoud van het 4e record te maken.
Probeer eens met een order by in het select statement de volgorde van de records te veranderen.
[/debug mode]

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Je hebt dus een query met een result set > 3, maar num_rowS() geeft toch 3 aan? Lijkt me nogal vreemd... En tegelijkertijd print ie wel de gegevens uit die eerste 3 rijen?

Manuzhai.

Rustacean


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Op maandag 17 december 2001 12:41 schreef Manuzhai het volgende:
[...]
Manuzhai.
Waarom post je dit. De vraag lijkt me duidelijk.
EN:
Laat je naam eens weg. In eerdere topics ook al tegen je geroepen! hard leers?

Verwijderd

Het heeft niet veel met je vraag te maken, maar:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<? 
Verbind(); 
$result = sybase_query("SELECT * FROM klant"); 
while ($res = sybase_fetch_array($result)) { 
?> 
<TR> 
<TD><? echo($res["naam"]);?></TD> 
<TD><?echo($res["straat"]);?></TD> 
<TD ALIGN=CENTER>[img]"../media/edit.gif"[/img]</TD> 
<TD ALIGN=CENTER>[img]"../media/delete.gif"[/img]</A></TD> 
</TR> 
<? 
} 
?>

Waarom niet het geheel tussen <?php en ?> en dan gewoon steeds 'echo' of 'print' voor dingen die je in je HTML wil hebben. Kan handig zijn bijvoorbeeld:
code:
1
print "<TD>".$res["straat"]."</TD>";

mag ook gewoon. Lijkt me ook dat dat sneller is voor je PHP, hoeft ie niet steeds te switchen. Niet dat het hier wat uitmaakt, maar je moet altijd denken wat het verschil in tijdsduur zou zijn als je zo'n script een miljoen keer laat draaien. Vind ik persoonlijk, maar is een beetje een vreemde tic van me, geef ik gelijk toe ;)
En dan nog iets, je hebt ergens </A> maar totaal geen <A HREF=... (etc)>. Heeft niet veel nut hah?

Just helping you, not flaming. Thanks!

Verwijderd

Topicstarter
Op maandag 17 december 2001 12:28 schreef ACM het volgende:

[..]

En wat is de uitkomst als je van je select *, select count(* ) maakt?

(en dan dus niet de uitkomst van num_rows want das 1)
Het resultaat hiervan is 5 en dat klopt want er zijn 5 records.....
Snappen jullie het nog? :?

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Heb je mijn suggestie uitgevoerd? zie boven

Verwijderd

Topicstarter
Op maandag 17 december 2001 20:20 schreef Goodielover het volgende:
Heb je mijn suggestie uitgevoerd? zie boven
Nee, een andere order maakt niks uit :(

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Is dit de complete code in de while loop, zo niet ....
Wordt $result misschien ergens anders opnieuw gevuld met een andere query?

Verwijderd

Topicstarter
Het werkt nog steeds niet,
maar voor de vollegdigheid even de hele php-file:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?
  include("config.inc.php");
  include("sybase.inc.php");
    /*
    Created: 09-12-2001
    By: Bart
    */
?>
<html>
  <head>
    <title><? echo("$title"); ?></title>
  </head>

  <body bgcolor="#FFFFCC" text="#000066">
    <center>
    <Table width=650 border=1 cellpadding=1 cellspacing=0 bordercolor="0A0F65">
      <TR valign="top">
        <TD bgcolor="0A0F65" colspan=2>
          <Font face="Verdana, Arial" size=2 color="#FFFFFF">
          <CENTER><b>Hotel overzicht</b></CENTER>
          </Font>
        </TD>
      </TR>
    </Table>
    <BR>
    <Table>
      <TR>
        <TD><Font face="Verdana, Arial" size=2><B><A HREF="<? echo("$PHP_SELF"); ?>?sort=naam">[Naam]</A></B></TD>
        <TD width=15></TD>
        <TD><Font face="Verdana, Arial" size=2><B><A HREF="<? echo("$PHP_SELF"); ?>?sort=land">[Land]</A></B></TD>
         <TD width=15></TD>
          <TD><Font face="Verdana, Arial" size=2><B><A HREF="<? echo("$PHP_SELF"); ?>?sort=plaats">[Plaats]</A></B></TD>
      </TR>
    </Table>
    <BR>
   
    <?
      Verbind();
      if (isset($sort)) {
        $query = "SELECT * FROM hotel ORDER BY $sort";
      } else {
          $query = "SELECT * FROM hotel";
      }
//      $query = "select count(*) from hotel";
      $result = sybase_query("$query");
//      $res=sybase_fetch_array($result);
//      echo("nr: $res[0]");
      
      while ($res = sybase_fetch_array($result)) { 
    ?>
      <BR>
      <Table width=350 cellpadding=1 cellspacing=0 border=1 bordercolor="0A0F65">
        <TR>
          <TD bgcolor="0A0F65" ALIGN=LEFT>
            <Font face="Verdana, Arial" size=2 color="#FFFFFF">
          <CENTER><b><? echo($res["naam"]); ?></b></CENTER>
          </Font>
        </TD>
          
                <TD bgcolor="0A0F65" ALIGN=right>
                <A HREF="edit.php?code=<? echo($res["code"]); ?>">[img]"../media/edit.gif"[/img]"></A>
                    <A HREF="delete.php?code=<? echo($res["code"]); ?>">[img]"../media/delete.gif"[/img]"></A>
              </TD>
      </TR>
        
        <TR>
              <TD colspan=2>
                 <Table width=100% border=0>
                  <TR>
                        <TD VALIGN=TOP>
                          <Font face="Verdana, Arial" size=2>
                              Hotel adres:</FONT><BR>
                            <Font face="Verdana, Arial" size=1>
                  <?
                    echo($res["straat"] ." ". $res["huisnr"] . "<BR>");
                    echo($res["postcode"] . "<BR>");
                    echo($res["plaats"] . "<BR>");
                    echo($res["land"] . "<BR><BR>");
                    
                    echo("telnr: " ."&amp;nbsp;". $res["telnr"] . "<BR>");
                    echo("faxnr:" ." ". $res["faxnr"] . "<BR>");
                  ?>
                  </font><BR><BR>
                  
                </TD>
                
                <TD ALIGN=RIGHT WIDTH=140>
                  <?
                    if ($res["plaatje"] != "none") { 
                      echo("[img]/upload/$res[plaatje][/img]");
                    }
                  ?>
                </TD>
              </TR>
              <TR>
                <TD colspan=2><Font face="Verdana, Arial"></FONT><? echo($res["omschrijving"]); ?></font></TD>
              </TR>
            </TABLE>
          </TD>          
        </TR>
      </TABLE>
      
    <?
      }
    ?>
    </center>
  </body>
</html>
?>
Pagina: 1