Gå til innhold

problemer med if/mysq spørring[LØST]


Anbefalte innlegg

har denne koden på sletting av produkter, og den klarer å slette produktet, men jeg får ut ERROR bare.. ikke SUKSESS.. :

<?
//deklarering av variabler
$todo = $_POST['prodid'];
$dato = date("y.d.m, H:i:s", time());
echo ($todo);
$sql = "DELETE FROM produkt WHERE produktID = $todo";

//database snakk
include("db.php");
$cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);


mysql_query($sql);

$sql = "";
$sql = "SELECT * FROM produkt WHERE produktID = $todo";
mysql_query($sql);
if (empty($sql)){
echo "SUKSESS";
}
else
{
echo "ERROR";
}
mysql_close();
?>

Endret av phun-ky
Lenke til kommentar
Videoannonse
Annonse

uææh, fant feilen med en gang.. EDIT: trodde jeg.. nå får jeg: 5

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /hsphere/local/home/phun-ky/umedia.no/admin/a_prod_slett.php on line 17

SUKSESS

som output..

 

<?
//deklarering av variabler
$todo = $_POST['prodid'];
$dato = date("y.d.m, H:i:s", time());
echo ($todo);
$sql = "DELETE FROM produkt WHERE produktID = $todo";

//database snakk
include("db.php");
$cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);

mysql_query($sql);

$sql = "";
$sql= mysql_query("SELECT * FROM produkt WHERE produktID = '$todo'");
$numrows = mysql_num_rows($sql);

if($numrows == 1)
{
echo "ERROR";
}
else
{
echo "SUKSESS";
}
mysql_close();
?>

Endret av phun-ky
Lenke til kommentar

<?
//deklarering av variabler

$sql = "DELETE FROM produkt WHERE produktID = $todo";

//database snakk

mysql_query($sql);


$sql = "";
$sql = "SELECT * FROM produkt WHERE produktID = $todo";
mysql_query($sql);


if (empty($sql)){
echo "SUKSESS";
}
else
{
echo "ERROR";
}
mysql_close();
?>

[OFFTOPIC]

Hei, du har definert variabelen $sql tre ganger. Hva er hensikten med det, da du kun sletter den raden. etter det finnes den jo ikke mer.

 

Hvorfor tar du da en dømt feil spørring "SELECT * FROM... WHERE ProdID=prodid"

Den er jo slettet.

 

[/OffTopic]

 

[ONTOPIC]

 

Det du kan gjøre, er:

 


<?
//deklarering av variabler
$todo = $_POST['prodid'];
$dato = date("y.d.m, H:i:s", time());
echo ($todo);
$sql = "DELETE FROM produkt WHERE produktID = $todo";

//database snakk
include("db.php");
$cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);

mysql_query($sql);



if($sql)
{
echo "SUKSESS";
}
else
{
echo "FEIL";
}
mysql_close();
?>


 

[/ONTOPIC]

Lenke til kommentar

Og mer spennende, hva er mysql_rows_affected?

Det heter vel mssql_rows_affected når du bruker MSSQL, men mysql_affected_rows() når du bruker MySQL.

 

Det er ikke det samme å sjekke resultatet av en spørring,

$result = mysql_query($sql);

if ($result)

som å sjekke om det faktisk ble gjort noen endringer!

 

mysql_query() returnerer false kun dersom det er noe i veien med spørringen - uavhenig om noe er endret. "UPDATE tabell SET felt = 'oppdatering' WHERE id = 5"

Dersom du ikke har noen rad med id = 5 så blir ikke noe oppdatert, men det er ikke noe i veien med spørringen - så $result vil ikke returnere false.

 

Derfor finnes funksjonen mysql_affected_rows() - den sjekker om det er noe som ble endret.

Lenke til kommentar

Håper du mener i alle fall mysql_num_rows($result);

Hvis ikke så sjekker du om en string er true, det vil den alltid være - se php.net/bool

 

Videre så skjønner jeg over hodet ikke hvorfor du vil sjekke på den måten. Det står klart og tydelig i manualen at mysql_num_rows ikke skal brukes til dette. Selv om ting fungerer i den versjonen av PHP du kjører nå så hold deg til det som står i manualen.

This command is only valid for SELECT statements. To retrieve the number of rows affected by a INSERT, UPDATE or DELETE query, use mysql_affected_rows().
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...