Gå til innhold

Problem med mysql-gjestbok.


Anbefalte innlegg

Hei!

 

Eg held litt på med å lage ei gjestebok, mest for lære og kanskje legge den ut på sida mi.

Well, well...

Eg har mekka i saman noko kode, men det virkar ikkje.

Feilmelding:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/***/***/***/tom4.php on line 28

Her er koden:

<html>
<head>
<title>ACP - Gjestebok</title>
</head>
<body>
<?php
    
    
    //Lagring for evt. innlegg.
    $tilkobling = mysql_connect("busted", "busted", "busted");
    if (isset($_POST['message']) AND isset($_POST['name'])){
    $ip = $_SERVER['REMOTE_ADDR'];
    $name = htmlentities($_POST['name']);
    $message = htmlentites($_POST['massage']);
    
    
    
    mysql_select_db("div", $tilkobling);
    $query = "INSERT INTO guestbook
               (user, message, ip)
            VALUES ('$name', '$message', '$ip')";
    mysql_query($query, $tilkobling);
    }
    
     
    $query2 = "SELECT * FROM guestbook ORDER BY name";
    $result = mysql_query($query2, $tilkobling);
    while($rad = mysql_fetch_array($result)) {
    echo "<div id='guestbook'>";
    echo "<h3>" . $rad['ip'] . "</h3>";
    echo '<br><br><br>';
    echo "<p>" . $rad['message'] . "</p></div>";
    }
    echo '<br><br>';
    echo "<form action='tom4.php' method='post'>
          <input type='text' name='name'>
          <textarea name='message' cols='20' rows='4'></textarea>
          <input type='submit' value='SeNd!!'>
          </form>"
          
   ?>
   
   </body>
   </html>

 

Kva kan feilen vere?

Endret av Fjott
Lenke til kommentar
Videoannonse
Annonse

hm.. jeg er newb men..

 

du har mysql_connect("busted", "busted", "busted");

 

det skal vel være mysql_connect("host", "username", "passord");.. har du noen maskin med host 'busted'? prøv 'localhost' for host om du kjører mysql på samme server.. om brukernavn og passord er 'busted' begge to kan du vel prøve mysql_connect("localhost", "busted", "busted); ..

 

om d ikke funker prøv å echo mysql_error(); før du tar mysql_close(); og reply med feilmeldingen du får

Lenke til kommentar

Har du i det heletatt en rad i databasen som heter name?

Når jeg ser på queryen hvor du setter ting i databasen så har du en rad som heter user. Kan jo hende at du har en som heter name fordi selfølgelig men.

 

$query = "INSERT INTO guestbook
              (user, message, ip)
           VALUES ('$name', '$message', '$ip')";

Endret av 0lav
Lenke til kommentar

Mange bra svar her :D

 

Jeg stemmer på Olav sitt forslag.

 

En grei regel er å alltid kjøre en mysql_error etter en spørring, slik at du får beskjed om hva som er feil dersom noe går galt:

$query = "INSERT INTO guestbook
              (user, message, ip)
           VALUES ('$name', '$message', '$ip')";
   mysql_query($query, $tilkobling) or die("Feil i spørring: $query<br> Mysql-error: <br>".mysql_error());

Lenke til kommentar

JO! Eg har valgt ein server.

mysql_select_database("");

Er i koden min.

Hosten min (http://dcvnet.net) har nettopp bytta server og instalert ny php og programvare.

Er det ein ide å sende ein mail til han?

Viss han seier det ikkje er noko feil med programvare, så er han så god i PHP at han sikkert kan svare på problemet.

Men selfølgeleg håpar eg at de kan hjelpe meg.

Lenke til kommentar

Hmmm... Men det var jo ikke den feilmeldingen du fikk først ?

 

Logg inn i phpmyadmin og sjekk om databasenavnet er riktig (div)

 

Husk også på at du bare velger database, dersom feltene message og name er satt... Dersom disse ikke er satt, så prøver du fortsatt å kjøre spørring mot databasen (som du da ikke har valgt) med $query2 . Det er vel kanskje litt ugunstig koding , synes du ikke ?

Lenke til kommentar

Ok, tusen takk.

Korleis kan eg få databasen til å legge inn "neste" id?

For eksempel:

id     name    message    ip
1      idiot      hehei         197.0.197.1

Korleis kan eg berre legge til "name", "message" og "ip" slik at "id" berre blir større og større?

Slik at om eg legg til "name", "message" og "ip" så kjem "id" av seg sjølv?

Endret av Fjott
Lenke til kommentar
Hva mener du med en ny rad? Er det en ny kolonne du mener?

5636376[/snapback]

 

Satser på at det er snakk om en kolonne.

Da er det bare å velge tabellen hvor den ny kolonnen skal inn, og litt ned på siden så står det noe ala "add a new field" eller noe sånt, og der kan du legge til nye kolonner i tabellen din.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...