Avatar billede webmasterdk Praktikant
31. maj 2001 - 15:06 Der er 16 kommentarer og
1 løsning

Hvad er fejlen

Hejsa
hvorfor får jeg følgende fejl i fælgende script?
Fejlen:
Warning: Supplied argument is not a valid MySQL result resource in /home/mogens/www/lus/gl_elev.php on line 29

Scriptet:
<?
//Henter filen til at lave forbindelse til MySQL
include(\"connect.php\");
$FIP = $GLOBALS[\'HTTP_X_FORWARDED_FOR\'];
$IP = $GLOBALS[\'REMOTE_ADDR\'];
$host = gethostbyaddr($IP);
mysql_query(\"delete from gl_elev where id = \'$slet\'\"); 
?>
<!-- Tabellernes overskrift bliver lavet -->
<h3><center>Her kan gamle elever skrive sig ind, så man kan finde hinanden igen efter at have mistet kontakten</center></h3>
<table border=\"1\" cellspacing=\"0\" cellpadding=\"1\">
<tr>
    <td bgcolor=\"dadada\" width=\"140\"><font size=\"3\"><b>Navn:</td>
    <td bgcolor=\"dadada\" width=\"20\"><b>Årgang</td>
    <td bgcolor=\"dadada\" width=\"50\"><b>E-Mail</td>
    <td bgcolor=\"dadada\" width=\"70\"><b>Nummer</td>
    <td bgcolor=\"dadada\" width=\"180\"><b>Adresse:</td>
    <td bgcolor=\"dadada\" width=\"165\"><b>postnr/by</td>
</tr>
<?
// MySQL henter de instastede informationer
if ($navn && $nummer) {
    mysql_query(\"insert into gl_elev (navn, aargang, email, nummer, adresse, postnr, bynavn, IP, FIP, host) values (\'$navn\',\'$aargang\',\'$email\',\'$nummer\',\'$adresse\',\'$postnr\',\'$by\',\'$IP\', \'$FIP\', \'$host\')\");
    header(\"location: gl_elev.php\");
}
$i = 1;
$query = mysql_query(\"select * from gl_elev\");
//Sorterer efter navn, kan angive til en given variabel.
while ($row = mysql_fetch_array ($query)) {
if ($i%2==0) {
// Giver tabellerne forskellige farver, så det er lettere at holde styr på.
$color = \"e9e9e9\";
} else {
$color = \"ffffff\";
}
// Ud for hvert navn er der et slet link, det er her, det sletter en given række, med navn, alder, køn, nummer, adresse, postnr og by.
echo \"<tr>
        <!-- <td nowrap bgcolor=\\\"$color\\\"><a href=\\\"gl_elev.php?slet=$row[id]\\\">slet</a>&nbsp; &nbsp;</td> -->
        <td nowrap bgcolor=\\\"$color\\\"> $row[navn] </td>
        <td bgcolor=\\\"$color\\\"> $row[aargang]</td>
        <td bgcolor=\\\"$color\\\"> $row[email]</td>
        <td bgcolor=\\\"$color\\\"> $row[nummer]</td>
        <td bgcolor=\\\"$color\\\">$row[adresse]</td>
        <td bgcolor=\\\"$color\\\">$row[postnr]-$row[bynavn]</td>
    </tr>  \";
$i = $i + 1;
}
?>
<!-- Dette er indtastinings formularen, hvor man kan indtaste de forskellige ting. -->
<tabel border=\"0\">
<td><td>
</td></tr></table>
<table border=\"0\">
<tr><td>
<br><br>
<font size=\"3\"> <b>Opret nyt navn</b> </a><br><br>
<form action=\"<? $PHP_SELF; ?>\" method=\"post\">
Navn:<br>
<input type=\"text\" name=\"navn\"><br>
Årgang:<br>
<input type=\"text\" name=\"aargang\"><br>
E-Mail:<br>
<input type=\"text\" name=\"email\"><br>
Nummer:<br>
<input type=\"text\" name=\"nummer\"><br>
Adresse:<br>
<input type=\"text\" name=\"adresse\"><br>
Postnr: <br>
<input type=\"text\" name=\"postnr\" size=\"4\"> <br>
By: <br>
<input type=\"text\" name=\"by\"> <br>
<input type=\"submit\" name=\"sub\" value=\"tilføj person\">
</form>
</td>
</tr>
</table>
Avatar billede gizmo-gizmo Nybegynder
31. maj 2001 - 15:09 #1
der er noget i din mysql sætning der ikke passer:
$query = mysql_query(\"select * from gl_elev\");
while ($row = mysql_fetch_array($query)) {

enten har du ikke en tabel der hedder gl_elev eller også mangler du en where bla = \'bla\'
Avatar billede webmasterdk Praktikant
31. maj 2001 - 15:10 #2
where, hvor?
Avatar billede gizmo-gizmo Nybegynder
31. maj 2001 - 15:12 #3
fx.

$query = mysql_query(\"select * from gl_elev where elevnavn = \'webmasterdk\'\");
while ($row = mysql_fetch_array($query)) {
Avatar billede gizmo-gizmo Nybegynder
31. maj 2001 - 15:14 #4
hvad jeg kan se skal din se sådan ud:

$query = mysql_query(\"select * from gl_elev where navn = \'$navn\'\");
while ($row = mysql_fetch_array($query)) {
Avatar billede webmasterdk Praktikant
31. maj 2001 - 15:14 #5
kan jeg skrive * istedet for webmasterdk ?
Avatar billede gizmo-gizmo Nybegynder
31. maj 2001 - 15:17 #6
hmm ... forstår egentlig ikke hvorfor det ikke virker.
Avatar billede webmasterdk Praktikant
31. maj 2001 - 15:19 #7
sagen er den at det virker fint på min egen win maskine, men lige så snart det kommer op på en server går det galt.
det her virker heller ikke
$query = mysql_query(\"select * from gl_elev where navn = \'$navn\'\");
while ($row = mysql_fetch_array($query)) {
Avatar billede limemedia Nybegynder
31. maj 2001 - 15:25 #8
gizmo >> der er intet galt i en SELECT * FROM gl_elev - den returnerer alt i vedkommende tabel.

webmasterdk >> Har du prøvet din query af i phpMySql ?

Ellers kan jeg hurtigt se flere fejl i din kode, fx din header(\"location: gl_elev.php\"); der aldrig vil gå midt inde i et script hvor headeren allerede er sat.

/ Lars

Avatar billede gizmo-gizmo Nybegynder
31. maj 2001 - 15:26 #9
ljweb >> troede kun han skulle bruge et navn
Avatar billede erikjacobsen Ekspert
31. maj 2001 - 15:29 #10
Find da ud da hvad der er galt ved at skrive (og ALTID skrive):

$query = mysql_query(\"select * from gl_elev\") or die(mysql_error());
Avatar billede webmasterdk Praktikant
31. maj 2001 - 15:29 #11
ljweb >> nu er det bare ikke mig der har skrevet det script men gizmo-gizmo i http://www.eksperten.dk/spm/73811 til !!anime!!
hvordan tester jeg query i phpMySQL
Avatar billede webmasterdk Praktikant
31. maj 2001 - 15:32 #12
erik >> den skriver \"no database selected\", men det har jeg gjort i connect.php med mysql_select_db(\"test\");
Avatar billede limemedia Nybegynder
31. maj 2001 - 15:32 #13
webmasterdk >> kopier din query ind i phpMyAdmin hvor der står \"Run SQL query/queries on database db25353a\"... og tryk \"go\"
Avatar billede limemedia Nybegynder
31. maj 2001 - 15:34 #14
erik >> jeg mener ikke du har ret i altid at skrive or die(mysql_error()) - jeg mener den er god i debug mode men i driftskode sørger jeg for at håndtere en fejl på en lidt bedre måde end at fyre en die kommando af...
Avatar billede limemedia Nybegynder
31. maj 2001 - 15:36 #15
webmasterdk >> jeg bruger ofte en
    # mySQL Definitions
    $MYSQL_DEFS=array();
    $MYSQL_DEFS[\"host\"] = \"localhost\";
    $MYSQL_DEFS[\"user\"] = \"root\";
    $MYSQL_DEFS[\"password\"]    = \"\";
    $MYSQL_DEFS[\"db\"] = \"dbname\";

    mysql_pconnect($MYSQL_DEFS[\"host\"],$MYSQL_DEFS[\"user\"],$MYSQL_DEFS[\"password\"]);
    mysql_select_db($MYSQL_DEFS[\"db\"]);
Avatar billede webmasterdk Praktikant
31. maj 2001 - 15:39 #16
takker det virker!
så er der bare lige den med headers(), hvordan skal jeg bare fjerne den linie, for den laver fejl nu?
Avatar billede erikjacobsen Ekspert
31. maj 2001 - 15:41 #17
ljweb.... ja, ok, men fang den, og gør noget. Jeg har selv en funktion, der
sender mig en mail.
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