Strona 1 z 1

[php/mysql] problem z formularzem edycji rekordów bazy

: sob kwie 03, 2010 3:15 pm
autor: yorgwarez
Witam serdecznie,
Mam takowy kod skryptu dodajacego, wyswietlajacego, usuwajacego i edytujacego rekordy bazy:

Kod: Zaznacz cały

mysql_connect ("localhost", "zja24_anonse", "anonse") or
	die ("Nie można połączyć z MySQL");
	
	mysql_select_db ("zja24_anonse") or
	die ("Nie można połączyć z bazą");
	
	
	if (isSet($_POST['co']) && $_POST['co'] == 'dodaj') {
		if (isSet($_POST['username']) && isSet($_POST['category']) && isSet($_POST['city']) && isSet($_POST['content']) && isSet($_POST['age']) && isSet($_POST['email']) && isSet ($_POST['gg_number']) && isSet ($_POST['phone_number']) ) {
			$query = "INSERT INTO  ancms (username, category, ";
			$query .= "city, content, age, email, gg_number, phone_number) valueS ('".$_POST['username']."', '".$_POST['category']."', '".$_POST['city']."', '".$_POST['content']."', '".$_POST['age']."', '".$_POST['email']."', '".$_POST['gg_number']."', '".$_POST['phone_number']."');";
			$wynik = mysql_query ($query);
		}
	} elseif (isSet($_POST['co']) && $_POST['co'] == 'popraw') {
	  if ($_POST['username'] && $_POST['category'] && $_POST['city'] && $_POST['content'] && $_POST['age'] && $_POST['email'] && $_POST['gg_number'] && $_POST['phone_number']) {
		  $query = "UPDATE ancms SET username='".$_POST
		  ['username']."',category=";
		  $query .= "'".$_POST['category']."', '".$_POST['city']."', content='".$_POST
		  ['content']."', age='".$_POST['age']."', email='".$_POST['email']."', gg_number='".$_POST['gg_number']."', phone_number='".$_POST['phone_number']."'            WHERE id='".$_POST['id']."';";
		  $wynik = mysql_query ($query);
	  }
	} elseif (isSet($_GET['co']) && $_GET['co'] == 'edytuj') {
		$query = "SELECT id, username, category, city, content, age, email, gg_number, phone_number FROM ancms WHERE id='".$_GET
		['id']."';";
		$wynik = mysql_query ($query);
		$rekord = mysql_fetch_assoc($wynik);
		$id = $rekord['id']; $username = $rekord['username']; $category = $rekord['category']; $city = $rekord['city']; $content = $rekord['content']; $age = $rekord['age']; $email = $rekord['email']; $gg_number = $rekord['gg_number']; $phone_number = $rekord['phone_number'];
		print '<form method="post" action="strona.php"><div>Poprawa rekordu:';
		print '<input type="hidden" name="co" value="popraw" />';
		print '<table><tr><td>Login:</td><input type="text" ';
		print 'name="username" value="'.$username.'" /></td></tr><tr><td>Kategoria:';
		print '</td><td><input type="text" name="category"';
		print 'value="'.$category;
		print '" /></td></tr><tr><td>Miasto:</td><td><input type="text"';
		print 'name="city" value="'.$city.'" /></td></tr>';
		print '<tr><td>Treść:</td><td><input type="text" name="content" value="'.$content.'" /></td></tr>';
		print '<tr><td>Wiek:</td><td><input type="text" name="age" value="'.$age.'" /></td></tr>';
		print '<tr><td>E-mail:</td><td><input type="text" name="email" value="'.$email.'" /></td></tr>';
		print '<tr><td>Numer GG:</td><td><input type="text" name="gg_number" value="'.$gg_number.'" /></td></tr>';
		print '<tr><td>Telefon:</td><td><input type="text" name="phone_number" value="'.$phone_number.'" /></td></tr>';
		print '</table><input type="submit" value="Popraw" /></div></form>';
	
	} 	elseif (isSet($_GET['co']) && isSet($_GET['id']) &&
	    $_GET['co'] == 'skasuj') {
		$wynik = mysql_query ("DELETE FROM ancms WHERE id = '".$_GET['id']."';");
	}
	
	
	$wynik = mysql_query ("SELECT id, username, category, city, content, age, email, gg_number, phone_number FROM ancms;") or
	die ("błąd w pytaniu");
	
	print "<table cellpadding='5' border='1'>";
	print "<tr><td><b>Login:</b></td><td><b>Kategoria:</b></td>";
	print "<td><b>Miasto:</b></td>";
	print "<td><b>Treść:</b></td>";
	print "<td><b>Wiek:</b></td>";
	print "<td><b>E-mail:</b></td>";
	print "<td><b>Numer GG:</b></td>";
	print "<td><b>Telefon:</b></td>";
	print "<td></td></tr>\n";
	while ($rekord = mysql_fetch_assoc ($wynik)) {
	$id = $rekord['id'];
	$username = $rekord['username'];
	$category = $rekord['category'];
	$city = $rekord['city'];
	$content = $rekord['content'];
	$age = $rekord['age'];
	$email = $rekord['email'];
	$gg_number = $rekord['gg_number'];
	$phone_number = $rekord['phone_number'];
	
	
	print "<tr><td>$username</td><td>$category</td>";
	print "<td>$city</td>";
	print "<td>$content</td>";
	print "<td>$age</td>";
	print "<td>$email</td>";
	print "<td>$gg_number</td>";
	print "<td>$phone_number</td><td>";
	print "<a href=\"strona.php?co=skasuj&id=$id\">skasuj</a></td></tr>\n";
	}
	print "</table>";
	
	print '<form method="post" action="strona.php"><div>Nowy rekord:';
	print '<input type="hidden" name="co" value="dodaj" /><table>';
	print '<tr><td>Login:</td><td><input type="text" ';
	print 'name="login" /></td></tr><tr><td>Kategoria:</td><td><input ';
	print 'type="text" name="category" /></td></tr>';
	print '<tr><td>Miasto:</td>';
	print '<td><input type="text" name="city" /></td></tr>';
	print '<tr><td>Treść:</td><td><input type="text" name="content" /></td></tr>';
	print '<tr><td>Wiek:</td><td><input type="text" name="age" /></td></tr>';
	print '<tr><td>E-mail:</td><td><input type="text" name="email" /></td></tr>';
	print '<tr><td>Numer GG:</td><td><input type="text" name="gg_number" /></td></tr>';
	print '<tr><td>Telefon:</td><td><input type="text" name="phone_number" /></td></tr>';
	print '</table><input type="submit" value="Dodaj" /></div></form>';

Wszystkie funkcje działają prócz edycji rekordów. Gdzie popełniłem błąd?

Z góry dzięki za pomoc i życze wszystkim Wesołych Świąt;)

Re: [php/mysql] problem z formularzem edycji rekordów bazy

: ndz kwie 04, 2010 10:09 pm
autor: Vaticinator
Napisz jaki komunikat błędu zwraca PHP. Jeśli nie zwraca żadnego, proponuję zrobić prosty sprawdzian poprzez doklejenie jednej linijki kodu:

Kod: Zaznacz cały

elseif (isSet($_POST['co']) && $_POST['co'] == 'popraw') {
     if ($_POST['username'] && $_POST['category'] && $_POST['city'] && $_POST['content'] && $_POST['age'] && $_POST['email'] && $_POST['gg_number'] && $_POST['phone_number']) {
        $query = "UPDATE ancms SET username='".$_POST
        ['username']."',category=";
        $query .= "'".$_POST['category']."', '".$_POST['city']."', content='".$_POST
        ['content']."', age='".$_POST['age']."', email='".$_POST['email']."', gg_number='".$_POST['gg_number']."', phone_number='".$_POST['phone_number']."'            WHERE id='".$_POST['id']."';";
echo"$query"; // <------ to jest ta linijka, którą proponuję dokleić w celu zlokalizowania błędu
        $wynik = mysql_query ($query);
     }
Jeśli zapytanie zostanie wyświetlone, może w czystej postaci łatwiej będzie wypatrzyć błąd składni. Jeśli nie zostanie wyświetlone, będzie to oznaczać, że instrukcja warunkowa nie spełnia warunku i błąd będzie łatwo zlokalizować.

Często stosuję tę prostą metodę i zazwyczaj skutecznie wskazuje mi błąd.

Pozdrawiam