Jump to content
php.lv forumi

Recommended Posts

Posted (edited)

sākšu ar to, ka mysql zinu tik cik pa pusdienu var nezinātājs apgūt..

lai apgūtu šo iemaņu, sāku taisīt kauko līdzīgu jaunumu lapai, blogam.

 

lūk tabula - raksti

 

+---------+---------------------+---------------------+-----------+
|	  id | autors			  | laiks			   | raksts	| 
+---------+---------------------+---------------------+-----------+
|	   1 | xxxxxxxxxxxxxxxxxxx | 2001-10-29 13:11:00 | 5456	  | 
|	   3 | rrrrrrrrrrrrrrrrrrr | 2001-10-29 13:11:00 | dfhgh	 | 
|	   4 | fffffffffffffffffff | 2001-10-29 13:11:00 | dfhdffhgf | 
|	   7 | fffffffffffffffffff | 2001-10-29 14:16:21 | fghfg	 |
|	  45 | vvvvvvvvvvvvvvvvvvv | 0000-00-00 00:00:00 | ][po	  |
|	  44 | fffffffffffffffffff | 0000-00-00 00:00:00 | ooooo	 |
|	  43 | fffffffffffffffffff | 0000-00-00 00:00:00 |;lk;;;	 |
|	   2 | fffffffffffffffffff | 0000-00-00 00:00:00 | J;hh	  |
+---------+---------------------+---------------------+-----------+

 

tas ko es gribu jums jautāt ir - kā lai nosaka, kādu id piešķirt jaunai ziņai (id protams jabut atšķirigam no esošajiem)?

 

es pats māku uzrakstīt šādu domu:

$SQL = "SELECT id FROM raksti ORDER BY id DESC";
$result = mysql_query( $SQL );
$row = mysql_fetch_array( $result );
$jaunais_id = $row[0] + 1;

 

bet nezinu vai šis ir darīts gudri vai nav. kādi ieteikumi?

Edited by direktors
Posted

uzliec id laukam auto increment un kad inserto datus, nenoraadi to id, tb atstaaj bez vertiibas ''. tas id pats automaatiski palielinaasies

Posted (edited)

es datubāzi veidoju caur phpmyadmin, es pareizi sapratu ka man šis jaizvelas?

1152407390.jpg

 

ja man nav janorada id tad ko man darit ar šo rindu?

INSERT INTO raksti (id, nosaukums) VALUES ("???", 'qwertyids')

proti, ko darīt ar ???, atstat tukšu.. ?

Edited by direktors
Posted (edited)

bet tad es nesaprotu, kādēļ izvadot šādi,

$SQL = "SELECT * from raksti"; $result = @mysql_query( $SQL );
while( $row = @mysql_fetch_array( $result ) ) {
echo "$row[id] $row[nosaukums]"; 
}

 

rāda ka id ierakstiem ir 0 ..?

0 => qwertyids
0 => qwertyids
0 => qwertyids
0 => qwertyids
0 => qwertyids
0 => qwertyids
0 => qwertyids
0 => qwertyids
0 => qwertyids

 

EDIT:

vaina cik sapratu ir lūk kur:

MySQL teica: Dokumentācija
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

 

kur var definēt to key?

Edited by direktors
Posted (edited)

.. turpināšu savu domu.. ar id tagad ir skaidriba. bet šodien meģinot pievienot ierakstus caur šādu formu:

<form method="post" action="jaunumi.php?act=pievienot">
	nosaukums<input type="text" name="nosaukums"><br />
	bilde<input type="text" name="bilde"><br />
	teksts<input type="text" name="teksts"><br />
	autors<input type="text" name="autors"><br />
	<input type="submit" name="login" value="Pievienot ierakstu!" >
	</form>

 

tālāk saņemu ar:

if ($_GET['act']=='pievienot'){
	$nosaukums = $_POST['nosaukums'];
	$bilde = $_POST['bilde'];
	$teksts = $_POST['teksts'];
	$autors = $_POST['autors'];
	$sql = "INSERT INTO raksti (nosaukums, bilde, teksts, autors, ievietots, komentari) VALUES ( $nosaukums , '$bilde', '', '$autors ', 'ievietots', '0')";
	mysql_query($sql);
	header('location: managerits.php');
}

 

problēma rodas tajā apstāklī, ka postējot datus tie ievietojas tabulā tikai tad ja ir cipari piem. 34234.. bet teksts - blabla nepievienojas. kur varetu but problēma. vajadzīgajām kolonām type liku text.

Edited by direktors
Posted

Iemācieties, cilvēki, taču vienreiz lietot error_reporting(E_ALL) un mysql_error() fju:

if (!mysql_query($sql)) die(mysql_error());

Posted

pēc tā mysql_error() nopratu, ka kautkas nav kārtībā šai rindā:

$sql = "INSERT INTO raksti (nosaukums, bilde, teksts, autors, ievietots, komentari) 
VALUES ( $nosaukums , 'bilde', 'teksts', 'autors ', 'ievietots', '0')";

pēc pāris variācijām šai rindā secināju, ka $nosaukums vajag iekš ' '..

 

jautājums:

man ir kolonna - komentari kurā tiek glabāts cik komentāru rakstam, pievienojot jaunu rakstu es norādu lai viņā raksta 0, interesē - vai nevar norādīt kautkā tabulā lai pievienojot rindu, kolonnas komentari šūnā ieraksta nulli. (tāpat kā id automātiski piešķiras, bet lai ir nevis unikāls cipars bet nulle)

Posted

create table blahblah (

atsleegas_lauks int PRIMARY KEY AUTO_INCREMENT,

cits_lauks VARCHAR(200),

komentari INT NOT NULL DEFAULT 0

);

Un tad prosta pie ievietošanas nenorādi komentari lauku vispār.

 

Tev nebūtu par ļaunu iemācīties ielūkoties arī manuālī: http://dev.mysql.com/doc/

Posted

ar pliku manuāli neiztikt.

 

kam tad šo un citus php/mysql forumus taisa, lai no tiem pasūtītu lasīt manuāli? ja grūti - tad nav jau obligāti eseja jāraksta lai kādam ko skaidrotu, linkus uz risinājumiem arī var pieņemt, hintus.

×
×
  • Create New...