Jump to content
php.lv forumi

Recommended Posts

Posted

Esmu jauninais ieks PHP un gribeeju uzzinaat kaa efektiivaak nodot no formas ID? Nu piemeeram pievienojot rakstu. Ja es veelaak gribu to rakstu labot es ar UPDATE paliidziibu to rakstu varu izlabot bet kaa piedabuut php zinaat to ka tiesi to rakstu es gribu labot bet nevis citu. Tad mans jautaajums kaa lai to id nolasa no DB lai vareetu konkreeto rakstu veelaak izlabot.

Posted

Eksistē tāds jēdziens datubāzēs kā primārā atslēga (primary key). Piemēram:

Datubāzes tabulā raksti mēs rakstām:

Laiku, kad tika pielikts raksts - laiks

Raksta virsrakstu - virsraksts

Paša raksta saturu - saturs

Ja mēs uztaisām tabulu tikai ar šādiem tris laukiem, tad rodās problēma, kā atšķirt dažādus rakstus (jeb kā atrast konkrētu rakstu datubāzē)...

Tādēļ parasti mēdz pievienot vēlvienu lauku, nosauksim to par ID, kurš viennozīmigi identificē rakstu. Parasti tas ir vesels skaitlis, kurš automātiski palielinās (autoincrement) katram nākošajam rakstam.

Lūk pēc šī ID visvienkāršāk ir atsaukties uz konkrētu rakstu.

Tātad formai, kura labo rakstus, varētu padot konkrētā raksta ID vērtibu (šajā piemērā pieņemsim, ka tas ID ir 12):

<form method="post" action="labo.php">
<input type="hidden" name="raksta_id" value="12">
<input type="text" name="virsraksts">
<textarea name="saturs"></textarea>

un labo.php fragments būtu šāds (obligāti vispirms uztaisi ievaddatu pārbaudi, kas piemērā navizdarits!!!):

$vaicajums = <<<BEIGAS
UPDATE raksti SET virsraksts='{$_POST['virsraksts']}', saturs='{$_POST['saturs']}' WHERE ID={$_POST['raksta_id']}
BEIGAS;
$rezultats = mysql_query($vaicajums); //Ja mysql izmanto, protams

 

Kaut kā šādi. Bet iesaku palasīt kautko parSQL un datubāzēm, citādi tālu netiksi (-;

Posted
katram rakstam tak id nebuus 12. Ka to ID dabuut aaraa no db?

Pienemsim, ka tev ir lapa, kas izdrukā sarakstu ar visiem rakstiem:

<?php
...
$vaicajums = 'SELECT * from raksti ORDER BY laiks';
$rezultats = mysql_query($vaicajums);
while($rinda=mysql_fetch_assoc($rezultats)){
echo <<<BEIGAS
<div><a href="laboshanas_lapa.php?raksta_id={$rinda['ID']}">$nosaukums</a></div>

BEIGAS;
}
...
?>

Un pieņemot, ka lapa, kurā atradās tā labošanas forma saucās labosanas_lapa.php :

<form method="post" action="labo.php">
<input type="hidden" name="raksta_id" value="<?php echo $_GET['raksta_id']; ?>">
<input type="text" name="virsraksts">
<textarea name="saturs"></textarea>

Posted

<?php
$host="localhost";
$user="root";
$db="datub";
$con=mysql_connect("$host","$user");
$select=mysql_select_db("$db",$con);
$result = mysql_query('SELECT * FROM raksts ORDER BY id DESC') or ("šeit ir probleema");
while($rinda=mysql_fetch_assoc($result)){
echo <<<BEIGAS
<div><a href="labo.php?id={$rinda['ID']}">virsraksts te</a></div>


BEIGAS;
}
?>

 

 

Kaapeec sitais kods nestraadaa? paraada

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\tests\index.php on line 16
Posted

Varbūt tādēļ, ka nav datubāzē tāda tabula raksts, vai arī tabulā raksts nav tādas kolonnas id...

šai rindai:

$result = mysql_query('SELECT * FROM raksts ORDER BY id DESC') or ("šeit ir probleema");

jābūt šādai:

$result = mysql_query('SELECT * FROM raksts ORDER BY id DESC') or die("šeit ir probleema" .  mysql_error());

Posted

Viņš saka ka datubāzē butcher neekistē tabula raksts. Jo tu lieto mysql_select_db('butcher'); un $result = mysql_query('SELECT * FROM raksts ORDER BY id DESC') or die("šeit ir probleema" . mysql_error());

×
×
  • Create New...