Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: ongelmia updaten kanssa

jannu82 [15.06.2005 17:46:42]

#

minulla siis on ongelma saada update toiminto toimimaan. tarkoitus olisi voida updata mysql tietokannassa olevaa tietoa, eli siis pitaisi paivittaa jonkun henkilon tietoja! tassa taman hetkinen koodini siita se ilmoittaa nain "UPDATE BikeData SET BikeNumber = 5 Query failed: Duplicate entry '5' for key 1" kiitos jo etukateen!!

<?php
<html>
<head> <title>BikeRent</title> </head>
<body>


<h1>UPDATE BIKE</h1>


<?php
$toUpdate=$_POST['toUpdate'];
//muodostetaan yhteys tietokantapalvelimeen
$yhteys = mysql_connect('localhost','project2','spain2005') or die("Yhdistäminen ei onnistunut!");

//valitaan tietokanta "testi"
mysql_selectdb('BikeRent') or die("Tietokantaa ei löytynyt!");

//tähän tulevat tietokantakyselyt!
if (!$toUpdate){

  //1 Performing SQL query
  $query = 'SELECT * FROM BikeData';
  $result = mysql_query($query) or die('Query failed1: ' . mysql_error());

  // Printing results in HTML
  echo "<form action=UpdateBike2.php method=post>";
   echo"<table cellspacing=0 cellpadding=4 border=1>";

 echo"<tr>";
 echo	"<th>Update</th>";
 echo	"<th>BikeNumber</th>";
 echo	"<th>Discription</th>";
 echo	"<th>OwnerName</th>";
 echo	"<th>OwnerContact</th>";
 echo	"<th>Price</th>";
 echo	"<th>Photo</th>";
 echo	"</tr>";
  while ($line = mysql_fetch_array($result, MYSQL_NUM)) {
     echo "\t<tr>\n";
     echo "<td><input type=radio name=toUpdate value=$line[0]> </td>";
     for ($i=0; $i<count($line);$i++){
       echo "\t\t<td>$line[$i]</td>\n";
     }
     echo "\t</tr>\n";
  }
  echo "</table>\n";

  // Free resultset
  mysql_free_result($result);

}else
{

  //1 Performing SQL query

  $query = "UPDATE BikeData SET BikeNumber = $toUpdate ";

  $result = mysql_query($query) or die('Query failed2: ' . mysql_error());

}
  // Closing connection
  mysql_close($yhteys);

?>
<br>

<input type=submit name=Send value=Send>
<input type=reset name=Reset value=Reset>
</form>
<a href="index.htm">Back to mainmenu</a>
</body>
</html>
?>

Mazuli [15.06.2005 19:08:47]

#

olisi kiva tietää mitä taulu sisältää ja miten se on luotu

leftover [15.06.2005 20:10:21]

#

Veikkaan syyksi että koodisi ei toimi kuten olet speksannut, ellet sitten ole speksannut että päivityslomaketta käyttämällä päivitetään kaikkien pyörien tiedot identtisiksi.

UPDATEN perustaa:
UPDATE taulu SET arvot WHERE ehto

Jos jätät WHEREn pois, yrittää SQL päivittää kaikki tietueet. Koska olet tehnyt bikenumberista avainsarakkeen joka ei salli kaksoiskappaleita, kosahtaa kyselysi joko alkuunsa (jos kannasta löytyy jo sama numero) tai ensimmäisen tietueen päivityksen jälkeen.

jannu82 [17.06.2005 19:00:40]

#

taulu on luotu phpmyadminilla.. jos ny tuota tarkotit.sivuilla on myos lisays jossa voi lisata pyoria ja niita koskevat tiedot seka poisto jossa voi poistaa pyoria yms. mutta taa update jolla siis vois esim. lisata vaikka tarkempi kuvaus pyorasta tai uusi kuva yms. ei siis toimi alkuunkaan.
mitahan mun pitas laitta tohon ehto lauseeseen? tosiaan kaikkia kohtia pitas pystya muuttaan! paitsi tietysti tota bikenumberia joka tosiaan on avainsarake!

kasetti [17.06.2005 21:02:14]

#

jannu82 kirjoitti:

tosiaan kaikkia kohtia pitas pystya muuttaan! paitsi tietysti tota bikenumberia joka tosiaan on avainsarake!

lauseesi on UPDATE BikeData SET BikeNumber = $toUpdate

ja yrität siis päivittää ainoaa mitä ei voi päivittää?

UPDATE BikeData SET Discription='$arvo1', OwnerName='$arvo2', OwnerContact='$arvo3' where BikeNumber = $toUpdate

kokeile ensin niitä skriptejä siellä myadminin sql-ruudussa. Jos ne toimii siellä --> laita php:n sekaan.

ja vielä sen verran että aikoinaan tuota myadminia kokeilin ja siellä oli mahdollisuus muuttaa jotain kannan arvoja. muutoksen jälkeen myadminin yläosa näytti tapahtuneen UPDATE skriptin pikku ikkunassa. En tiedä onko tämä juttu sitten mahdollista kaikissa myadminin versioissa?

jannu82 [23.06.2005 15:46:21]

#

sain ton nyt toimiin

<?php

   // Connecting, selecting database
  $link = mysql_connect('localhost', 'project', 'spain2005')
   or die('Could not connect (sin conexion): ' . mysql_error());
  echo 'Connected successfully';
  mysql_select_db('BikeRent') or die('Could not select database');

  $query = 'SELECT * FROM BikeData';
  $result = mysql_query($query) or die('Query failed: ' . mysql_error());

  // Printing results in HTML
  echo "<form action=UpdateBike2.php method=post>";
  echo "<table border=1>";
  while ($line = mysql_fetch_array($result, MYSQL_NUM)) {
     echo "\t<tr>\n";
     echo "<td><input type=radio name=update value=$line[0]> </td>";
     for ($i=0; $i<count($line);$i++){
	   echo "\t\t<td>$line[$i]</td>\n";
	 }
     echo "\t</tr>\n";
  }
  echo "</table>\n";

  // Free resultset
  mysql_free_result($result);

  // Closing connection
  mysql_close($link);



?>

kiitoksia neuvoista

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta