Blev tipsad om det här forumet av en kompis och tänkte kolla om någon här kan hjälpa mig med ett problem som jag har brottats med ett tag.
Håller på att lära mig php både i skolan och på fritiden och sitter nu och håller på med ett projekt, där jag hade tänkt mig att göra ett community. Dock så har jag fastnat på en sak där jag har letat efter felet tills ögonen blöder utan att kunna hitta det.
Det är tänkt att man ska kunna gå till en 'egen sida' (krypin, om ni så vill ), men när man har fyllt i ett fält (har bara ett att testa med just nu) och trycker på uppdatera så får jag fram ett fel som jag inte hittar så mycket information om, nämligen:
Warning: Supplied argument is not a valid MySQL-Link resource in /var/www/projekt/change.php on line 34
Det enda jag hittar om detta är att det är någon vajsing på databaskopplingen, men eftersom den infon ligger i en include-fil och funkar på de andra sidorna så kan jag inte fatta vad felet är.
Så är det någon som känner för att kolla igenom koden och säga vad det är jag har gjort fel på? Kan tillägga att jag är total nybörjare fortfarande, vilket säkerligen kommer att synas.
mysql_query($sql) or die("SQL: $sql <br>".mysql_error());
Men detta felmeddelande brukar man se vid mysql_result(), mysql_fetch_assoc() eller lioknande, så det kan inte eventuellt vara några rader ner, där du kan testa med:
$result = mysql_query($sql) or die("SQL: $sql <br>".mysql_error());
Eftersom sql-satsen ligger i en funktion så är inte variabeln $conn nåbar. Prova att göra variabeln global innan du försöker köra sql-satsen
function Update($usr, $inf)
{
global $conn;
$sql = "UPDATE info SET fakta=\"$inf\" WHERE user=\"$usr\"";
mysql_query($sql);
echo $inf; // för felsökning
echo mysql_error($sql);
//header("Location: home.php");
}
Ah, det funkade bättre. Nu visas felen i 'or die()' i alla fall
Nu visas det här istället:
SQL: UPDATE info SET fakta= WHERE user=''
You have an error in your SQL syntax near 'WHERE user=''' at line 1
Så jag testade att göra $inf och $usr globala med, men det gjorde ingen skillnad. Testade också att sätta variablerna över funktionen, och då fick jag ett annat fel, nämligen:
SQL: UPDATE info SET fakta=testar WHERE user='test'
Unknown column 'testar' in 'field list'
Då visas i alla fall variablerna, även att fakta= visar vad som stod innan jag uppdaterade. Fast om jag har fattar rätt så ska funktioner alltid vara överst i koden, eller är det bara för att det ser bättre ut?
Sådärja, äntligen hemma igen. Har varit iväg ett par dagar, därför jag inte har kunnat svara
Hursomhelst, nu funkar det äntligen. Gjorde $conn global och testade att ändra
mysql_query($sql) or die("SQL: $sql <br>".mysql_error());
till:
mysql_query($sql, $conn) or die("SQL: $sql <br>".mysql_error());
Tack för hjälpen allhihopa
[Edit]
Kan passa på att fråga om en sak till som jag har fastnat på ( )
Håller på att göra en sida där man kan se alla användares profiler. Först så går man in på sidan och så visas alla medlemmar med hjälp av:
while ($row = mysql_fetch_row($result))
echo "<a href=\"members.php?check={$row[1]}\">$row[1]</a><br>\n";
Sedan när man trycker på användarens namn så ska det visas lite olika fält med fakta, men det skrivs inte ut. Antar att felet ligger här nånstans, och såhär ser det ut: