Jump to content

ieraksta pievienošana DB no PHP


lops90
 Share

Recommended Posts

Sveiki!

 

Man ir uz lapas poga, kas izsauc funkciju, kas ieliek mysql DB ierakstu. Problēma tāda, ka viņa to nedara :D (nospiežot pogu nekas nenotiek).

 

Savukārt, ja es aizkomentēju funkcijas sākumu un beigas tā,ka tas, kas ir funkcijā, izpildas pie lapas ielādes, tad DB ieraksts veiksmīgi tiek ielikts...

 

Neesmu nekāds programmētājs un esmu web programmēšanā tikai dažas dienas jauns, tāpēc neesiet pārāk skarbi, jo kods tiek lipināts pa gabaliņiem no dažādām pamācībām un piemēriem :)

 

Kur ir problēma vai kurā virzienā man rakt?

<br/>
<form>
  Name:  
  <input type="text" name="teksts">
</form>

<br/>
<input id="btnPost" type="button" value="Post" onclick="writeMsg();" />
<br/>



	



<?php
include "Connect/DBcon.php";
header('Content-Type: text/html; charset=UTF-8');

function writeMsg() {
	$texts=$_POST['btnPost'];	


	// Create connection
	$conn = new mysqli($db_host, $db_user, $db_pwd, $database);
	// Check connection
	if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
	} 

	$sql = "INSERT INTO messages1  (ID, Text, Status)
	VALUES ('18833','484','Jautājums')";

	if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
	} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
	}
	$conn->close();

	
	}//funkcija;

?>
Labots - lops90
Link to comment
Share on other sites

Anonīms Alkoholiķis

Puskoka lēcēj, ej iemācīties atšķirību starp HTML, JavaScript, PHP. Pat desmitgadi vecajā grāmatā "PHP soli pa solim", šķiet, ka šī problēma bija aplūkota..

 

-----

Tieši nenorādu uz ko tieši jāskatās, bet dokumentācijā pameklē informāciju pie "by-default" definētajiem globālajiem mainīgajiem.

Labots - Anonīms Alkoholiķis
Link to comment
Share on other sites

visi esam bijuši jauni..

 

HTML daļa:

<form method="post" action="">
<input type="text" name="teksts"/>
<input type="submit" value="ielikt DB"/>
</form>

PHP daļa:

<?php

// pārbaudam vai kods ir izsaukts ar POST pieprasījumu un mainīgais ir saņemts
if(isset($_POST['teksts']))
{
$teksts = $_POST['teksts'];
// ieraksta db

}

JS tur nafig nevajag..

  • Patīk 1
Link to comment
Share on other sites

  • 4 months later...

Pie šīs pašas tēmas, bet ar funkciju UPDATE.

Respektīvi ir tabula_1 kurā ir vairākas rindas ar inkrementējošu ID. Vēlos kādā konkrētā rindā, kuras numurs ir ID, mainīt kolonnas "Skaits" ierakstu. Ierakstu konkrētu skaitli. Nospiežu pogu un tiek padots paziņojums - "Undefined variable: ID in C:\Apache\htdocs\write.php on line 43 Informacija labota veiksmigi"

Kā man tās konkrētās rindas "ID" un "Skaits" mainīgos pārnest uz formu? Izprovēju i tā i šitā.

Ja Write.php pirms UPDATE darbības piešķiru $ID = 5, tad 5tā rindā pie "Skaits" tiek ierakstīts tukšums. Ja $Skaits = 22, tad ierakstās tie 22 5tā rindā.

Paldies jau iepriekš

 

skaits.php

echo"
<table width=100% border=1>
<tr>
	<td width=4%  align=center>
	<a>".$line['ID']."</a>
	</td>

...............

	<td width=5% align=center>
	<a>".$line['Skaits']."</a>
	<form  action=/write.php method=post enctype=multipart/form-data>
	<input name=Skaits type=text size=5 maxlength=5 />
	<input name=submit type=submit value=Pievienot />
	</td>
      
</tr>
</table>
";

write.php ar mainīgo vērtības izvadi

$result = mysql_query ("UPDATE tabula_1 SET Skaits = '$Skaits' WHERE ID = '$ID' ");

if ($result == 'true')
{
echo "Informacija labota veiksmigi";

}
else
{
echo "Informacija nav labota";
}


if (false === $result)
{
echo mysql_error();
}


$ID='ID';
echo
 "
 <HR>
 = $ID!";
$Skaits='Skaits';
echo 
"
<HR>
= $Skaits!";


mysql_close();

 

Labots - sharps
Link to comment
Share on other sites

superKrona
<input name=ID type=text value="<?php echo $line['Skaits']; ?>" style="visibility: hidden" />
$line['Skaits'] domāts id
Labots - superKrona
e
Link to comment
Share on other sites

Es pareizi saprotu tagad? Pēc pievienošanas tomēr dod paziņojumu:

=====

MYSQL serverim pievienojamies veiksmigi 
MYSQL datu baze izveleta veiksmigi 
Informacija labota veiksmigi


= ID!


= Skaits!

=====

Respektīvi mainīgie ir tukšas vērtības starp ID, Skaits un ! zīmi. Rezultātā nekas nav mainījies tabulas ierakstos. Tikai šoreiz par mainīgiem nebļaustās. Progress ir. Vismaz kad izdrukā tabulu, tad pie $ID un $Skaits mainīgajiem tās vērtības ir vajadzīgās. Nospiežot pogu "pievienot" tās vērtības ir tukšas.

 

PS

Papildināšu Skaits.php ar php tagiem.

 

Skaits.php

<?
echo"
<table width=100% border=1>
  <tr>
	<td width=4%  align=center>	".$line['ID']."
	<input name=ID type=text value=".$line['ID']." style=visibility: hidden />
	</td>

....
    <td width=5% align=center>
	<a>".$line['Skaits']."</a>
	<form  action=/write.php method=post enctype=multipart/form-data>
	<input name=Skaits type=text size=5 maxlength=5 />
	<input name=submit type=submit value=Pievienot />
	</td>
      
</tr>
?>

 

Labots - sharps
Link to comment
Share on other sites

superKrona

Visu POST mainīgo padošanai uz write.php ir jābūt iekš <form>...</form>

Gan $ID, gan $Skaits

Link to comment
Share on other sites

AndrisBB

Nelieto echo, lai izvadītu html, tas kods paliek nelasāms, grūti saprotams gan lasītājam, gan editoram (pazūd viss sintakses highligting), gandrīz neiespējami debagot.

Sliktākajā gadījumā vismaz izprintē tos mainīgos tikai tur kur vajag.

 

<table width=100% border=1>
	<tr>
		<td width=4% align=center>
			<input name=ID type=text value="<?= $line['ID'] ?>" style=visibility: hidden />
		</td>
		<td width=5% align=center>
			<a><?= $line['Skaits']; ?></a>
			<form  action=/write.php method=post enctype=multipart/form-data>
			<input name=Skaits type=text size=5 maxlength=5 />
			<input name=submit type=submit value=Pievienot />
		</td>
	</tr>
</table>

Vai mūsdienās vispār kāds izmanto formas ar to arhaisko submit? Uztaisi parastu POST/GET no javascripta, kautkādu vienkāršu handlebars templeitu un miers.

Labots - AndrisBB
Link to comment
Share on other sites

Ieliku formās un tagad viss strādā. Ir protams sīkas niansītes. Kā piemēram ieraksts pārbīdījās nākamajā rindā, bet to salaboju.

Paldies par palīdzību.

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...